0001558370-25-006985.txt : 20250508 0001558370-25-006985.hdr.sgml : 20250508 20250508162030 ACCESSION NUMBER: 0001558370-25-006985 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 90 CONFORMED PERIOD OF REPORT: 20250331 FILED AS OF DATE: 20250508 DATE AS OF CHANGE: 20250508 FILER: COMPANY DATA: COMPANY CONFORMED NAME: PDF SOLUTIONS INC CENTRAL INDEX KEY: 0001120914 STANDARD INDUSTRIAL CLASSIFICATION: SERVICES-PREPACKAGED SOFTWARE [7372] ORGANIZATION NAME: 06 Technology EIN: 251701361 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 000-31311 FILM NUMBER: 25926523 BUSINESS ADDRESS: STREET 1: 2858 DE LA CRUZ BOULEVARD CITY: SANTA CLARA STATE: CA ZIP: 95050 BUSINESS PHONE: 4082807900 MAIL ADDRESS: STREET 1: 2858 DE LA CRUZ BOULEVARD CITY: SANTA CLARA STATE: CA ZIP: 95050 10-Q 1 pdfs-20250331x10q.htm 10-Q PDF SOLUTIONS, INC._March 31, 2025
0001120914--12-312025Q10020900000000000.000.00067900000false0001120914us-gaap:AccountsReceivableMember2025-03-310001120914us-gaap:AccountsReceivableMember2024-12-310001120914us-gaap:TreasuryStockCommonMember2025-01-012025-03-310001120914pdfs:StockRepurchaseProgram2024Member2025-01-012025-03-310001120914pdfs:StockRepurchaseProgram2024Member2024-04-152024-04-150001120914pdfs:StockRepurchaseProgram2022Member2022-04-112022-04-110001120914us-gaap:CommonStockMember2025-01-012025-03-310001120914us-gaap:TreasuryStockCommonMember2025-03-310001120914us-gaap:RetainedEarningsMember2025-03-310001120914us-gaap:AdditionalPaidInCapitalMember2025-03-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2025-03-310001120914us-gaap:TreasuryStockCommonMember2024-12-310001120914us-gaap:RetainedEarningsMember2024-12-310001120914us-gaap:AdditionalPaidInCapitalMember2024-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-12-310001120914us-gaap:TreasuryStockCommonMember2024-03-310001120914us-gaap:RetainedEarningsMember2024-03-310001120914us-gaap:AdditionalPaidInCapitalMember2024-03-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-03-310001120914us-gaap:TreasuryStockCommonMember2023-12-310001120914us-gaap:RetainedEarningsMember2023-12-310001120914us-gaap:AdditionalPaidInCapitalMember2023-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-12-310001120914us-gaap:CommonStockMember2025-03-310001120914us-gaap:CommonStockMember2024-12-310001120914us-gaap:CommonStockMember2024-03-310001120914us-gaap:CommonStockMember2023-12-310001120914pdfs:PurchasePlanYear2021Member2024-03-310001120914us-gaap:EmployeeStockOptionMember2025-03-310001120914pdfs:IncentivePlanYear2011Member2024-01-012024-03-310001120914pdfs:PurchasePlanYear2021Member2024-01-012024-03-310001120914us-gaap:RestrictedStockUnitsRSUMember2024-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2024-01-012024-03-310001120914pdfs:IntegratedYieldRampMember2025-01-012025-03-310001120914pdfs:AnalyticsMember2025-01-012025-03-310001120914pdfs:IntegratedYieldRampMember2024-01-012024-03-310001120914pdfs:AnalyticsMember2024-01-012024-03-3100011209142024-08-012024-08-310001120914srt:MaximumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMember2025-03-070001120914pdfs:PurchaseObligationsMember2025-03-310001120914us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2025-03-310001120914us-gaap:LeaseholdImprovementsMember2025-03-310001120914us-gaap:FurnitureAndFixturesMember2025-03-310001120914us-gaap:ComputerEquipmentMember2025-03-310001120914pdfs:TestEquipmentMember2025-03-310001120914pdfs:LaboratoryAndTestEquipmentMember2025-03-310001120914pdfs:InProgressDfiSystemAssetsMember2025-03-310001120914pdfs:InProgressCvSystemAndOtherAssetsMember2025-03-310001120914us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2024-12-310001120914us-gaap:LeaseholdImprovementsMember2024-12-310001120914us-gaap:FurnitureAndFixturesMember2024-12-310001120914us-gaap:ComputerEquipmentMember2024-12-310001120914pdfs:TestEquipmentMember2024-12-310001120914pdfs:LaboratoryAndTestEquipmentMember2024-12-310001120914pdfs:InProgressDfiSystemAssetsMember2024-12-310001120914pdfs:InProgressCvSystemAndOtherAssetsMember2024-12-310001120914pdfs:SecureWiseMember2025-03-072025-03-070001120914pdfs:StockRepurchaseProgram2022Member2024-01-012024-03-310001120914pdfs:StockRepurchaseProgram2022Member2022-04-012024-03-310001120914us-gaap:FairValueInputsLevel3Member2025-03-310001120914us-gaap:FairValueInputsLevel1Member2025-03-310001120914us-gaap:FairValueInputsLevel3Member2024-12-310001120914us-gaap:FairValueInputsLevel1Member2024-12-310001120914us-gaap:OtherNoncurrentAssetsMember2024-08-310001120914us-gaap:NonUsMember2025-03-310001120914country:US2025-03-310001120914us-gaap:NonUsMember2024-12-310001120914country:US2024-12-310001120914srt:AffiliatedEntityMemberus-gaap:CollaborativeArrangementMember2020-07-012020-07-310001120914us-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMember2025-03-072025-03-070001120914us-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMember2025-03-070001120914us-gaap:TrademarksAndTradeNamesMember2025-03-310001120914us-gaap:PatentsMember2025-03-310001120914us-gaap:NoncompeteAgreementsMember2025-03-310001120914us-gaap:DevelopedTechnologyRightsMember2025-03-310001120914us-gaap:CustomerRelationshipsMember2025-03-310001120914us-gaap:TrademarksAndTradeNamesMember2024-12-310001120914us-gaap:PatentsMember2024-12-310001120914us-gaap:NoncompeteAgreementsMember2024-12-310001120914us-gaap:DevelopedTechnologyRightsMember2024-12-310001120914us-gaap:CustomerRelationshipsMember2024-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2025-01-012025-03-310001120914pdfs:PurchasePlanYear2021Member2025-01-012025-03-310001120914us-gaap:RestrictedStockUnitsRSUMember2025-03-310001120914pdfs:PurchasePlanYear2021Member2025-03-310001120914srt:MinimumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:SecuredDebtMemberpdfs:AlternateBaseRateSecuredOvernightFinancingRateMember2025-03-072025-03-070001120914srt:MinimumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:SecuredDebtMemberpdfs:AlternateBaseRateFederalFundsMember2025-03-072025-03-070001120914srt:MinimumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:LineOfCreditMemberus-gaap:SecuredOvernightFinancingRateSofrMember2025-03-072025-03-070001120914srt:MinimumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:LineOfCreditMemberpdfs:AlternateBaseRateSecuredOvernightFinancingRateMember2025-03-072025-03-070001120914srt:MinimumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:LineOfCreditMemberpdfs:AlternateBaseRateFederalFundsMember2025-03-072025-03-070001120914srt:MaximumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:SecuredDebtMemberpdfs:AlternateBaseRateSecuredOvernightFinancingRateMember2025-03-072025-03-070001120914srt:MaximumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:SecuredDebtMemberpdfs:AlternateBaseRateFederalFundsMember2025-03-072025-03-070001120914srt:MaximumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:LineOfCreditMemberpdfs:AlternateBaseRateSecuredOvernightFinancingRateMember2025-03-072025-03-070001120914srt:MaximumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:LineOfCreditMemberpdfs:AlternateBaseRateFederalFundsMember2025-03-072025-03-070001120914us-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMemberus-gaap:LineOfCreditMemberus-gaap:FederalFundsEffectiveSwapRateMember2025-03-072025-03-070001120914pdfs:AdvantestAmericaIncMemberpdfs:SoftwareLicenseAndRelatedServicesAgreementMember2025-01-012025-03-310001120914pdfs:AdvantestAmericaIncMemberpdfs:SoftwareLicenseAndRelatedServicesAgreementMember2024-01-012024-03-310001120914pdfs:AnalyticsMembersrt:AffiliatedEntityMember2025-03-310001120914pdfs:AnalyticsMembersrt:AffiliatedEntityMember2024-12-310001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2025-01-012025-03-310001120914pdfs:InternationalOperationsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2025-01-012025-03-310001120914pdfs:CustomerCMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2025-01-012025-03-310001120914pdfs:CustomerCMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2025-01-012025-03-310001120914pdfs:CustomerBMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2025-01-012025-03-310001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2025-01-012025-03-310001120914pdfs:CustomerAMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2025-01-012025-03-310001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2025-01-012025-03-310001120914country:JPus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2025-01-012025-03-310001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2025-01-012025-03-310001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2025-01-012025-03-310001120914pdfs:CustomerEMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2024-01-012024-12-310001120914pdfs:CustomerCMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2024-01-012024-12-310001120914pdfs:CustomerBMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2024-01-012024-12-310001120914pdfs:CustomerAMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2024-01-012024-12-310001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2024-01-012024-03-310001120914pdfs:InternationalOperationsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2024-01-012024-03-310001120914pdfs:CustomerBMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2024-01-012024-03-310001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2024-01-012024-03-310001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2024-01-012024-03-310001120914country:JPus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2024-01-012024-03-310001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2024-01-012024-03-310001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2024-01-012024-03-310001120914us-gaap:RetainedEarningsMember2025-01-012025-03-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2025-01-012025-03-310001120914us-gaap:RetainedEarningsMember2024-01-012024-03-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-012024-03-3100011209142024-03-3100011209142023-12-310001120914us-gaap:MoneyMarketFundsMemberus-gaap:FairValueInputsLevel1Member2025-03-310001120914us-gaap:MoneyMarketFundsMember2025-03-310001120914us-gaap:MoneyMarketFundsMemberus-gaap:FairValueInputsLevel1Member2024-12-310001120914us-gaap:MoneyMarketFundsMember2024-12-310001120914us-gaap:OtherNoncurrentAssetsMember2025-03-310001120914us-gaap:OtherNoncurrentAssetsMember2024-12-310001120914us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember2025-03-310001120914us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember2024-12-310001120914pdfs:SecureWiseMember2025-01-012025-03-310001120914pdfs:SecureWiseMember2024-10-012024-12-310001120914pdfs:SecureWiseMemberus-gaap:TrademarksMember2025-03-070001120914pdfs:SecureWiseMemberus-gaap:OtherIntangibleAssetsMember2025-03-070001120914pdfs:SecureWiseMemberus-gaap:DevelopedTechnologyRightsMember2025-03-070001120914pdfs:SecureWiseMemberus-gaap:CustomerRelationshipsMember2025-03-070001120914pdfs:SecureWiseMember2025-03-070001120914us-gaap:NotesReceivableMemberus-gaap:FairValueInputsLevel3Member2025-03-310001120914us-gaap:NotesReceivableMember2025-03-310001120914us-gaap:NotesReceivableMemberus-gaap:FairValueInputsLevel3Member2024-12-310001120914us-gaap:NotesReceivableMember2024-12-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMemberus-gaap:FairValueInputsLevel1Member2025-03-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember2025-03-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMemberus-gaap:FairValueInputsLevel1Member2024-12-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember2024-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2025-01-012025-03-310001120914us-gaap:EmployeeStockOptionMember2025-01-012025-03-310001120914pdfs:EmployeeStockPlansMember2025-01-012025-03-310001120914us-gaap:RestrictedStockUnitsRSUMember2024-01-012024-03-310001120914us-gaap:EmployeeStockOptionMember2024-01-012024-03-310001120914pdfs:EmployeeStockPlansMember2024-01-012024-03-310001120914us-gaap:SellingGeneralAndAdministrativeExpensesMember2025-01-012025-03-310001120914us-gaap:ResearchAndDevelopmentExpenseMember2025-01-012025-03-310001120914us-gaap:SellingGeneralAndAdministrativeExpensesMember2024-01-012024-03-310001120914us-gaap:ResearchAndDevelopmentExpenseMember2024-01-012024-03-310001120914us-gaap:AdditionalPaidInCapitalMember2025-01-012025-03-310001120914us-gaap:AdditionalPaidInCapitalMember2024-01-012024-03-310001120914pdfs:StockRepurchaseProgram2024Member2024-04-150001120914pdfs:StockRepurchaseProgram2022Member2022-04-110001120914pdfs:IndemnificationsMember2025-01-012025-03-310001120914us-gaap:EmployeeStockOptionMemberpdfs:IncentivePlanYear2011Member2011-11-162011-11-160001120914us-gaap:CommonStockMember2024-01-012024-03-310001120914us-gaap:TreasuryStockCommonMember2024-01-012024-03-310001120914us-gaap:TransferredOverTimeMember2025-01-012025-03-310001120914us-gaap:TransferredAtPointInTimeMember2025-01-012025-03-310001120914us-gaap:TransferredOverTimeMember2024-01-012024-03-310001120914us-gaap:TransferredAtPointInTimeMember2024-01-012024-03-310001120914pdfs:PurchasePlanYear2021Member2021-08-012025-03-3100011209142024-12-310001120914us-gaap:EmployeeStockOptionMemberpdfs:IncentivePlanYear2011AmendedMemberus-gaap:SubsequentEventMember2025-04-280001120914pdfs:PurchasePlanYear2021AmendedMemberus-gaap:SubsequentEventMember2025-04-280001120914pdfs:AdvantestAmericaIncMemberpdfs:SoftwareLicenseAndRelatedServicesAgreementMember2025-03-310001120914srt:MinimumMember2025-01-012025-03-3100011209142025-03-310001120914pdfs:IncentivePlanYear2011Member2025-03-310001120914srt:MaximumMemberpdfs:IncentivePlanYear2011Member2011-11-160001120914srt:MinimumMemberus-gaap:RevolvingCreditFacilityMemberpdfs:LineOfCreditFacilityLenderMember2025-03-070001120914srt:MinimumMemberus-gaap:TrademarksAndTradeNamesMember2025-01-012025-03-310001120914srt:MinimumMemberus-gaap:PatentsMember2025-01-012025-03-310001120914srt:MinimumMemberus-gaap:DevelopedTechnologyRightsMember2025-01-012025-03-310001120914srt:MinimumMemberus-gaap:CustomerRelationshipsMember2025-01-012025-03-310001120914srt:MaximumMemberus-gaap:TrademarksAndTradeNamesMember2025-01-012025-03-310001120914srt:MaximumMemberus-gaap:PatentsMember2025-01-012025-03-310001120914srt:MaximumMemberus-gaap:DevelopedTechnologyRightsMember2025-01-012025-03-310001120914srt:MaximumMemberus-gaap:CustomerRelationshipsMember2025-01-012025-03-310001120914us-gaap:NoncompeteAgreementsMember2025-01-012025-03-310001120914us-gaap:CostOfSalesMember2025-01-012025-03-310001120914us-gaap:CostOfSalesMember2024-01-012024-03-310001120914pdfs:CostsAndExpensesMember2025-01-012025-03-310001120914pdfs:CostsAndExpensesMember2024-01-012024-03-3100011209142024-01-012024-03-310001120914pdfs:AnalyticsMembersrt:AffiliatedEntityMember2025-01-012025-03-310001120914pdfs:AnalyticsMembersrt:AffiliatedEntityMember2024-01-012024-03-310001120914pdfs:IncentivePlanYear2011Member2025-01-012025-03-3100011209142025-05-0200011209142025-01-012025-03-31xbrli:sharesiso4217:USDxbrli:pureiso4217:USDxbrli:shares

UNITED STATES SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

FORM 10-Q

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

 

 

For the Quarterly Period ended March 31, 2025

or

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

 

 

 

For the transition period from _______________ to ______________   

Commission File Number 000-31311

PDF SOLUTIONS, INC.

(Exact name of Registrant as Specified in its Charter)

Delaware

25-1701361

(State or Other Jurisdiction of Incorporation or Organization)

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

  

  

2858 De La Cruz Blvd.

  

Santa Clara, California 

95050 

(Address of Principal Executive Offices)

(Zip Code)

(408) 280-7900

(Registrant’s Telephone Number, Including Area Code)

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

Title of each class

Trading Symbol(s)

Name of each exchange on which registered

Common Stock, $0.00015 par value

PDFS

The 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

There were 39,139,563 shares of the Registrant’s Common Stock outstanding as of May 2, 2025.

TABLE OF CONTENTS

 

    

Page

PART I   FINANCIAL INFORMATION

Item 1. Financial Statements (Unaudited)

Condensed Consolidated Balance Sheets

3

Condensed Consolidated Statements of Comprehensive Loss

4

Condensed Consolidated Statements of Stockholders’ Equity

5

Condensed Consolidated Statements of Cash Flows

6

Notes to Condensed Consolidated Financial Statements

8

Item 2. Management’s Discussion and Analysis of Financial Condition and Results of Operations

29

Item 3. Quantitative and Qualitative Disclosures About Market Risk

38

Item 4. Controls and Procedures

39

PART II  OTHER INFORMATION

Item 1. Legal Proceedings

39

Item 1A. Risk Factors

39

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

40

Item 3. Defaults Upon Senior Securities

40

Item 4. Mine Safety Disclosures

40

Item 5. Other Information

40

Item 6. Exhibits

41

INDEX TO EXHIBITS

41

SIGNATURES

42

2

PART I — FINANCIAL INFORMATION

Item 1. Financial Statements

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED BALANCE SHEETS

(Unaudited)

(in thousands, except par value)

March 31, 

December 31, 

    

2025

    

2024

ASSETS

 

 

  

Current assets:

 

  

 

  

Cash and cash equivalents

$

43,734

$

90,594

Short-term investments

 

10,415

 

24,291

Accounts receivable, net of allowance for credit losses

 

63,676

 

73,649

Prepaid expenses and other current assets

 

22,800

 

17,445

Total current assets

 

140,625

 

205,979

Property and equipment, net

 

56,564

 

48,465

Operating lease right-of-use assets, net

 

3,661

 

4,029

Goodwill

 

96,645

 

14,953

Intangible assets, net

 

58,357

 

12,307

Deferred tax assets, net

 

215

 

43

Other non-current assets

 

33,905

 

29,513

Total assets

$

389,972

$

315,289

LIABILITIES AND STOCKHOLDERS’ EQUITY

 

  

 

  

Current liabilities:

 

  

 

  

Accounts payable

$

9,394

$

8,255

Accrued compensation and related benefits

 

10,902

 

16,855

Accrued and other current liabilities

 

13,037

 

8,752

Operating lease liabilities – current portion

 

1,591

 

1,675

Deferred revenues – current portion

 

27,131

 

25,005

Current portion of long-term debt, net

2,240

Total current liabilities

 

64,295

 

60,542

Long-term income taxes

 

2,932

 

2,915

Non-current portion of operating lease liabilities

 

3,154

 

3,504

Long-term debt, net

66,416

Other non-current liabilities

 

4,195

 

2,291

Total liabilities

 

140,992

 

69,252

Commitments and contingencies (Note 11)

 

  

 

  

Stockholders’ equity:

 

  

 

  

Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding

Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 51,170 and 50,717, respectively; shares outstanding 39,130 and 38,801, respectively

 

6

 

6

Additional paid-in capital

 

511,745

 

502,902

Treasury stock, at cost, 12,040 and 11,916 shares, respectively

 

(162,672)

 

(159,352)

Accumulated deficit

 

(97,020)

 

(93,988)

Accumulated other comprehensive loss

 

(3,079)

 

(3,531)

Total stockholders’ equity

 

248,980

 

246,037

Total liabilities and stockholders’ equity

$

389,972

$

315,289

See accompanying Notes to Condensed Consolidated Financial Statements (Unaudited)

3

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS

(Unaudited)

(in thousands, except per share amounts)

Three Months Ended March 31, 

    

2025

   

2024

Revenues:

 

  

 

  

Analytics

$

42,471

$

38,463

Integrated Yield Ramp

 

5,307

 

2,847

Total revenues

 

47,778

 

41,310

Costs and Expenses:

 

  

 

  

Costs of revenues

 

12,955

 

13,529

Research and development

 

14,628

 

12,984

Selling, general, and administrative

 

23,372

 

16,498

Amortization of acquired intangible assets

 

378

 

259

Loss from operations

(3,555)

(1,960)

Interest expense

(311)

Other income (expense), net

 

870

 

1,692

Loss before income tax expense

 

(2,996)

 

(268)

Income tax expense

 

(36)

 

(125)

Net loss

(3,032)

(393)

Other comprehensive loss:

 

  

 

  

Foreign currency translation adjustments, net of tax

462

(522)

Change in unrealized loss related to available-for-sale debt securities, net of tax

 

(10)

 

(20)

Total other comprehensive income (loss)

452

(542)

Comprehensive loss

$

(2,580)

$

(935)

Net loss per share:

Basic

$

(0.08)

$

(0.01)

Diluted

$

(0.08)

$

(0.01)

Weighted average common shares used to calculate net loss per share:

 

Basic

 

39,088

 

38,500

Diluted

 

39,088

 

38,500

See accompanying Notes to Condensed Consolidated Financial Statements (Unaudited)

4

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

(Unaudited)

(in thousands)

Three Months Ended March 31, 2025

Accumulated

Additional

Other

Total

Common Stock

Paid-In

Treasury Stock

Accumulated

Comprehensive

Stockholders’

   

Shares

   

Amount

   

Capital

   

Shares

   

Amount

   

Deficit

   

Loss

   

Equity

Balances, December 31, 2024

38,801

$

6

$

502,902

 

11,916

$

(159,352)

$

(93,988)

$

(3,531)

$

246,037

Issuance of common stock in connection with employee stock purchase plan

 

90

 

 

2,120

 

 

 

 

 

2,120

Issuance of common stock in connection with exercise of options

 

1

 

 

8

 

 

 

 

 

8

Vesting of restricted stock units

 

238

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock awards

 

 

 

 

124

 

(3,320)

 

 

 

(3,320)

Stock-based compensation expense

 

 

 

6,715

 

 

 

 

 

6,715

Comprehensive income (loss)

 

 

 

(3,032)

 

452

 

(2,580)

Balances, March 31, 2025

 

39,130

$

6

$

511,745

 

12,040

$

(162,672)

$

(97,020)

$

(3,079)

$

248,980

Three Months Ended March 31, 2024

Accumulated

Additional

Other

Total

Common Stock

Paid-In

Treasury Stock

Accumulated

Comprehensive

Stockholders’

   

Shares

   

Amount

   

Capital

   

Shares

   

Amount

   

Deficit

   

Loss

   

Equity

Balances, December 31, 2023

38,289

$

6

$

473,295

 

11,460

$

(143,923)

$

(98,045)

$

(2,387)

$

228,946

Repurchase of common stock

(202)

202

(6,899)

(6,899)

Issuance of common stock in connection with employee stock purchase plan

 

74

 

 

1,916

 

 

 

 

 

1,916

Issuance of common stock in connection with exercise of options

 

1

 

 

25

 

 

 

 

 

25

Vesting of restricted stock units

 

231

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock awards

 

 

 

 

118

 

(3,794)

 

 

 

(3,794)

Stock-based compensation expense

 

 

 

6,154

 

 

 

 

 

6,154

Comprehensive loss

 

 

 

(393)

 

(542)

 

(935)

Balances, March 31, 2024

 

38,393

$

6

$

481,390

 

11,780

$

(154,616)

$

(98,438)

$

(2,929)

$

225,413

See accompanying Notes to Condensed Consolidated Financial Statements (Unaudited)

5

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS

(Unaudited)

(in thousands)

Three Months Ended March 31, 

    

2025

    

2024

Cash flows from operating activities:

Net loss

$

(3,032)

$

(393)

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

 

 

Stock-based compensation expense

 

6,596

 

6,110

Depreciation and amortization

 

685

 

1,064

Amortization of acquired intangible assets

 

1,056

 

843

Amortization of costs capitalized to obtain revenue contracts

 

872

 

634

Net accretion of discounts on short-term investments

(196)

(485)

Deferred taxes

 

(312)

 

9

Other

 

(248)

 

(74)

Changes in operating assets and liabilities:

 

 

Accounts receivable

 

13,033

 

(2,389)

Prepaid expenses and other current assets

 

(5,123)

 

(408)

Operating lease right-of-use assets

 

374

 

306

Other non-current assets

 

(4,124)

 

(5,864)

Accounts payable

 

84

 

1,801

Accrued compensation and related benefits

 

(6,025)

 

(5,214)

Accrued and other liabilities

 

3,936

 

213

Deferred revenues

 

1,504

 

2,304

Operating lease liabilities

 

(440)

 

(319)

Net cash provided by (used in) operating activities

 

8,640

 

(1,862)

Cash flows from investing activities:

Proceeds from maturities and sales of short-term investments

 

16,998

 

19,000

Purchases of short-term investments

(2,938)

(19,619)

Purchases of property and equipment

(8,105)

(2,023)

Prepayment for the purchase of property and equipment

(98)

Payment for business acquisition, net of cash acquired

(129,718)

Net cash used in investing activities

 

(123,861)

 

(2,642)

Cash flows from financing activities:

 

 

  

Proceeds from long-term debt, net of payment of debt financing costs

69,150

Proceeds from exercise of stock options

 

8

 

25

Proceeds from employee stock purchase plan

 

2,120

 

1,916

Payments for taxes related to net share settlement of equity awards

 

(3,320)

 

(3,794)

Repurchases of common stock

 

 

(6,899)

Net cash provided by (used in) financing activities

 

67,958

 

(8,752)

Effect of exchange rate changes on cash and cash equivalents

 

403

 

(466)

Net change in cash and cash equivalents

 

(46,860)

 

(13,722)

Cash and cash equivalents at beginning of period

 

90,594

 

98,978

Cash and cash equivalents at end of period

$

43,734

$

85,256

Continued on next page.

6

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS – CONTINUED

(Unaudited)

(in thousands)

Three Months Ended March 31, 

2025

    

2024

Supplemental disclosure of cash flow information:

Cash paid during the year for income taxes

$

226

$

668

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

$

481

$

405

Supplemental disclosure of noncash information:

Prepayments for purchase of property and equipment transferred from prepaid assets to property and equipment

$

136

$

Property and equipment received and accrued in accounts payable and accrued and other current liabilities

$

6,094

$

745

Stock-based compensation capitalized as property and equipment

$

119

$

45

Property and equipment transferred to sales-type leases

$

$

3,652

Operating lease liabilities arising from obtaining right-of-use assets

$

$

142

Debt financing costs included in accounts payable

$

500

$

See accompanying Notes to Condensed Consolidated Financial Statements (Unaudited)

7

PDF SOLUTIONS, INC.

NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED)

1. BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

Basis of Presentation

The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual consolidated financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2024, filed with the SEC on February 27, 2025.

The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.

The condensed consolidated balance sheet as of December 31, 2024 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.

Use of Estimates

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, fair value of convertible note receivable, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, realization of deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

Reclassification of Prior Period Amount

Certain immaterial prior period amounts on the condensed consolidated balance sheet and condensed consolidated statements of cash flows have been reclassified to conform with current period presentation.

Recent Accounting Standards

In December 2023, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) No. 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” This ASU may be applied either prospectively or retrospectively. The Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.

8

In November 2024, the FASB issued ASU No. 2024-03, Income Statement – Reporting Comprehensive Income – Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses. This ASU requires the disaggregation of certain expenses in the notes to the consolidated financial statements, to provide enhanced transparency into the expense captions presented on the face of the income statement. This ASU is effective on a prospective basis for fiscal years beginning after December 15, 2026 and for interim periods beginning after December 15, 2027, with early adoption permitted. This ASU may be applied either prospectively or retrospectively. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.

2. REVENUE FROM CONTRACTS WITH CUSTOMERS

The Company derives revenue from two sources: Analytics and Integrated Yield Ramp.

The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.

Contracts with Multiple Performance Obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), software-as-a-service (“SaaS”) (which is primarily Exensio® products and includes secureWISE® products and services), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle® (“CV®”) systems that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-

9

contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a software product or service over a contractually determined period of time without the customer having to take possession of the software, e.g., cloud-based or via a network of secureWISE servers, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

The Company also leases some of its DFI system and CV system assets to some customers. The Company determines the existence of a lease when the customer controls the use of these identified assets for a period of time defined in the lease agreement and classifies such leases as operating leases or sales-type leases. A lease is classified as a sales-type lease if it meets certain criteria under ASC Topic 842, Leases; otherwise, it is classified as an operating lease. Operating lease revenue is recognized on a straight-line basis over the lease term. Sales-type lease revenue and corresponding lease receivables are recognized at lease commencement based on the present value of the future lease payments, and related interest income on lease receivable is recognized over the lease term and are recorded under Analytics revenue in the condensed consolidated statements of comprehensive income (loss). Payments under sales-type leases are discounted using the interest rate implicit in the lease. When the Company’s leases are embedded in contracts with customers that include non-lease performance obligations, the Company allocates consideration in the contract between lease and non-lease components based on their relative SSPs. Assets subject to operating leases remain in property and equipment and continue to be depreciated. Assets subject to sales-type leases are derecognized from property and equipment, net at lease commencement and a net investment in the lease asset is recognized in prepaid expenses and other current assets and other non-current assets in the condensed consolidated balance sheets.

The Company generates revenue from the sale of DFI system products. Revenue is recognized at a point in time when the Company’s performance obligations have been completed, and the customer has accepted the product.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed-fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

10

The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.

Disaggregation of Revenue

The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.

The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue percentage by timing of revenue:

Three Months Ended March 31, 

 

    

2025

    

2024

Over time

61

%  

65

%

Point-in-time

 

39

%  

35

%

Total

 

100

%  

100

%

International revenues accounted for approximately 62% and 57% of the Company’s total revenues during the three months ended March 31, 2025 and 2024, respectively. See Note 9, Customer and Geographic Information.

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

For revenue under project-based contracts for fixed-price services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company is required to estimate the range of the SSPs for each performance obligation and in instances where the SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

11

The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

Contract Balances

The Company performs its obligations under a contract with a customer primarily by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer.

The contract assets are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. The contract assets consist of the following (in thousands):

March 31, 

December 31, 

    

2025

2024

Current (included in Prepaid expenses and other current assets)

$

6,423

$

3,224

Non-current (included in Other non-current assets)

 

505

 

617

Total contract assets

$

6,928

$

3,841

The Company did not record any asset impairment charges related to contract assets for the periods presented.

Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the condensed consolidated balance sheets.

Deferred revenues were the following (in thousands):

March 31, 

December 31, 

    

2025

2024

Current

$

27,131

$

25,005

Non-current (included in Other non-current liabilities)

1,552

1,512

Total deferred revenues

$

28,683

$

26,517

Additional information related to deferred revenue were as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each year

$

10,025

$

11,444

12

As of March 31, 2025, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $226.7 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was an increase of $0.2 million and a decrease of $0.6 million during the three months ended March 31, 2025 and 2024, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.

Costs to Obtain or Fulfill a Contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred.

Total capitalized direct sales commission costs and related fees were the following (in thousands):

March 31, 

December 31, 

    

2025

2024

Current (included in Prepaid expenses and other current assets)

$

2,494

$

2,929

Non-current (included in Other non-current assets)

 

4,147

 

2,385

Total capitalized direct sales commission costs

$

6,641

$

5,314

Amortization of capitalized direct sales commission costs was the following (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Amortization of capitalized direct sales commission costs

$

872

$

634

There was no impairment loss in relation to the costs capitalized for the periods presented.

Practical Expedient

The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a material significant financing component during the three months ended March 31, 2025 and 2024.

3. BALANCE SHEET COMPONENTS

Accounts Receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $27.0 million and $23.0 million as of March 31, 2025, and December 31, 2024, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $8.6 million and $9.0 million as of March 31, 2025, and December 31, 2024, respectively.

13

The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectibility of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance. The allowance for credit losses was $0.9 million as of March 31, 2025 and December 31, 2024.

Prepaid expenses and other current assets

Prepaid expenses and other current assets consist of the following (in thousands):

March 31, 

December 31, 

    

2025

    

2024

Prepaid expense

$

7,840

$

6,481

Contract assets

6,423

3,224

Costs capitalized to obtain revenue contracts

 

2,494

 

2,929

Net investments in sales-type leases - current portion

 

5,274

 

4,526

Income tax receivable

 

769

 

285

Total prepaid expenses and other current assets

$

22,800

$

17,445

Property and Equipment

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

March 31, 

December 31, 

    

2025

    

2024

Computer equipment

$

12,751

$

10,799

Software and capitalized software development cost

 

6,646

 

5,617

Furniture, fixtures, and equipment

 

2,553

 

2,529

Leasehold improvements

 

6,850

 

6,691

Laboratory and other equipment

 

6,009

 

5,734

Test equipment

 

21,681

 

22,680

Property and equipment in progress:

 

 

DFI system assets

40,231

34,935

CV system and other assets

 

7,508

 

6,431

Total property and equipment

 

104,229

 

95,416

Less: Accumulated depreciation and amortization

 

(47,665)

 

(46,951)

Total property and equipment, net

$

56,564

$

48,465

Test equipment mainly includes DFI™ system and CV® system assets at customer sites that are contributing to revenue. Property and equipment in progress represent the development or construction of property and equipment that have not yet been placed in service for the Company’s intended use and are not depreciated. 

Depreciation and amortization expense was $0.7 million and $1.1 million for the three months ended March 31, 2025 and 2024, respectively.

Goodwill and Intangible Assets, Net

The following table summarizes goodwill transactions for the periods presented (in thousands):

Three Months Ended March 31, 

2025

    

2024

Balance at beginning of the period

$

14,953

$

15,029

Addition

81,686

Foreign currency translation adjustment

6

(76)

Balance at end of the period

$

96,645

$

14,953

14

The Company completed the acquisition of SecureWise LLC (“SecureWise”) on March 7, 2025. See Note 14, “Business Combination” for additional information related to the goodwill and intangible assets added from this acquisition.

Intangible assets, net, consisted of the following (in thousands):

March 31, 2025

December 31, 2024

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired intangible assets:

Customer relationships

 

1 - 13

$

38,400

$

(8,080)

$

30,320

$

9,499

$

(7,866)

$

1,633

Developed technology

 

4 - 9

 

46,173

 

(25,326)

 

20,847

 

34,566

 

(24,601)

 

9,965

Tradename and trademarks

 

2 - 10

 

8,198

 

(1,216)

 

6,982

 

1,598

 

(1,120)

 

478

Patent

 

6 - 10

 

2,100

 

(1,892)

 

208

 

2,100

 

(1,869)

 

231

Noncompetition agreements

 

3

 

848

 

(848)

 

 

848

 

(848)

 

Total

$

95,719

$

(37,362)

$

58,357

$

48,611

$

(36,304)

$

12,307

The weighted average amortization period for acquired identifiable intangible assets was 9.1 years as of March 31, 2025. The amortization expense related to intangible assets were as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Amortization of acquired technology (included in costs of revenues)

$

678

$

584

Amortization of acquired intangible assets (presented separately under costs and expenses)

 

378

 

259

Total amortization of acquired intangible assets

$

1,056

$

843

The estimated future amortization of acquired identifiable intangible assets as follows (in thousands):

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

6,196

2026

 

8,092

2027

 

7,939

2028

 

7,634

2029

5,949

2030 and thereafter

 

22,547

Total future amortization expense

$

58,357

There was no impairment charges for goodwill and intangible assets during the three months ended March 31, 2025 and 2024.

15

Other Non-current Assets

Other non-current assets consisted of the following (in thousands):

March 31, 

December 31, 

    

2025

    

2024

Net investments in sales-type leases (3)

$

16,492

$

13,226

Unbilled accounts receivable (2)

8,587

8,983

Costs capitalized to obtain revenue contracts (1)

4,147

2,385

Contract assets (1)

505

617

Other

 

4,174

 

4,302

Total other non-current assets

$

33,905

$

29,513

(1)See Note 2, Revenue from Contracts with Customers.
(2)See Note 3, Balance Sheet Components – Accounts Receivable.
(3)The Company had net investments in sales-type leases for its DFI™ system and CV® system assets. The following table summarizes the components of the Company’s net investments in sales-type leases in the condensed consolidated balance sheets (in thousands):

March 31, 

December 31, 

    

2025

    

2024

Present value of lease receivables

$

13,784

$

13,238

Less: Contract liability

(3,235)

Net lease receivables

13,784

10,003

Unguaranteed residual assets

7,982

7,749

Total net investments in sales-type leases

$

21,766

$

17,752

Reported as:

Current (included in Prepaid expenses and other current assets)

$

5,274

$

4,526

Non-current (included in Other non-current assets)

16,492

13,226

Total net investments in sales-type leases

 

$

21,766

$

17,752

Maturities of leases payments under sales-type leases as of March 31, 2025, were as follows (in thousands):

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

5,715

2026

 

8,086

2027

 

1,724

2028

 

56

Total future sales-type lease payments

15,581

Less: Present value adjustment (a)

 

(1,797)

Present value of lease receivables

$

13,784

(a)Calculated using the rate implicit in the lease determined for each lease.

There was no allowance for credit losses on lease receivables as of March 31, 2025, and December 31, 2024. The Company’s ongoing risk management strategy for residual assets includes performing regular reviews of estimated residual values.

16

4. LEASES

The Company leases administrative and sales offices and certain equipment under non-cancellable operating leases, which contain various renewal or termination options and, in some cases, require payment of common area costs, taxes and utilities. These operating leases expire at various dates through 2028. The Company had no leases that were classified as a financing lease as of March 31, 2025, and December 31, 2024.

Lease expense was comprised of the following (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Operating lease expense

$

414

$

381

Short-term lease and variable lease expense (1)

 

207

 

214

Total lease expense

$

621

$

595

(1)Leases with an initial term of 12 months or less are not recorded on the condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.

Supplemental condensed consolidated balance sheets information related to operating leases was as follows:

March 31, 

December 31, 

 

    

2025

    

2024

 

Weighted average remaining lease term under operating leases (in years)

3.1

3.3

Weighted average discount rate for operating lease liabilities

 

6.0

%  

6.0

%

Maturities of operating lease liabilities as of March 31, 2025 were as follows (in thousands):

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

1,337

2026

 

1,548

2027

 

1,485

2028

 

847

Total future minimum lease payments

 

5,217

Less: Interest (1)

 

 

(472)

Present value of future minimum lease payments under operating lease liabilities

$

4,745

Reported as of March 31, 2025:

Operating lease liabilities – current

$

1,591

Operating lease liabilities – non-current

3,154

Total operating lease liabilities

$

4,745

(1)Calculated using incremental borrowing interest rate for each lease.

As of March 31, 2025, the Company had additional undiscounted future minimum payments of $0.4 million relating to an operating lease for an office space that had been signed but had not yet commenced. This operating lease will commence during the second quarter of 2025 and will have a lease term of approximately 6.2 years.

17

5. STOCKHOLDERS’ EQUITY

Stock Repurchase Program

On April 11, 2022, the Board of Directors adopted a stock repurchase program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years from the adoption date. During the three months ended March 31, 2024, 201,561 shares were repurchased by the Company under the 2022 Program at an average price of $34.23 per share for an aggregate total price of $6.9 million. In total, the Company repurchased 937,501 shares under the 2022 Program at an average price of $25.96 per share for an aggregate total price of $24.3 million. The 2022 Program expired on April 11, 2024.

On April 15, 2024, the Board of Directors adopted a new stock repurchase program (the “2024 Program”) to repurchase up to $40.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years from the adoption date. The Company has not repurchased any shares under the 2024 Program as of March 31, 2025.

6. EMPLOYEE BENEFIT PLANS

Employee Stock Purchase Plan

On June 15, 2021, the Company’s stockholders initially approved the 2021 Employee Stock Purchase Plan, which has been amended and restated by the Board of Directors and approved by the Company’s stockholders since then (as amended through the date of this report, the “2021 Purchase Plan”).

Under the 2021 Purchase Plan, eligible employees can contribute up to 10% of their compensation, as defined in the 2021 Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2021 Purchase Plan commenced on August 1, 2021, and provided for twenty-four-month offering periods with four six-month purchase periods in each offering period.

The Company estimated the fair value of purchase rights granted under the 2021 Purchase Plan during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:

Three Months Ended March 31, 

2025

    

2024

Expected life (in years)

1.25

 

1.25

Volatility

40.22

%  

41.40

%  

Risk-free interest rate

4.22

%  

4.62

%  

Expected dividend

 

Weighted average fair value of purchase rights granted during the year

$

9.36

$

10.89

During the three months ended March 31, 2025 and 2024, a total of 89,508 shares and 73,854 shares, respectively, were issued under the 2021 Purchase Plan, at a weighted average purchase price of $23.68 per share and $25.94 per share, respectively. As of March 31, 2025, unrecognized compensation cost related to the 2021 Purchase Plan was $6.6 million, which is expected to be recognized over a weighted average period of 1.8 years.

As of March 31, 2025, 548,973 shares were available for future issuance under the 2021 Purchase Plan.

Subsequently, on April 28, 2025, the Company’s Board of Directors approved an amendment and restatement of the 2021 Purchase Plan, which is subject to stockholder approval at the 2025 annual meeting of stockholders, to, among other things, increase the number of shares reserved for issuance for an additional 0.2 million shares to a total of 1.4 million shares.

18

Stock Incentive Plan

On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated by the Board of Directors and approved by the Company’s stockholders a number of times since then (as amended through the date of this report, the “2011 Plan”). Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under the 2011 Plan is 14.6 million shares, plus up to 3.5 million shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.

As of March 31, 2025, 15.1 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.5 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired, or repurchased by the Company after the adoption of the 2011 Plan through March 31, 2025. As of March 31, 2025, there were no outstanding awards that had been granted outside of the 2011 Plan.

Subsequently, on April 28, 2025, the Company’s Board of Directors approved an amendment and restatement of the 2011 Plan, which is subject to stockholder approval at the 2025 annual meeting of stockholders, to, among other things, increase the number of shares reserved for issuance for an additional 0.8 million shares to a total of 15.9 million shares.

The Company estimated the fair value of share-based awards granted under the 2011 Stock Plan during the period using the Black-Scholes-Merton option-pricing model. There were no stock options granted during the three months ended March 31, 2025 and 2024.

Stock-Based Compensation

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. Stock-based compensation expense before taxes related to the Company’s stock plan and employee stock purchase plan was allocated as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Costs of revenues

$

1,342

$

1,200

Research and development

 

2,419

 

2,202

Selling, general, and administrative

 

2,835

 

2,708

Total stock-based compensation expense

$

6,596

$

6,110

19

Stock Award Activities

Restricted stock unit (“RSU”)

Nonvested RSU activities were as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, January 1, 2025

 

1,885

$

33.14

Granted

 

54

24.90

Vested

 

(362)

29.52

Forfeited

 

(8)

30.45

Nonvested, March 31, 2025

 

1,569

$

33.70

The weighted average grant date fair values of RSUs granted during the three months ended March 31, 2025 and 2024 were $24.90 and $33.17, respectively.

The total fair value of RSUs vested were as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Fair value of restricted stock units vested

 

$

9,712

 

$

11,225

As of March 31, 2025, there was $43.7 million of total unrecognized compensation cost related RSUs which is expected to be recognized over a weighted average period of 2.4 years. RSUs do not have rights to dividends prior to vesting.

Stock Options

As of March 31, 2025, the outstanding stock options totaled 26,679 shares. Total fair value of shares vested during the three months ended March 31, 2025 was immaterial. As of March 31, 2025, there was no remaining unrecognized compensation cost related to unvested stock options.

7. INCOME TAXES

Income tax expense decreased by $0.1 million for the three months ended March 31, 2025 to $36 thousand as compared to $0.1 million for the three months ended March 31, 2024. The Company’s effective tax rate was (1.2%) for the three months ended March 31, 2025 compared to (47%) for the three months ended March 31, 2024. The increase was primarily due to changes in the foreign, federal and state taxes and year-to-date recognition of worldwide pre-tax income in relation to their forecasted amounts for full years. The Company’s provision for income taxes for the three months ended March 31, 2025, was primarily attributable to federal, state and foreign taxes.

The Company’s total amount of unrecognized tax benefits, excluding interest, as of March 31, 2025, was $16.9 million, of which $2.3 million, if recognized, would affect the Company’s effective tax rate. The Company’s total amount of unrecognized tax benefits, excluding interest, as of December 31, 2024 was $16.6 million, of which $2.1 million, if recognized, would affect the Company’s effective tax rate. As of March 31, 2025, the Company has recorded unrecognized tax benefits of $2.9 million, including interest of $0.7 million, as long-term taxes payable in the condensed consolidated balance sheets. The remaining $14.7 million has been recorded within the Company’s DTAs, which is subject to a full valuation allowance.

The valuation allowance was approximately $67.9 million as of March 31, 2025, and December 31, 2024, which was related to U.S. net federal and state DTAs. The worldwide net DTAs balance were immaterial as of March 31, 2025 and December 31, 2024.

20

The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal and various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the tax years ended 2021 to present and 2020 to present, respectively. In addition, all of the net operating loss and research and development credit carryforwards that may be utilized in future years may be subject to federal and state examination. The Company is not currently under known income tax examinations in the U.S. or any other of its major foreign subsidiaries’ jurisdictions.

8. NET LOSS PER SHARE

Basic net loss per share is computed by dividing net loss by the weighted average number of common shares outstanding for the period (excluding outstanding stock options, nonvested restricted stock units and shares subject to repurchase). Diluted net loss per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net loss per share (in thousands except per share amount):

Three Months Ended March 31, 

    

2025

    

2024

Numerator:

 

  

 

  

Net loss

$

(3,032)

$

(393)

Denominator:

 

  

 

  

Basic weighted average common shares outstanding

 

39,088

 

38,500

Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan

 

 

Diluted weighted average common shares outstanding

 

39,088

 

38,500

Net loss per share:

Basic

$

(0.08)

$

(0.01)

Diluted

$

(0.08)

$

(0.01)

For the three months ended March 31, 2025 and 2024, because the Company was in a loss position, diluted net loss per share is the same as basic net loss per share as the inclusion of the potential common shares would have been anti-dilutive.

The following table summarizes the potential shares of common stock that were not included in the diluted net loss per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Non-vested restricted stock units

 

1,569

37

Outstanding stock options

 

27

1,665

Shares issuable under employee stock purchase plan

 

69

24

Total

 

1,665

 

1,726

9. CUSTOMER AND GEOGRAPHIC INFORMATION

Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.

21

The Company’s chief operating decision maker (“CODM”), the Chief Executive Officer, reviews discrete financial information including total revenues, gross profit, and net income (loss) presented on a consolidated basis for purposes of regularly making operating decisions about allocation of resources and financial performance assessment. Further, the CODM reviews and utilizes functional expenses (costs of revenues, research and development, and selling, general and administrative) at the consolidated level to manage the Company’s operations. Other segment items included in the condensed consolidated net income (loss) are amortization of acquired intangible assets, interest expense, other income (expense), net and income tax expense, which are reflected in the condensed consolidated statements of comprehensive income (loss). Accordingly, the Company considers itself as one operating and reporting segment because it does not distinguish between markets, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.

The following table presents segment total revenues, costs of revenues, gross profit, and net loss for the periods presented (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Total revenues

 

$

47,778

 

$

41,310

Costs of revenues

$

12,955

 

$

13,529

Gross profit

$

34,823

 

$

27,781

Net loss

$

(3,032)

$

(393)

Revenues from an individual customer that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Three Months Ended March 31, 

Customer

    

2025

    

2024

 

A

15

%  

22

%

B

19

%  

19

%

C

10

%  

*

* represents less than 10%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

March 31, 

December 31, 

Customer

    

2025

2024

 

A

 

23

%  

21

%

B

*

%

13

%

C

17

%

11

%

E

*

%  

12

%

22

Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (amounts in thousands):

Three Months Ended March 31, 

2025

 

2024

 

Percentage

 

Percentage

 

    

Revenues

    

of Revenues

 

Revenues

    

of Revenues

 

United States

$

18,228

 

38

%

$

17,733

 

43

%

Japan

11,736

25

11,288

27

China

 

8,043

 

17

 

4,853

 

12

Rest of the world

 

9,771

 

20

 

7,436

 

18

Total revenues

$

47,778

 

100

%

$

41,310

 

100

%

Long-lived assets, net by geographic area are as follows (in thousands):

March 31, 

December 31, 

    

2025

2024

United States (1)

$

66,866

$

58,782

Rest of the world

 

1,341

 

1,461

Total long-lived assets, net

$

68,207

$

60,243

(1) Includes assets deployed at customer sites which could be outside the U.S.

10. FAIR VALUE MEASUREMENTS

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

 

 

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

 

 

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

23

The following table represents the Company’s assets measured at fair value on a recurring basis and the basis for those measurements (in thousands):

Fair Value Measurements Using

Balance Sheet

March 31, 

Assets

Classification

2025

    

(Level 1)

    

(Level 2)

    

(Level 3)

Money market mutual funds

Cash equivalents

$

1,813

$

1,813

$

$

Available-for-sale debt securities:

 

  

 

  

 

  

 

  

U.S. Government securities (1)

Short-term investments

 

10,415

 

10,415

 

 

Convertible note receivable (2)

Other non-current assets

2,062

2,062

Total

$

14,290

$

12,228

$

$

2,062

Fair Value Measurements Using

Balance Sheet

December 31, 

Assets

Classification

    

2024

    

(Level 1)

    

(Level 2)

    

(Level 3)

Money market mutual funds

Cash equivalents

$

66,213

$

66,213

$

$

Available-for-sale debt securities:

  

 

  

 

  

 

  

U.S. Government securities (1)

Short-term investments

24,291

 

24,291

 

 

Convertible note receivable (2)

Other non-current assets

2,038

2,038

Total

$

92,542

$

90,504

$

$

2,038

(1)The amortized cost of the Company’s investments in U.S. Government securities approximated their fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities in the periods presented. For the three months ended March 31, 2025 and 2024, there were no material realized or unrealized gains or losses, either individually or in the aggregate.
(2)In August 2024, the Company purchased a $2.0 million non-marketable convertible promissory note from an unrelated third party (the “convertible note”). The convertible note bears a 5% interest rate annually and will mature in August 2026.

11. COMMITMENTS AND CONTINGENCIES

Strategic Partnership with Advantest — See Note 12, Strategic Partnership Agreement with Advantest and Related Party Transactions, for the discussion about the Company’s commitments under the strategic partnership with Advantest.

Operating Leases — Refer to Note 4, Leases, for the discussion about the Company’s lease commitments.

Indemnifications — The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following initial delivery of its products. The Company also indemnifies certain customers from third-party claims of intellectual property infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.

The Company’s standard product warranty terms for the sale of its DFI system product generally include post-sales support and repairs or replacement of a product at no additional charge for a contractually agreed period of time. The standard warranty reserve is based on estimated total expected costs to fulfill our warranty obligation based on best available information as of the reporting date. The standard warranty reserve was immaterial as of March 31, 2025 and December 31, 2024.

24

Purchase Obligations — The Company has purchase obligations with certain suppliers for the purchase of goods and services entered into in the ordinary course of business. As of March 31, 2025, total outstanding purchase obligations were $37.6 million, the majority of which is due within the next 12 months.

Indemnification of Officers and Directors — As permitted by the Delaware General Corporation Law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors.

In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware General Corporation Law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.

Legal Proceedings — From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of March 31, 2025, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued. From time to time, the Company may enter into contingent fee arrangements with external legal firms that may represent the Company in legal proceedings related to disputes. Contingent legal fees are accrued by the Company when they are probable and reasonably estimable.  

On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center (the “Tribunal”) against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August 2023, and the parties submitted answers to the Tribunal’s final questions in August 2024. The Company is awaiting the Tribunal’s decision on a judgment.

12. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

In July 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”), which includes: (i) a Securities Purchase Agreement wherein the Company issued and sold to Advantest America, Inc., an aggregate of 3,306,924 shares of its common stock, for aggregate gross proceeds of $65.2 million; (ii) a significant agreement for its assistance in development of cloud-based applications for Advantest tools that leverages our Exensio analytics software; (iii) a commercial agreement providing for the license to third parties of solutions that result from the development work that combine Advantest’s testing applications and our Exensio platform; and (iv) a 5-year cloud-based subscription for Exensio analytics software and related services.

Analytics revenue recognized from Advantest was $3.6 million and $2.9 million during the three months ended March 31, 2025 and 2024, respectively. Accounts receivable from Advantest were not material as of March 31, 2025 and December 31, 2024. Deferred revenue amounted to $5.8 million and $8.3 million as of March 31,2025, and December 31, 2024, respectively.

25

13. DEBT

Debt as of March 31, 2025 consisted of (in thousands):

March 31, 

2025

Term loan

$

25,000

Revolving credit facility

45,000

Total debt (principal amount)

70,000

Unamortized debt discount and financing costs

(1,344)

Total debt, net of unamortized debt discount and financing costs

$

68,656

Reported as:

Current portion of long-term debt, net

$

2,240

Long-term debt, net

66,416

Total debt, net

$

68,656

On March 7, 2025, the Company entered into a Credit Agreement (the “Credit Agreement”) with the lenders who are party to the Credit Agreement and the lenders who may become a party to the Credit Agreement pursuant to the terms thereof (the “Lenders”) and Wells Fargo Bank, National Association, as administrative agent to the Lenders (the “Agent”).

The Credit Agreement provides for (a) a revolving credit facility in an aggregate principal amount of $45.0 million (the “Revolving Credit Facility”) and (b) a term loan facility in an aggregate principal amount of $25.0 million (the “Term Loan” and together with the Revolving Credit Facility, the “Credit Facilities”).

Borrowings under the Credit Facilities will accrue interest at rates equal, at the Company’s election, to (i) the alternate base rate, which is defined as the highest of (a) the federal funds effective rate in effect from time to time plus 0.50%, (b) the prime commercial lending rate in effect from time to time, and (c) the daily simple secured overnight financing rate (“SOFR”) plus 1.00% or (ii) SOFR, plus, in each case, the applicable margin. The applicable margin for the Revolving Credit Facility borrowings bearing interest at the alternate base rate ranges from 1.00% to 1.75%, and the applicable margin for Revolving Credit Facility borrowings bearing interest based on the SOFR ranges from 2.00% to 2.75%, in each case, based on the Company’s consolidated total net leverage ratio as of the most recently ended fiscal quarter. The applicable margin for Term Loan borrowings bearing interest at the alternate base rate ranges from 1.00% to 1.75%, and the applicable margin for Term Loan borrowings bearing interest based on the SOFR ranges from 2.00% to 2.75%, in each case, based on the Company’s consolidated total net leverage ratio as of the most recently ended fiscal quarter. The Company will pay an annual commitment fee during the term of the Credit Agreement at a rate per annum equal to 0.50% for any undrawn portion of the Revolving Credit Facility.

The Credit Agreement contains customary representations and warranties, as well as customary affirmative and negative covenants. Negative covenants include, among others, restrictions on the incurrence of debt, the incurrence of liens, the making of investments and distributions, dividends and stock buy-backs. In addition, the Credit Agreement requires that the Company maintain a consolidated total net leverage ratio of not greater than 3.00 to 1.00, and a consolidated fixed charge coverage ratio of not less than 1.25 to 1.00. As of March 31, 2025, the Company was in compliance with the covenants contained in the Credit Agreement.

The Credit Agreement contains customary events of default. Upon the occurrence and during the continuance of an event of default, the Agent may declare the outstanding advances and all other obligations under the Credit Agreement immediately due and payable.

The obligations under the Credit Agreement are guaranteed by all present and future material domestic subsidiaries of the Company (collectively with the Company referred to herein as the “Credit Parties”), subject to customary exceptions, and are secured by the equity interests of the Credit Parties (other than the Company) and substantially all of the personal property owned by the Credit Parties, including 65% of the equity interests of certain foreign subsidiaries owned by the Credit Parties.

26

The Company used the amounts borrowed under the Credit Facilities to finance, in part, the purchase price paid for the acquisition of SecureWise (see Note 14, Business Combination).

Future Payments on Total Debt

As of March 31, 2025, the estimated future principal payments of the total long-term debt were as follows (in thousands):

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

1,875

2026

 

2,500

2027

 

2,500

2028

 

2,500

2029

2,500

2030

58,125

Total future principal payments of long-term debt

 

$

70,000

14. BUSINESS COMBINATION

On February 19, 2025, the Company entered into an Equity Purchase Agreement (the “Purchase Agreement”) with Telit IOT Solutions Inc., a Delaware corporation (the “Seller”), and SecureWise, pursuant to which the Company agreed to acquire the Seller’s SecureWise business (the “Business”) by means of a purchase of all of the outstanding equity interests of SecureWise held by the Seller (the “Transaction”).

On March 7, 2025, the Company completed the acquisition of the Business from the Seller pursuant to the Purchase Agreement for a cash purchase price of $130.0 million, subject to customary adjustments in respect of indebtedness, transaction expenses, cash and working capital of the Business, in each case, in accordance with the terms of the Purchase Agreement. The Company financed the Transaction using a combination of cash on hand and borrowings under the Credit Facilities.

The Company expects the Transaction to accelerate equipment makers’ ability to derive value from equipment data by enabling them to leverage the Company’s Exensio analytics software and to expand the capability of the Company’s secure data exchange (“DEX”) outsourced semiconductor assembly and test (“OSAT”) network by allowing equipment makers, fab operators, and fabless companies to collaborate to optimize chip manufacturing and test.

The Company accounted for the Transaction as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the acquisition date. The Company allocated the purchase price to identifiable assets acquired based on their estimated fair values. The fair value of the consideration transferred and the assets acquired and liabilities assumed was determined by the Company and in doing so management engaged a third-party valuation specialist to assist with the measurement of the fair value of identifiable intangible assets. The estimated fair value of the identifiable assets acquired and liabilities assumed was based on management’s best estimates. The fair value of the customer relationships was determined using the multi-period excess earnings income approach or cost approach. The fair value of trade names and developed technology was determined using the relief-from-royalty method. The fair value of acquired technology was determined using the cost approach. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. The goodwill associated with the acquisition is deductible for tax purposes.

The Company expensed all transaction costs in the period in which they were incurred. The total non-recurring legal, finance, integration and other costs related to the acquisition of SecureWise amounted to $5.3 million, of which $4.4 million was recorded in the first quarter of 2025 and $0.9 million in the fourth quarter of 2024.

27

The preliminary allocation of the purchase price for the acquisition of SecureWise, as of the date of the completion of the Transaction, is as follows (in thousands, except amortization period):

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Fair value estimates of assets acquired and liabilities assumed

 

  

 

  

Cash

$

1,049

 

  

Accounts receivable

3,038

Prepaid and other assets

1,049

Fixed assets

1,592

Fair value of intangible assets:

 

 

  

Trademark

6,600

5

Customer relationships

 

28,900

 

13

Developed technology

 

11,600

 

7

Goodwill

 

81,686

 

N/A

Accounts payable and other current liabilities

(4,747)

 

  

Total purchase price allocation

$

130,767

 

  

The estimated fair value of the accounts receivable acquired approximates the contractual value of $3.0 million.

The Company is still finalizing the allocation of the purchase price to the individual assets acquired. Accordingly, these preliminary estimates are subject to change during the measurement period, which is the period subsequent to the acquisition date during which the acquirer may adjust the provisional amounts recognized for a business combination, not to exceed one year from the acquisition date. The final purchase price allocation, which may include changes in the allocations within intangible assets and between intangible assets and goodwill, as well as changes in the estimated useful lives of the intangible assets, will be determined when the Company has completed the detailed review of underlying inputs and assumptions used in its preliminary purchase price allocation.

Pro forma information reflecting the impact of the Transaction has not been presented as the Transaction was not material to the Company’s financial results.

28

Item 2. Management’s Discussion and Analysis of Financial Condition and Results of Operations

Forward-Looking Statements

The following discussion of our financial condition and results of operations contains forward-looking statements within the meaning of Section 27A of the Securities Act of 1933 and Section 21E of the Securities Exchange Act of 1934. All statements other than statements of historical fact may be forward-looking statements. In some cases, you can identify forward-looking statements by terminology such as “may,” “could,” “projected,” “should,” “expect,” “plan,” “anticipate,” “believe,” “estimate,” “predict,” “potential,” “target” or “continue,” the negative effect of terms like these or other similar expressions. These statements include, but are not limited to, statements related to: the Company’s business strategy and objectives; the Company’s intellectual property and proprietary software, information and technology; the Company’s sales and marketing strategy, expectations regarding strategic alliances and relationships; investments in research and development; industry trends; macroeconomic factors, inventories, and demand; changing export controls and sanctions; U.S. administrative initiatives; investments in semiconductor manufacturing; geopolitical tensions and conflicts; fluctuations in the Company’s quarterly results; and other statements identified by words such as “could,” “expects,” “intends,” “may,” “plans,” “potential,” “should,” “will,” “would,” or similar expressions and the negatives of those terms, that are subject to future events and circumstances, and uncertainties that could cause results to differ materially include risks associated with: the effectiveness of the Company’s business and technology strategies; current semiconductor industry trends and competition; rates of  adoption of the Company’s solutions by new and existing customers; project milestones or delays and performance criteria achieved; cost and schedule of new product development and investments in research and development; the continuing impact of macroeconomic conditions, including inflation, changing interest rates and tariffs, the evolving trade regulatory environment and geopolitical tensions, and other trends impacting the semiconductor industry, the Company’s customers, operations, and supply and demand for its products; supply chain disruptions; the success of the Company’s strategic growth opportunities and partnerships; recent and future acquisitions, strategic alliances and relationships and the Company’s ability to successfully integrate acquired businesses and technologies; whether the Company can successfully convert backlog into revenue; customers’ production volumes under contracts that provide Gainshare; the sufficiency of the Company’s cash resources and anticipated funds from operations; the Company’s ability to obtain additional financing if needed; the Company’s ability to use support and updates for certain open-source software; and other risks and uncertainties discussed in the Company’s filings with the Securities and Exchange Commission (“SEC”). These forward-looking statements are only predictions. Forward-looking statements are based on current expectations and projections about future events and are inherently subject to a variety of risks and uncertainties, many of which are beyond our control, which could cause actual results to differ materially from those anticipated or projected. All forward-looking statements and other information included in this document are based on information available to us on the date of filing and we further caution investors that our business and financial performance are subject to substantial risks and uncertainties. We assume no obligation to update publicly any such forward-looking statements. In evaluating these statements, you should specifically consider various factors, including the risk factors set forth in Item 1. “Business” and Item 7. “Management’s Discussion and Analysis of Financial Condition and Results of Operations” in our Annual Report on Form 10-K for the year ended December 31, 2024, filed with the SEC on February 27, 2025 (the “Annual Report”). All references to “we,” “us,” “our,” “PDF,” “PDF Solutions” or “the Company” refer to PDF Solutions, Inc.

Cimetrix, CV, DFI, Exensio, PDF Solutions, secureWISE, and the Cimetrix, Exensio, PDF Solutions, and secureWISE logos, are trademarks or registered trademarks of PDF Solutions, Inc. or its subsidiaries.

Overview

We offer products and services designed to empower organizations across the semiconductor and electronics ecosystems to connect, collect, manage, transfer, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products. We derive revenues from two sources: Analytics and Integrated Yield Ramp. Our offerings combine proprietary software, professional services using proven methodologies, third-party cloud-hosting platforms for software-as-a-service (“SaaS”), electrical measurement hardware tools, and physical intellectual property (“IP”) for integrated circuit (“IC”) designs. We primarily monetize our offerings through license fees and contract fees for professional services and SaaS. In some cases, especially on our historical Integrated Yield Ramp engagements, we also receive a value-based variable fee or royalty, which we call Gainshare. Our products, services, and solutions have been sold to integrated device manufacturers (“IDMs”), fabless semiconductor companies, foundries, out-sourced semiconductor assembly and test (“OSATs”), capital equipment manufacturers, and system houses.

29

We are headquartered in Santa Clara, California and also operate worldwide with offices in Canada, China, France, Germany, Italy, Japan, Korea, and Taiwan.

Acquisition of SecureWise LLC

On March 7, 2025, we completed the acquisition of SecureWise LLC (“SecureWise”), a Delaware limited liability company (see Note 14, Business Combinations, in the notes to condensed consolidated financial statements (unaudited)  in Part I, Item 1 of this Quarterly Report on Form 10-Q), and added the widely-used, secure, remote secureWISE connectivity solution to our products and services portfolio. We expect this acquisition to also accelerate equipment makers’ ability to derive value from equipment data by enabling them to leverage our Exensio analytics software and to expand the capability of our secure data exchange (“DEX”) outsourced semiconductor assembly and test (“OSAT”) network by allowing equipment makers, fab operators, and fabless companies to collaborate to optimize chip manufacturing and test.

Industry Trends

Certain trends may affect our Analytics revenue specifically. In particular, the confluence of Industry 4.0 (i.e. the fourth industrial revolution, or the automation and data exchange in manufacturing technologies and processes) and cloud computing (i.e. the on-demand availability of computing resources and data storage without direct active management by the user) is driving increased innovation in semiconductor and electronics manufacturing and analytics, as well as in the organization of information technology (“IT”) networks and computing at semiconductor and electronics companies across the ecosystem. First, the ubiquity of wireless connectivity and sensor technology enables any manufacturing company to augment its factories and visualize its entire production line. In parallel, the cost per terabyte of data storage has generally decreased over time. The combination of these two trends means that more data is collected and stored than ever before. Further, semiconductor companies are striving to analyze these very large data sets in real-time to make rapid decisions that measurably improve manufacturing efficiency and quality. In parallel, the traditional practice of on-site data storage, even for highly sensitive data, is changing. The ability to cost-effectively and securely store, analyze, and retrieve massive quantities of data from the cloud versus on-premise enables data to be utilized across a much broader population of users, frequently resulting in greater demands on analytics programs. The combination of these latter two trends means that cloud-based, analytics programs that effectively manage identity management, physical security, and data protection are increasingly in demand for insights and efficiencies across the organizations of these companies. We believe that all these trends will continue for the next few years, and the challenges involved in adopting Industry 4.0 and secure cloud computing will create opportunities for our combination of advanced analytics capabilities, proven and established supporting infrastructure, and professional services to configure our products to meet customers’ specialized needs.

Other trends may continue to affect our Characterization services business and Integrated Yield Ramp revenue specifically. For example, semiconductor manufacturers may experience lower wafer shipments due to weakness in the global economy, which would negatively impact the gainshare component of our Integrated Yield Ramp revenue. The logic foundry market at the leading-edge nodes, such as 7nm, 5nm, and smaller, underwent significant change over the past few years. The leading foundry continues to dominate market share. This trend will likely continue to impact our Characterization services business on these nodes. We expect most logic foundries to invest in derivatives of older process nodes, such as 14nm, to extract additional value as many of their customers will not move to advanced nodes due to either technological barriers or restrictive economics. Foundries that participate at leading edge nodes are expected to continue to invest in new technologies such as memory, 2.5D and 3D packaging, extreme ultraviolet lithography, and 3D architectures such as backside power and gate-all-around transistors, as well as new innovations in process control and variability management. We expect China’s investment in semiconductors to continue. Compliance with changing U.S. export restrictions limit our possible business with Chinese semiconductor manufacturers on advanced nodes. As a result of these market developments, we have chosen to focus our resources and investments in products (including differentiated data), services, and solutions for analytics.

There are other global or business trends that may affect our business opportunities generally as follows:

Macroeconomy, inventories, and demand. The worldwide economic performance is uneven, and the possibility of a recession persists, leading to uneven demand. Inventories of semiconductor devices remain elevated in some instances. With high inventories and soft demand for some product segments, some semiconductor fab utilization rates are also low and semiconductor capital equipment orders have been impacted for some vendors and market

30

segments. As a result, some purchase cycles, especially for enterprise software and capital equipment and particularly with respect to larger deals, have lengthened in recent years and may continue to do so.
Changing export controls and sanctions. The U.S. government continues to expand and intensify export controls and sanctions, with a major focus on the destinations of and/or entities in the People’s Republic of China (“P.R.C.”), Russian Federation, and Belarus. Some customers in the P.R.C., in particular, have expressed concerns to us that continued action by the U.S. government could potentially interrupt their ability to make use of our products or services, which has in some cases, and could in the future, negatively impact the demand for our products and services by these customers. Recent additions to regulations include expansion of special Foreign Direct Product Rules, which extend the reach of the EAR to certain foreign-made products produced with certain U.S. items in certain cases of designated end-users or end-uses, and to renewal licenses for certain lawfully delivered products that would have changed status under new regulations. Such regulatory additions could negatively affect sales. Additional proposed and complicated regulations, including for added restrictions on U.S. person activity, remain pending.  U.S. government policy and regulation remain fluid and uncertain, and could in the future impact segments of our business. Other countries and jurisdictions with important roles in our industry are updating some of their export control regulations to further align with those of the U.S. government and, in some cases, to counter U.S. regulations. For example, the P.R.C. has imposed restrictions on imports of certain memory integrated circuits (“ICs”) offered by U.S. companies and has been developing its legal authorities to counter foreign sanctions. On November 27, 2024, the U.S. government renewed its caution that visitors to the P.R.C. are subject to arbitrary enforcement of local laws and wrongful detention, a risk that could deter or hinder certain business activities. Based on our current assessments, we expect the near-term impact of these expanded trade restrictions on our business to be limited, but revisions, clarifications, and proposals that are still in government development and open questions of interpretation leave much unknown.
U.S. Administrative Initiatives. The new U.S. Administration has made and is expected to continue to make changes to U.S. trade policy, including renegotiating or terminating existing trade agreements and leveraging tariffs. For example, the U.S. recently imposed additional tariffs on imports from China, Canada, and Mexico. We do not import into the U.S. a significant volume of goods of those countries. Trade conflict through exchange of tariffs and other retaliatory actions are expected to impact worldwide supply chains, increase prices and put downward pressure on economic activity, and could negatively affect our future sales in various geographic markets. The uncertainty caused by these recent regulations and the potential for additional future restrictions could negatively affect our future sales, including in but not limited to the P.R.C. market.
Geopolitical tensions/conflicts. Geopolitical tensions and conflicts in various locations around the world have created volatility in the global financial markets and may have further global economic consequences, including potential disruptions of the global supply chain, heightened volatility of commodity and raw material prices, and increased fears of a global recession. We have contractors located in the West Bank and in Israel, who are providing software development and customer technical support services, and we have developed contingency plans to use alternative resources to continue serving customers, if needed. Any escalations could lead to disruptions or reductions in international trade, deter or prevent purchasing activity of customers, and negatively impact our development timelines and customer support (with respect to the conflicts in the Middle East) or China sales (with respect to U.S.-P.R.C. tensions) and financial results in general (with respect to global tensions).

Financial Highlights

Financial highlights for the three months ended March 31, 2025, are as follows:

Total revenues were $47.8 million, an increase of $6.5 million, or 16%, compared to the three months ended March 31, 2024. Analytics revenue was $42.5 million, an increase of $4.0 million, or 10%, compared to the three months ended March 31, 2024. The increase in Analytics revenue was driven by increases in revenues from Exensio and Cimetrix software licenses and CV and secureWISE systems, partially offset by a decrease in revenues from DFI systems. Integrated Yield Ramp revenue was $5.3 million, an increase of $2.5 million, or 86%, compared to the three months ended March 31, 2024. The increase in Integrated Yield Ramp revenue was primarily due to higher Gainshare from increased customer wafer shipments at non-leading-edge nodes, partially offset by a decrease in hours worked on fixed-fees engagements.

31

Costs of revenues decreased $0.6 million, compared to the three months ended March 31, 2024, primarily due to decreases in hardware costs and facilities and IT-related costs including depreciation and amortization expense. These decreases were partially offset by increases in subcontractor costs, third-party cloud-delivery costs, and personnel-related costs.
Net loss was $3.0 million, compared to a net loss of $0.4 million for the three months ended March 31, 2024. The increase in net loss was primarily attributable to (i) an increase in sales and marketing activities, and general and administrative expenses, which was primarily due to acquisition costs related to the acquisition of SecureWise, and (ii) an increase in research and development expenses, partially offset by an increase in total revenues.

Critical Accounting Policies

Our discussion and analysis of our financial conditions, results of operations and cash flows are based on our condensed consolidated financial statements, which have been prepared in conformity with accounting principles generally accepted in the United States of America. Our preparation of these unaudited condensed consolidated financial statements requires us to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the dates of the financial statements and the reported amounts of revenues and expenses during the reporting periods. We base our estimates on historical experience and on various other assumptions that we believe to be reasonable under the circumstances. The most significant estimates and assumptions relate to revenue recognition, valuation of long-lived assets including goodwill and intangible assets, stock-based compensation and the realization of deferred tax assets (“DTAs”). Actual amounts may differ from such estimates under different assumptions or conditions.

For additional information about our critical accounting policies, see Note 1, Basis of Presentation and Summary of Significant Accounting Policies, and Note 2, Revenue from Contracts with Customers to our unaudited condensed consolidated financial statements in this Quarterly Report on Form 10-Q and Part II Item 7 Management’s Discussion and Analysis of Financial Condition and Results of Operation, under the heading of “Critical Accounting Estimates” in our Annual Report. There were no material changes during the three months ended March 31, 2025, to the items that we disclosed as our critical accounting policies and estimates in Part II, Item 7 of the Annual Report.

Recent Accounting Pronouncements and Accounting Changes

See Note 1, Basis of Presentation and Summary of Significant Accounting Policies, to our unaudited condensed consolidated financial statements in this Quarterly Report on Form 10-Q, for a description of recent accounting pronouncements and accounting changes, including the expected dates of adoption and estimated effects, if any, on our condensed consolidated financial statements.

32

Results of Operations

Discussion of Financial Data for the Three months ended March 31, 2025 and 2024

Revenues, Costs of Revenues, and Gross Margin

Three Months Ended

March 31, 

Change

(Dollars in thousands)

2025

    

2024

    

$

    

%

 

Revenues:

  

 

  

 

  

 

  

Analytics

$

42,471

$

38,463

$

4,008

 

10

%

Integrated Yield Ramp

 

5,307

 

2,847

 

2,460

 

86

%

Total revenues

47,778

41,310

6,468

 

16

%

Costs of revenues

 

12,955

 

13,529

 

(574)

 

(4)

%

Gross profit

$

34,823

$

27,781

$

7,042

 

25

%

Gross margin

 

73

%  

 

67

%  

 

  

 

Analytics revenue as a percentage of total revenues

 

89

%  

 

93

%  

 

  

 

  

Integrated Yield Ramp revenue as a percentage of total revenues

 

11

%  

 

7

%  

 

  

 

  

Analytics Revenue

Analytics revenue increased $4.0 million for the three months ended March 31, 2025, compared to the three months ended March 31, 2024. The increase in Analytics revenue was driven by increases in revenues from Exensio and Cimetrix software licenses, the addition of revenues related to SecureWise products and services, and CV systems, partially offset by a decrease in revenues from DFI systems.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue increased $2.5 million for the three months ended March 31, 2025, compared to the three months ended March 31, 2024, primarily due to higher Gainshare from increased customer wafer shipments at non-leading-edge nodes, partially offset by a decrease in hours worked on fixed-fees engagements.

Our Integrated Yield Ramp revenue may continue to fluctuate from period to period primarily due to the contribution of Gainshare, which is dependent on many factors that are outside our control, including among others, continued production of ICs by our customers at facilities at which we generate Gainshare, sustained yield improvements by our customers, and whether we enter into new contracts containing Gainshare.

Our Analytics and Integrated Yield Ramp revenues may also fluctuate in the future and are dependent on a number of factors, including the semiconductor industry’s continued acceptance of our products, services and solutions, the timing of purchases by existing and new customers, cancellations by existing customers, and our ability to attract new customers and penetrate new markets, supply chain challenges and further penetration of our current customer base. Fluctuations in future results may also occur if any of our significant customers renegotiate pre-existing contractual commitments, including due to adverse changes in their own business.

Costs of Revenues

Costs of revenues consist primarily of costs incurred to provide and support our services, costs recognized in connection with licensing our software, IT and facilities-related costs and amortization of acquired technology. Service costs include material costs, hardware costs (including cost of leased assets under sales-type lease), personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), subcontractor costs, overhead costs, travel expenses, and allocated facilities-related costs. Software license costs consist of costs associated with third-party cloud-

33

delivery related expenses and licensing third-party software used by us in providing services to our customers in solution engagements or sold in conjunction with our software products.

The decrease in costs of revenues of $0.6 million for the three months ended March 31, 2025, compared to the three months ended March 31, 2024, was primarily due to (i) a $1.5 million decrease in hardware costs and (ii) a $0.3 million decrease in facilities and IT-related costs including depreciation and amortization expense. These decreases were partially offset by (a) a $0.6 million increase in personnel-related costs due to higher wages, (b) a $0.4 million increase in subcontractor costs, and (c) a $0.1 million increase in third-party cloud-delivery costs.

Gross Margin

Gross margin increased 6 percentage points for the three months ended March 31, 2025, to 73%, compared to 67% for the three months ended March 31, 2024. The higher gross margin during the three months ended March 31, 2025, was primarily due to higher Analytics and Gainshare revenues and lower costs of revenues for the three months ended March 31, 2025.

Operating Expenses:

Research and Development

Three Months Ended

March 31, 

Change

(Dollars in thousands)

    

2025

    

2024

    

$

%

 

Research and development

$

14,628

$

12,984

$

1,644

 

13

%

As a percentage of total revenues

 

31

%  

 

31

%  

 

  

 

  

Research and development expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus and stock-based compensation expense), outside development services, travel expenses, third-party cloud-services related costs, IT and facilities cost allocations to support product development activities.

Research and development expenses increased $1.6 million for the three months ended March 31, 2025, compared to the three months ended March 31, 2024, primarily due to (i) a $0.8 million increase in subcontractor fees primarily related to Cimetrix software, (ii) a $0.3 million increase in facilities and IT-related costs, (iii) a $0.3 million increase in personnel-related costs due to increased headcount, worldwide salary increases, and stock-based compensation expense, and (iv) a $0.2 million increase in third-party cloud-delivery costs.

We anticipate our expenses in research and development will fluctuate in absolute dollars from period to period as a result of the size and the timing of product development projects.

Selling, General, and Administrative

Three Months Ended

March 31, 

Change

(Dollars in thousands)

    

2025

    

2024

    

$

%

 

Selling, general, and administrative

$

23,372

$

16,498

$

6,874

 

42

%

As a percentage of total revenues

 

49

%  

 

40

%  

 

  

 

  

Selling, general, and administrative expenses consist primarily of personnel-related costs (including compensation, employee benefits, bonus, commission and stock-based compensation expense for sales, marketing, and general and administrative personnel), legal, tax and accounting services, marketing communications and trade conference-related expenses, third-party cloud-services related costs, travel, business acquisition costs, IT and facilities cost allocations.

Selling, general, and administrative expenses increased $6.9 million for the three months ended March 31, 2025, compared to the three months ended March 31, 2024, primarily due to (i) $4.3 million in non-recurring legal, finance, integration, and other costs related to the acquisition of SecureWise, (ii) a $1.9 million increase in personnel-related costs

34

mainly resulting from increased headcount, worldwide salary increases, bonus expense, and stock-based compensation expense, (iii) a $0.7 million increase in facilities and IT-related costs including shipping costs and depreciation expense, and (iv) a $0.5 million increase in subcontractor fees, partially offset by a $0.8 million decrease in general legal expenses.

We anticipate our selling, general, and administrative expenses will fluctuate in absolute dollars from period to period as a result of cost control initiatives and to support increased selling efforts in the future.

Amortization of Acquired Intangible Assets

Three Months Ended

March 31, 

Change

(Dollars in thousands)

    

2025

    

2024

    

$

%

 

Amortization of acquired intangible assets

$

378

$

259

$

119

 

46

%

Amortization of acquired intangible assets primarily consists of amortization of intangibles acquired as a result of certain business combinations.

Interest Expense

Three Months Ended

    

March 31, 

Change

(Dollars in thousands)

2025

    

2024

    

$

%

 

Interest expense

$

(311)

$

$

(311)

 

%

Interest expense is from our long-term debt that was used in financing the acquisition of SecureWise, and amortization of debt discount and financing costs.

Other Income (Expense), Net

Three Months Ended

    

March 31, 

Change

(Dollars in thousands)

2025

    

2024

    

$

%

 

Other income (expense), net

$

870

$

1,692

$

(822)

 

49

%

Other income (expense), net, primarily consists of interest income and foreign currency transaction exchange gains and losses. Other income (expense), net decreased $0.8 million for the three months ended March 31, 2025, compared to the three months ended March 31, 2024, primarily due to (i) a $0.6 million decrease in interest income from cash, cash equivalents and short-term investments, and (ii) $0.2 million net unfavorable fluctuations in foreign currency exchange rates.

Income Tax Expense

Three Months Ended

    

March 31, 

Change

(Dollars in thousands)

2025

    

2024

    

$

%

 

Income tax expense

$

(36)

$

(125)

$

(89)

 

(71)

%

Income tax expense decreased for the three months ended March 31, 2025, compared to the three months ended March 31, 2024, primarily due to changes in the foreign, federal and state taxes and year-to-date recognition of worldwide pre-tax income in relation to their forecasted amounts for full years.

Any significant change in our future effective tax rates could adversely impact our consolidated financial position, results of operations and cash flows. Our future tax rates may be adversely affected by a number of factors including increase in expenses not deductible for tax purposes, new or changing tax legislation in the United States and in foreign countries where

35

we are subject to tax jurisdictions, the geographic composition of our pre-tax income, the amount of our pre-tax income as business activities fluctuate, our ability to use tax attributes such as research and development tax credits and net operation losses, the tax effects of employee stock activity, audit examinations with adverse outcomes, changes in accounting principles generally accepted in the United States of America and the effectiveness of our tax planning strategies.

Liquidity and Capital Resources

As of March 31, 2025, our working capital, defined as total current assets less total current liabilities, was $76.3 million, compared to $145.4 million as of December 31, 2024. Total cash, cash equivalents, and short-term investments were $54.1 million as of March 31, 2025, compared to cash, cash equivalents, and short-term investments of $114.9 million as of December 31, 2024. As of March 31, 2025, and December 31, 2024, cash and cash equivalents held by our foreign subsidiaries were $15.0 million and $13.3 million, respectively.

Our material cash requirements include interest payments on our debt, operating lease payments, and purchase obligations to support our operations. Refer to Part I, Item 1, Financial Statements, Note 13, Debt, Note 4, Leases, Note 14, Business Combination and Note 11, Commitments and Contingencies for details relating to our material cash requirements for debt, leasing arrangements, including future maturities of operating lease liabilities, and purchase obligations, respectively.

We believe that our existing cash resources and anticipated funds from operations will satisfy our cash requirements to fund our operating activities, capital expenditures, other obligations including repayment of long-term debt and corresponding interest for at least the next twelve months, and thereafter for the foreseeable future; however, we will continue to evaluate if we require additional funding to meet our longer-term needs.

Term Loan and Revolving Credit Facility

On March 7, 2025, we entered into a Credit Agreement (the “Credit Agreement”) with the lenders who are party to the Credit Agreement and the lenders who may become a party to the Credit Agreement pursuant to the terms thereof (the “Lenders”) and Wells Fargo Bank, National Association, as administrative agent to the Lenders (the “Agent”).

The Credit Agreement provides for (a) a revolving credit facility in an aggregate principal amount of $45 million (the “Revolving Credit Facility”) and (b) a term loan facility in an aggregate principal amount of $25 million (the “Term Loan” and together with the Revolving Credit Facility, the “Credit Facilities”).

Borrowings under the Credit Facilities will accrue interest at rates equal, at our election, to (i) the alternate base rate, which is defined as the highest of (a) the federal funds effective rate in effect from time to time plus 0.50%, (b) the prime commercial lending rate in effect from time to time, and (c) the daily simple secured overnight financing rate (“SOFR”) plus 1.00% or (ii) SOFR, plus, in each case, the applicable margin. The applicable margin for the Revolving Credit Facility borrowings bearing interest at the alternate base rate ranges from 1.00% to 1.75%, and the applicable margin for Revolving Credit Facility borrowings bearing interest based on the SOFR ranges from 2.00% to 2.75%, in each case, based on our consolidated total net leverage ratio as of the most recently ended fiscal quarter. The applicable margin for Term Loan borrowings bearing interest at the alternate base rate ranges from 1.00% to 1.75%, and the applicable margin for Term Loan borrowings bearing interest based on the SOFR ranges from 2.00% to 2.75%, in each case, based on our consolidated total net leverage ratio as of the most recently ended fiscal quarter. We will pay an annual commitment fee during the term of the Credit Agreement at a rate per annum equal to 0.50% for any undrawn portion of the Revolving Credit Facility.

The Credit Agreement contains customary representations and warranties, as well as customary affirmative and negative covenants. Negative covenants include, among others, restrictions on the incurrence of debt, the incurrence of liens, the making of investments and distributions, dividends and stock buy-backs. In addition, the Credit Agreement requires that we maintain a consolidated total net leverage ratio of not greater than 3.00 to 1.00, and a consolidated fixed charge coverage ratio of not less than 1.25 to 1.00. As of March 31, 2025, we were in compliance with the covenants contained in the Credit Agreement.

The Credit Agreement contains customary events of default. Upon the occurrence and during the continuance of an event of default, the Agent may declare the outstanding advances and all other obligations under the Credit Agreement immediately due and payable.

36

The obligations under the Credit Agreement are guaranteed by all present and future material domestic subsidiaries of the Company (collectively with the Company referred to herein as the “Credit Parties”), subject to customary exceptions, and are secured by the equity interests of the Credit Parties (other than the Company) and substantially all of the personal property owned by the Credit Parties, including 65% of the equity interests of certain foreign subsidiaries owned by the Credit Parties.

The Company used the amounts borrowed under the Credit Facilities to finance, in part, the purchase price paid for the acquisition of SecureWise.

Repurchase of Company’s Common Stock

On April 15, 2024, the Board of Directors adopted a stock repurchase program (the “2024 Program”) to repurchase up to $40.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years from the adoption date. The actual timing and amount of repurchases are subject to business and market conditions, corporate and regulatory requirements, stock price, acquisition opportunities and other factors. The 2024 Program does not obligate the Company to acquire a minimum amount of shares and may be modified, suspended or terminated without prior notice. The Company has not repurchased any shares under the 2024 Program.

Cash Flow Data

The following table summarizes our cash flows for the periods presented:

Three Months Ended

March 31, 

(In thousands)

    

2025

    

2024

    

$ Change

Net cash flows provided by (used in):

 

  

 

  

 

  

Operating activities

$

8,640

$

(1,862)

$

10,502

Investing activities

 

(123,861)

 

(2,642)

 

(121,219)

Financing activities

 

67,958

 

(8,752)

 

76,710

Effect of exchange rate changes on cash and cash equivalents

 

403

 

(466)

 

869

Net change in cash and cash equivalents

$

(46,860)

$

(13,722)

$

(33,138)

Net Cash Flows Provided by (Used in) Operating Activities

Cash flows provided by operating activities during the three months ended March 31, 2025, consisted of net loss, adjusted for certain non-cash items which primarily consisted of depreciation and amortization, stock-based compensation expense, amortization of acquired intangible expense, amortization of costs capitalized to obtain revenue contracts, net accretion of discounts on short-term investments, accretion of unguaranteed residual assets and net change in operating assets and liabilities.

Net cash flows provided by operating activities was $8.6 million for the three months ended March 31, 2025, compared to net cash used in operating activities of $1.9 million for the three months ended March 31, 2024. The increase in cash provided by operating activities between the periods was driven primarily by higher collections from customers, partially offset by (i) an increase in bonus payments under the Company’s bonus plan, and (ii) an increase in payments of vendor invoices.

Net Cash Flows Used in Investing Activities

Net cash used in investing activities was $123.9 million for the three months ended March 31, 2025, compared to $2.6 million for the three months ended March 31, 2024.

For the three months ended March 31, 2025, cash used in investing activities primarily related to $129.7 million payments for the acquisition of SecureWise, net of cash acquired, $2.9 million purchases of short-term investments, and $8.2 million purchases and prepayments of property and equipment primarily related to our DFI systems, partially offset by $17.0 million proceeds from maturities and sales of short-term investments.

37

For the three months ended March 31, 2024, cash used in investing activities primarily related to $19.6 million purchases of short-term investments, and $2.0 million purchases of property and equipment primarily related to our DFI systems, partially offset by $19.0 million proceeds from maturities and sales of short-term investments.

Net Cash Flows Provided by (Used in) Financing Activities

Net cash provided by financing activities was $68.0 million for the three months ended March 31, 2025, compared to cash used in financing activities of $8.8 million for the three months ended March 31, 2024.

For the three months ended March 31, 2025, net cash provided by financing activities primarily consisted of $69.2 million proceeds from long-term debt, net of debt financing costs, that was used in financing the acquisition of SecureWise, and $2.1 million proceeds from our employee stock purchase plan, offset by $3.3 million in cash payments for taxes related to net share settlement of equity awards.

For the three months ended March 31, 2024, net cash used in financing activities primarily consisted of $6.9 million repurchases of common stock, $3.8 million cash payments for taxes related to net share settlement of equity awards, partially offset by $1.9 million proceeds from our employee stock purchase plan and exercise of stock options.

Related Party Transactions

Refer to Note 12, Strategic Partnership Agreement with Advantest and Related Party Transactions, to our condensed consolidated financial statements in this Quarterly Report on Form 10-Q, for the discussion about related party transactions between the Company and Advantest (as defined therein).

Off-Balance Sheet Agreements

As of March 31, 2025, we do not have any off-balance sheet arrangements, investments in special purpose entities or undisclosed borrowings or debt.

Item 3. Quantitative and Qualitative Disclosures about Market Risk

The following discusses our exposure to market risk related to changes in interest rates and foreign currency exchange rates. We do not currently own any equity investments, nor do we expect to own any in the foreseeable future. This discussion contains forward-looking statements that are subject to risks and uncertainties. Actual results could vary materially as a result of a number of factors.

Interest Rate Risk.  Our exposure to market risk for changes in interest rates relates primarily to our investment portfolio and long-term debt as described below.

As of March 31, 2025, we had cash, cash equivalents and short-term investments of $54.1 million. Cash and cash equivalents consisted of cash and highly liquid money market instruments and short-term investments consisted of U.S. Government securities. We would not expect our operating results or cash flows to be affected to any significant degree by the effect of a sudden change in market interest on our portfolio. A hypothetical increase in market interest rates of 100 basis points from the market rates in effect as of March 31, 2025, would cause the fair value of these investments to decrease by an immaterial amount which would not have significantly impacted our financial position or results of operations.

As of March 31, 2025, and periodically throughout the year, we have maintained cash balances in various operating accounts in excess of federally insured limits. We limit the amount of credit exposure to any financial institution by evaluating the creditworthiness of the financial institutions with which we invest and investing through more than one financial institution.

We are exposed to interest rate risk through our variable rate debt. As of March 31, 2025, we had $70.0 million of debt that is subject to variable interest rates that are based on the daily simple secured overnight financing rate (“SOFR”) or an alternate base rate. Refer to Note 13 – Debt for details relating to the debt. If the rates were to increase by 100 basis points from the rates in effect as of March 31, 2025, our interest expense on the variable rate debt would increase by an average of

38

$0.5 million annually. There are inherent limitations in the sensitivity analysis presented, primarily due to the assumptions that interest rate changes would be instantaneous, while SOFR changes regularly. We do not currently hedge our interest rate risks but may determine to do so in the future. We will continue to monitor our exposure to interest rate risk.

Foreign Currency and Exchange Risk. Certain of our cash balances, receivables and payables for our international offices are denominated in the local currency, including the Euro, Yen, Chinese Yuan, New Taiwan Dollar and Canadian Dollar. Therefore, some of our activities including a portion of our revenues and operating expenditures are subject to foreign currency risks. We also have intercompany transactions with and between certain of our subsidiaries of differing functional currencies, resulting in foreign transaction gains or losses based on our period-end exchange rates. Due to potential volatility of currency exchange rates, we cannot predict the effect of exchange fluctuations on our business. To date, we have not entered into any foreign currency exchange contracts and currently do not expect to enter into foreign currency exchange contracts for trading or speculative purposes.

Item 4. Controls and Procedures

Evaluation of Disclosure Controls and Procedures

Our management, with the participation of our principal executive officer and principal financial and accounting officer, evaluated the effectiveness of our “disclosure controls and procedures” as defined in Exchange Act Rules 13a-15(e) and 15d-15(e) as of March 31, 2025, in connection with the filing of this Quarterly Report on Form 10-Q. Based on that evaluation as of March 31, 2025, our principal executive officer and principal financial and accounting officer concluded that our disclosure controls and procedures were effective to ensure that information we are required to disclose in reports that we file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the rules and forms of the SEC and is accumulated and communicated to our management as appropriate to allow timely decisions regarding required disclosure.

On March 7, 2025, we completed the acquisition of SecureWise. SEC guidance permits management to omit an assessment of an acquired business’ internal control over financial reporting from management’s assessment of internal control over financial reporting for a period not to exceed one year from the date of the acquisition. Accordingly, management has not assessed SecureWise internal control over financial reporting as of March 31, 2025.

Changes in Internal Control over Financial Reporting

Other than as described above, there were no changes in the Company’s internal control over financial reporting during the three months ended March 31, 2025, that have materially affected, or are reasonably likely to materially affect, the Company’s internal control over financial reporting.

PART II — OTHER INFORMATION

Item 1. Legal Proceedings

Refer to Note 11, Commitments and Contingencies to our condensed consolidated financial statements in this Quarterly Report on Form 10-Q, for information regarding our legal proceedings.

Item 1A. Risk Factors

As of the date of this Quarterly Report on Form 10-Q, there have been no material changes from the risk factors disclosed in our Annual Report on Form 10-K for the year ended December 31, 2024, filed with the SEC on February 27, 2025. Any of such factors could result in a significant or material adverse effect on our result of operations or financial conditions. Additional risk factors not presently known to us or that we currently deem immaterial may also impair our business or results of operations. We may disclose changes to such factors or disclose additional factors from time to time in our future filings with the SEC.

39

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

There were no stock repurchases during the first quarter of 2025.

Item 3. Defaults Upon Senior Securities

None.

Item 4. Mine Safety Disclosures

None.

Item 5. Other Information

Insider Adoption or Termination of Trading Arrangements

During the quarter ended March 31, 2025, none of our directors or officers adopted or terminated a “Rule 10b5-1 trading arrangement” or “non-Rule 10b5-1 trading arrangement,” as those terms are defined in Regulation S-K, Item 408.

40

Item 6. Exhibits

Incorporated by Reference

Exhibit
Number

Exhibit Description

Form

Filing Date

Exhibit Number

SEC File No.

Provided Herewith

2.01

Equity Purchase Agreement, dated as of February 19, 2025, by and among PDF Solutions, Inc., SecureWise LLC and Telit IOT Solutions Inc.

8-K

2/19/2025

2.1

000-31311

3.01

Third Amended and Restated Certificate of Incorporation of PDF Solutions, Inc., and Certificate of Amendment to Third Amended and Restated Certificate of Incorporation of PDF Solutions, Inc.

10-Q

8/8/2024

3.01

000-31311

3.02

Amended and Restated Bylaws of PDF Solutions, Inc.

8-K

5/1/2019

3.1

000-31311

10.01

Credit Agreement, dated as of March 7, 2025, by and among PDF Solutions, Inc., Wells Fargo Bank, National Association and the lenders who are party to the Agreement and the lenders who may become a party to the Agreement.

8-K

3/7/2025

10.1

000-31311

31.01

Certification of the principal executive officer pursuant to Exchange Act Rules 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.

X

31.02

Certification of the principal financial and accounting officer pursuant to Exchange Act Rules 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.

X

32.01

Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.*

X

32.02

Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.*

X

101

The following financial statements from the Company’s Quarterly Report on Form 10-Q for the quarter ended March 31, 2025, formatted in Inline XBRL: (i) Condensed Consolidated Balance Sheets, (ii) Condensed Consolidated Statements of Comprehensive Income (Loss), (iii) Condensed Consolidated Statements of Stockholders’ Equity, (iv) Condensed Consolidated Statements of Cash Flows and (v) Notes to Condensed Consolidated Financial Statements, tagged as blocks of text and including detailed tags.

X

104

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

*

Furnished, and not filed.

41

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.

PDF SOLUTIONS, INC.

Date: May 8, 2025

By:

/s/ JOHN K. KIBARIAN

John K. Kibarian

President and Chief Executive Officer

(principal executive officer)

Date: May 8, 2025

By:

/s/ ADNAN RAZA

Adnan Raza

Executive Vice President, Finance and Chief

Financial Officer

(principal financial and accounting officer)

42

EX-31.1 2 pdfs-20250331xex31d1.htm EX-31.1

Exhibit 31.01

CERTIFICATIONS

I, John K. Kibarian, certify that:

1. I have reviewed this quarterly report on Form 10-Q of PDF Solutions, Inc.;

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

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

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

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

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

(c) Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

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

5. The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of 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.

  

By:

 /s/ John K. Kibarian

  

  

John K. Kibarian

  

  

President and Chief Executive Officer

  

  

(principal executive officer)

Date: May 8, 2025


EX-31.2 3 pdfs-20250331xex31d2.htm EX-31.2

Exhibit 31.02

CERTIFICATIONS

I, Adnan Raza, certify that:

1. I have reviewed this quarterly report on Form 10-Q of PDF Solutions, Inc.;

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

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

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

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

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

(c) Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

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

5. The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of 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.

  

By:

/s/ Adnan Raza

  

  

Adnan Raza

  

  

Executive Vice President, Finance

and Chief Financial Officer

  

  

(principal financial and accounting

officer)

Date: May 8, 2025


EX-32.1 4 pdfs-20250331xex32d1.htm EX-32.1

Exhibit 32.01

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Quarterly Report of PDF Solutions, Inc. (the “Company”) on Form 10-Q for the quarter ended March 31, 2025, as filed with the Securities and Exchange Commission on May 8, 2025 (the “Report”), I, John K. Kibarian, President and Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

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

(2) The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.

  

By:

/s/ John K. Kibarian

  

  

John K. Kibarian

  

  

President and Chief Executive

Officer

  

  

(principal executive officer)

Date: May 8, 2025


EX-32.2 5 pdfs-20250331xex32d2.htm EX-32.2

Exhibit 32.02

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Quarterly Report of PDF Solutions, Inc. (the “Company”) on Form 10-Q for the quarter ended March 31, 2025, as filed with the Securities and Exchange Commission on May 8, 2025 (the “Report”), I, Adnan Raza, Executive Vice President, Finance and Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

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

(2) The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.

10

  

By:

/s/ Adnan Raza

  

  

Adnan Raza

  

  

Executive Vice President, Finance

and Chief Financial Officer

  

  

(principal financial and accounting

officer)

Date: May 8, 2025


EX-101.SCH 6 pdfs-20250331.xsd EX-101.SCH 995200100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS link:presentationLink link:calculationLink link:definitionLink 995200200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS) link:presentationLink link:calculationLink link:definitionLink 995200400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS link:presentationLink link:calculationLink link:definitionLink 99940203 - Disclosure - REVENUE - Contract Balances (Details) link:presentationLink link:calculationLink link:definitionLink 99940204 - Disclosure - REVENUE - Deferred Revenues (Details) link:presentationLink link:calculationLink link:definitionLink 99940205 - Disclosure - REVENUE - Costs to Obtain or Fulfill a Contract (Details) link:presentationLink link:calculationLink link:definitionLink 99940302 - Disclosure - BALANCE SHEET COMPONENTS - Prepaid Expense and Other Current Assets (Details) link:presentationLink link:calculationLink link:definitionLink 99940303 - Disclosure - BALANCE SHEET COMPONENTS - Property and Equipment (Details) link:presentationLink link:calculationLink link:definitionLink 99940305 - Disclosure - BALANCE SHEET COMPONENTS - Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 99940306 - Disclosure - BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 99940307 - Disclosure - BALANCE SHEET COMPONENTS - Other Non-current Assets (Details) link:presentationLink link:calculationLink link:definitionLink 99940308 - Disclosure - BALANCE SHEET COMPONENTS - Net Investment in Sales-Type Lease (Details) link:presentationLink link:calculationLink link:definitionLink 99940309 - Disclosure - BALANCE SHEET COMPONENTS - Maturities of Lease Payments Under Sales-type Leases (Details) link:presentationLink link:calculationLink link:definitionLink 99940402 - Disclosure - LEASES - Components of Operating Lease Expense (Details) link:presentationLink link:calculationLink link:definitionLink 99940403 - Disclosure - LEASES - Maturity of Operating Lease Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - Note 5 - BALANCE SHEET COMPONENTS - Intangible Asset (Details) (Calc 2) link:presentationLink link:calculationLink link:definitionLink 40703 - Disclosure - Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details) (Calc 2) link:presentationLink link:calculationLink link:definitionLink 99940801 - Disclosure - NET LOSS PER SHARE - Calculation of Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 99940901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Segment Revenue, Gross Profit, and Net Income (Loss) (Details) link:presentationLink link:calculationLink link:definitionLink 99941001 - Disclosure - FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details) link:presentationLink link:calculationLink link:definitionLink 99941301 - Disclosure - DEBT - Outstanding Debt (Details) link:presentationLink link:calculationLink link:definitionLink 99941303 - Disclosure - DEBT - Future Payments on Total Debt (Details) link:presentationLink link:calculationLink link:definitionLink 99941402 - Disclosure - BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details) link:presentationLink link:calculationLink link:definitionLink 995200090 - Document - Document And Entity Information link:presentationLink link:calculationLink link:definitionLink 995200105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals) link:presentationLink link:calculationLink link:definitionLink 995200300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY link:presentationLink link:calculationLink link:definitionLink 995210101 - Disclosure - BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES link:presentationLink link:calculationLink link:definitionLink 995210201 - Disclosure - REVENUE link:presentationLink link:calculationLink link:definitionLink 995210401 - Disclosure - LEASES link:presentationLink link:calculationLink link:definitionLink 995210501 - Disclosure - STOCKHOLDERS' EQUITY link:presentationLink link:calculationLink link:definitionLink 995210601 - Disclosure - EMPLOYEE BENEFIT PLANS link:presentationLink link:calculationLink link:definitionLink 995210701 - Disclosure - INCOME TAXES link:presentationLink link:calculationLink link:definitionLink 995210801 - Disclosure - NET LOSS PER SHARE link:presentationLink link:calculationLink link:definitionLink 995210901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION link:presentationLink link:calculationLink link:definitionLink 995211001 - Disclosure - FAIR VALUE MEASUREMENTS link:presentationLink link:calculationLink link:definitionLink 995211101 - Disclosure - COMMITMENTS AND CONTINGENCIES link:presentationLink link:calculationLink link:definitionLink 995211201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS link:presentationLink link:calculationLink link:definitionLink 995211401 - Disclosure - BUSINESS COMBINATION link:presentationLink link:calculationLink link:definitionLink 99920102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies) link:presentationLink link:calculationLink link:definitionLink 99930203 - Disclosure - REVENUE (Tables) link:presentationLink link:calculationLink link:definitionLink 99930303 - Disclosure - BALANCE SHEET COMPONENTS (Tables) link:presentationLink link:calculationLink link:definitionLink 99930403 - Disclosure - LEASES (Tables) link:presentationLink link:calculationLink link:definitionLink 99930603 - Disclosure - EMPLOYEE BENEFIT PLANS (Tables) link:presentationLink link:calculationLink link:definitionLink 99930803 - Disclosure - NET LOSS PER SHARE (Tables) link:presentationLink link:calculationLink link:definitionLink 99930903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) link:presentationLink link:calculationLink link:definitionLink 99931003 - Disclosure - FAIR VALUE MEASUREMENTS (Tables) link:presentationLink link:calculationLink link:definitionLink 99931403 - Disclosure - BUSINESS COMBINATION (Tables) link:presentationLink link:calculationLink link:definitionLink 99940101 - Disclosure - BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 99940201 - Disclosure - REVENUE (Details) link:presentationLink link:calculationLink link:definitionLink 99940202 - Disclosure - REVENUE - Disaggregation of Revenue (Details) link:presentationLink link:calculationLink link:definitionLink 99940206 - Disclosure - REVENUE - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 99940301 - Disclosure - BALANCE SHEET COMPONENTS (Details) link:presentationLink link:calculationLink link:definitionLink 99940401 - Disclosure - LEASES (Details) link:presentationLink link:calculationLink link:definitionLink 99940501 - Disclosure - STOCKHOLDERS EQUITY (Details) link:presentationLink link:calculationLink link:definitionLink 99940601 - Disclosure - EMPLOYEE BENEFIT PLANS - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 99940602 - Disclosure - EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) link:presentationLink link:calculationLink link:definitionLink 99940603 - Disclosure - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) link:presentationLink link:calculationLink link:definitionLink 99940604 - Disclosure - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) link:presentationLink link:calculationLink link:definitionLink 99940701 - Disclosure - INCOME TAXES - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 99940802 - Disclosure - NET LOSS PER SHARE - Anti-dilutive Securities (Details) link:presentationLink link:calculationLink link:definitionLink 99940902 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) link:presentationLink link:calculationLink link:definitionLink 99940903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 99940904 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 99941002 - Disclosure - FAIR VALUE MEASUREMENTS - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 99941101 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details) link:presentationLink link:calculationLink link:definitionLink 99941201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) link:presentationLink link:calculationLink link:definitionLink 99941302 - Disclosure - DEBT - Revolving Credit Facility (Details) link:presentationLink link:calculationLink link:definitionLink 99941401 - Disclosure - BUSINESS COMBINATION - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 995210301 - Disclosure - BALANCE SHEET COMPONENTS link:presentationLink link:calculationLink link:definitionLink 995211301 - Disclosure - DEBT link:presentationLink link:calculationLink link:definitionLink 99931303 - Disclosure - DEBT (Tables) link:presentationLink link:calculationLink link:definitionLink 99940304 - Disclosure - BALANCE SHEET COMPONENTS - Goodwill and Intangible Assets, Net (Details) link:presentationLink link:calculationLink link:definitionLink 99900 - Disclosure - Standard And Custom Axis Domain Defaults link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 7 pdfs-20250331_cal.xml EX-101.CAL EX-101.DEF 8 pdfs-20250331_def.xml EX-101.DEF EX-101.LAB 9 pdfs-20250331_lab.xml EX-101.LAB EX-101.PRE 10 pdfs-20250331_pre.xml EX-101.PRE XML 12 R1.htm IDEA: XBRL DOCUMENT v3.25.1
Document And Entity Information - shares
3 Months Ended
Mar. 31, 2025
May 02, 2025
Document and Entity Information    
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Mar. 31, 2025  
Document Transition Report false  
Securities Act File Number 000-31311  
Entity Registrant Name PDF SOLUTIONS, INC.  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 25-1701361  
Entity Address, Address Line One 2858 De La Cruz Blvd.  
Entity Address, City or Town Santa Clara  
Entity Address, State or Province CA  
Entity Address, Postal Zip Code 95050  
City Area Code 408  
Local Phone Number 280-7900  
Title of 12(b) Security Common Stock, $0.00015 par value  
Trading Symbol PDFS  
Security Exchange Name NASDAQ  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Large Accelerated Filer  
Entity Small Business false  
Entity Emerging Growth Company false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   39,139,563
Entity Central Index Key 0001120914  
Amendment Flag false  
Current Fiscal Year End Date --12-31  
Document Fiscal Period Focus Q1  
Document Fiscal Year Focus 2025  
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.25.1
CONDENSED CONSOLIDATED BALANCE SHEETS - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
Assets, Current [Abstract]    
Cash and cash equivalents $ 43,734 $ 90,594
Short-term investments 10,415 24,291
Accounts receivable, net of allowance for credit losses 63,676 73,649
Prepaid expenses and other current assets 22,800 17,445
Total current assets 140,625 205,979
Property and equipment, net 56,564 48,465
Operating lease right-of-use assets, net 3,661 4,029
Goodwill 96,645 14,953
Intangible assets, net 58,357 12,307
Deferred tax assets, net 215 43
Total other non-current assets 33,905 29,513
Total assets 389,972 315,289
Liabilities, Current [Abstract]    
Accounts payable 9,394 8,255
Accrued compensation and related benefits 10,902 16,855
Accrued and other current liabilities 13,037 8,752
Operating lease liabilities - current portion 1,591 1,675
Current 27,131 25,005
Current portion of long-term debt, net 2,240  
Total current liabilities 64,295 60,542
Long-term income taxes 2,932 2,915
Non-current portion of operating lease liabilities 3,154 3,504
Long-term bank loan - net of unamortized debt issuance and debt discount 66,416  
Other non-current liabilities 4,195 2,291
Total liabilities 140,992 69,252
Stockholders' Equity, Number of Shares, Par Value and Other Disclosure [Abstract]    
Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding
Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 51,170 and 50,717, respectively; shares outstanding 39,130 and 38,801, respectively 6 6
Additional paid-in capital 511,745 502,902
Treasury stock at cost, 12,040 and 11,916 shares, respectively (162,672) (159,352)
Accumulated deficit (97,020) (93,988)
Accumulated other comprehensive loss (3,079) (3,531)
Total stockholders' equity 248,980 246,037
Total liabilities and stockholders' equity $ 389,972 $ 315,289
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.25.1
CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals) - $ / shares
shares in Thousands
Mar. 31, 2025
Dec. 31, 2024
CONDENSED CONSOLIDATED BALANCE SHEETS    
Preferred stock, par value $ 0.00015 $ 0.00015
Preferred stock, shares authorized 5,000 5,000
Preferred stock, shares issued 0 0
Preferred stock, shares outstanding 0 0
Common stock, par value $ 0.00015 $ 0.00015
Common stock, shares authorized 70,000 70,000
Common stock, shares issued 51,170 50,717
Common stock, shares outstanding 39,130 38,801
Treasury stock, common shares 12,040 11,916
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.25.1
CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS) - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Revenues [Abstract]    
Total revenues $ 47,778 $ 41,310
Costs and Expenses [Abstract]    
Costs of revenues 12,955 13,529
Research and development 14,628 12,984
Selling, general, and administrative 23,372 16,498
Amortization of acquired intangible assets 378 259
Loss from operations (3,555) (1,960)
Interest expense (311)  
Other income (expense), net 870 1,692
Loss before income tax expense (2,996) (268)
Income tax expense (36) (125)
Net loss (3,032) (393)
Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent, Alternative [Abstract]    
Foreign currency translation adjustments, net of tax 462 (522)
Change in unrealized gain (loss) related to available-for-sale debt securities, net of tax (10) (20)
Total other comprehensive income (loss) 452 (542)
Comprehensive loss $ (2,580) $ (935)
Net income (loss) per share:    
Basic $ (0.08) $ (0.01)
Diluted $ (0.08) $ (0.01)
Weighted average common shares used to calculate net income (loss) per share:    
Basic 39,088 38,500
Diluted 39,088 38,500
Analytics    
Revenues [Abstract]    
Total revenues $ 42,471 $ 38,463
Integrated Yield Ramp    
Revenues [Abstract]    
Total revenues $ 5,307 $ 2,847
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.25.1
CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY - USD ($)
shares in Thousands, $ in Thousands
Common Stock
Additional Paid-in Capital
Treasury Stock
Accumulated Deficit
Accumulated Other Comprehensive Loss
Total
Beginning Balances at Dec. 31, 2023 $ 6 $ 473,295 $ (143,923) $ (98,045) $ (2,387) $ 228,946
Beginning Balances (shares) at Dec. 31, 2023 38,289          
Treasury Stock, Shares, Beginning Balance at Dec. 31, 2023     11,460      
Repurchase of common stock     $ (6,899)     (6,899)
Repurchase of common stock (shares) (202)   202      
Issuance of common stock in connection with employee stock purchase plan   1,916       1,916
Issuance of common stock in connection with employee stock purchase plan (shares) 74          
Issuance of common stock in connection with exercise of options   25       25
Issuance of common stock in connection with exercise of options (shares) 1          
Vesting of restricted stock units (shares) 231          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (3,794)     (3,794)
Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock awards (shares)     118      
Stock-based compensation expense   6,154       6,154
Comprehensive income (loss)       (393) (542) (935)
Treasury Stock, Shares, Ending Balance at Mar. 31, 2024     11,780      
Ending Balances at Mar. 31, 2024 $ 6 481,390 $ (154,616) (98,438) (2,929) 225,413
Ending Balances (shares) at Mar. 31, 2024 38,393          
Beginning Balances at Dec. 31, 2024 $ 6 502,902 $ (159,352) (93,988) (3,531) $ 246,037
Beginning Balances (shares) at Dec. 31, 2024 38,801          
Treasury Stock, Shares, Beginning Balance at Dec. 31, 2024     11,916     11,916
Issuance of common stock in connection with employee stock purchase plan   2,120       $ 2,120
Issuance of common stock in connection with employee stock purchase plan (shares) 90          
Issuance of common stock in connection with exercise of options   8       8
Issuance of common stock in connection with exercise of options (shares) 1          
Vesting of restricted stock units (shares) 238          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (3,320)     (3,320)
Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock awards (shares)     124      
Stock-based compensation expense   6,715       6,715
Comprehensive income (loss)       (3,032) 452 $ (2,580)
Treasury Stock, Shares, Ending Balance at Mar. 31, 2025     12,040     12,040
Ending Balances at Mar. 31, 2025 $ 6 $ 511,745 $ (162,672) $ (97,020) $ (3,079) $ 248,980
Ending Balances (shares) at Mar. 31, 2025 39,130          
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.25.1
CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Net Cash Provided by (Used in) Operating Activities [Abstract]    
Net income (loss) $ (3,032) $ (393)
Adjustments, Noncash Items, to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]    
Stock-based compensation expense 6,596 6,110
Depreciation and amortization 685 1,064
Amortization of acquired intangible assets 1,056 843
Amortization of costs capitalized to obtain revenue contracts 872 634
Net accretion of discounts on short-term investments (196) (485)
Deferred taxes (312) 9
Other (248) (74)
Increase (Decrease) in Other Operating Assets and Liabilities, Net [Abstract]    
Accounts receivable 13,033 (2,389)
Prepaid expenses and other current assets (5,123) (408)
Operating lease right-of-use assets 374 306
Other non-current assets (4,124) (5,864)
Accounts payable 84 1,801
Accrued compensation and related benefits (6,025) (5,214)
Accrued and other liabilities 3,936 213
Deferred revenues 1,504 2,304
Operating lease liabilities (440) (319)
Net cash provided by (used in) operating activities 8,640 (1,862)
Net Cash Provided by (Used in) Investing Activities [Abstract]    
Proceeds from maturities and sales of short-term investments 16,998 19,000
Purchases of short-term investments (2,938) (19,619)
Purchases of property and equipment (8,105) (2,023)
Prepayment for the purchase of property and equipment (98)  
Payment for business acquisition, net of cash acquired (129,718)  
Net cash used in investing activities (123,861) (2,642)
Net Cash Provided by (Used in) Financing Activities [Abstract]    
Proceeds from long-term debt, net of payment of debt financing costs 69,150  
Proceeds from exercise of stock options 8 25
Proceeds from employee stock purchase plan 2,120 1,916
Payments for taxes related to net share settlement of equity awards (3,320) (3,794)
Repurchases of common stock   (6,899)
Net cash provided by (used in) financing activities 67,958 (8,752)
Effect of exchange rate changes on cash and cash equivalents 403 (466)
Net change in cash and cash equivalents (46,860) (13,722)
Cash and cash equivalents at beginning of period 90,594 98,978
Cash and cash equivalents at end of period 43,734 85,256
Supplemental Cash Flow Information [Abstract]    
Cash paid during the year for income taxes 226 668
Cash paid for amounts included in the measurement of operating lease liabilities 481 405
Noncash Investing and Financing Items [Abstract]    
Prepayments for purchase of property and equipment transferred from prepaid assets to property and equipment 136  
Property and equipment received and accrued in accounts payable and accrued and other liabilities 6,094 745
Stock-based compensation capitalized as a part of the cost of property and equipment 119 45
Property and equipment transferred to sales-type lease   3,652
Operating lease liabilities arising from obtaining right-of-use assets   $ 142
Debt financing costs included in accounts payable $ 500  
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.25.1
BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES
3 Months Ended
Mar. 31, 2025
BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES:  
BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

1. BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

Basis of Presentation

The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual consolidated financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2024, filed with the SEC on February 27, 2025.

The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.

The condensed consolidated balance sheet as of December 31, 2024 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.

Use of Estimates

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, fair value of convertible note receivable, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, realization of deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

Reclassification of Prior Period Amount

Certain immaterial prior period amounts on the condensed consolidated balance sheet and condensed consolidated statements of cash flows have been reclassified to conform with current period presentation.

Recent Accounting Standards

In December 2023, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) No. 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” This ASU may be applied either prospectively or retrospectively. The Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.

In November 2024, the FASB issued ASU No. 2024-03, Income Statement – Reporting Comprehensive Income – Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses. This ASU requires the disaggregation of certain expenses in the notes to the consolidated financial statements, to provide enhanced transparency into the expense captions presented on the face of the income statement. This ASU is effective on a prospective basis for fiscal years beginning after December 15, 2026 and for interim periods beginning after December 15, 2027, with early adoption permitted. This ASU may be applied either prospectively or retrospectively. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.

XML 19 R8.htm IDEA: XBRL DOCUMENT v3.25.1
REVENUE
3 Months Ended
Mar. 31, 2025
REVENUE:  
REVENUE

2. REVENUE FROM CONTRACTS WITH CUSTOMERS

The Company derives revenue from two sources: Analytics and Integrated Yield Ramp.

The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.

Contracts with Multiple Performance Obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), software-as-a-service (“SaaS”) (which is primarily Exensio® products and includes secureWISE® products and services), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle® (“CV®”) systems that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-

contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a software product or service over a contractually determined period of time without the customer having to take possession of the software, e.g., cloud-based or via a network of secureWISE servers, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

The Company also leases some of its DFI system and CV system assets to some customers. The Company determines the existence of a lease when the customer controls the use of these identified assets for a period of time defined in the lease agreement and classifies such leases as operating leases or sales-type leases. A lease is classified as a sales-type lease if it meets certain criteria under ASC Topic 842, Leases; otherwise, it is classified as an operating lease. Operating lease revenue is recognized on a straight-line basis over the lease term. Sales-type lease revenue and corresponding lease receivables are recognized at lease commencement based on the present value of the future lease payments, and related interest income on lease receivable is recognized over the lease term and are recorded under Analytics revenue in the condensed consolidated statements of comprehensive income (loss). Payments under sales-type leases are discounted using the interest rate implicit in the lease. When the Company’s leases are embedded in contracts with customers that include non-lease performance obligations, the Company allocates consideration in the contract between lease and non-lease components based on their relative SSPs. Assets subject to operating leases remain in property and equipment and continue to be depreciated. Assets subject to sales-type leases are derecognized from property and equipment, net at lease commencement and a net investment in the lease asset is recognized in prepaid expenses and other current assets and other non-current assets in the condensed consolidated balance sheets.

The Company generates revenue from the sale of DFI system products. Revenue is recognized at a point in time when the Company’s performance obligations have been completed, and the customer has accepted the product.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed-fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.

Disaggregation of Revenue

The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.

The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue percentage by timing of revenue:

Three Months Ended March 31, 

 

    

2025

    

2024

Over time

61

%  

65

%

Point-in-time

 

39

%  

35

%

Total

 

100

%  

100

%

International revenues accounted for approximately 62% and 57% of the Company’s total revenues during the three months ended March 31, 2025 and 2024, respectively. See Note 9, Customer and Geographic Information.

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

For revenue under project-based contracts for fixed-price services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company is required to estimate the range of the SSPs for each performance obligation and in instances where the SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

Contract Balances

The Company performs its obligations under a contract with a customer primarily by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer.

The contract assets are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. The contract assets consist of the following (in thousands):

March 31, 

December 31, 

    

2025

2024

Current (included in Prepaid expenses and other current assets)

$

6,423

$

3,224

Non-current (included in Other non-current assets)

 

505

 

617

Total contract assets

$

6,928

$

3,841

The Company did not record any asset impairment charges related to contract assets for the periods presented.

Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the condensed consolidated balance sheets.

Deferred revenues were the following (in thousands):

March 31, 

December 31, 

    

2025

2024

Current

$

27,131

$

25,005

Non-current (included in Other non-current liabilities)

1,552

1,512

Total deferred revenues

$

28,683

$

26,517

Additional information related to deferred revenue were as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each year

$

10,025

$

11,444

As of March 31, 2025, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $226.7 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was an increase of $0.2 million and a decrease of $0.6 million during the three months ended March 31, 2025 and 2024, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.

Costs to Obtain or Fulfill a Contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred.

Total capitalized direct sales commission costs and related fees were the following (in thousands):

March 31, 

December 31, 

    

2025

2024

Current (included in Prepaid expenses and other current assets)

$

2,494

$

2,929

Non-current (included in Other non-current assets)

 

4,147

 

2,385

Total capitalized direct sales commission costs

$

6,641

$

5,314

Amortization of capitalized direct sales commission costs was the following (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Amortization of capitalized direct sales commission costs

$

872

$

634

There was no impairment loss in relation to the costs capitalized for the periods presented.

Practical Expedient

The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a material significant financing component during the three months ended March 31, 2025 and 2024.

XML 20 R9.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS
3 Months Ended
Mar. 31, 2025
BALANCE SHEET COMPONENTS  
BALANCE SHEET COMPONENTS

3. BALANCE SHEET COMPONENTS

Accounts Receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $27.0 million and $23.0 million as of March 31, 2025, and December 31, 2024, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $8.6 million and $9.0 million as of March 31, 2025, and December 31, 2024, respectively.

The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectibility of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance. The allowance for credit losses was $0.9 million as of March 31, 2025 and December 31, 2024.

Prepaid expenses and other current assets

Prepaid expenses and other current assets consist of the following (in thousands):

March 31, 

December 31, 

    

2025

    

2024

Prepaid expense

$

7,840

$

6,481

Contract assets

6,423

3,224

Costs capitalized to obtain revenue contracts

 

2,494

 

2,929

Net investments in sales-type leases - current portion

 

5,274

 

4,526

Income tax receivable

 

769

 

285

Total prepaid expenses and other current assets

$

22,800

$

17,445

Property and Equipment

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

March 31, 

December 31, 

    

2025

    

2024

Computer equipment

$

12,751

$

10,799

Software and capitalized software development cost

 

6,646

 

5,617

Furniture, fixtures, and equipment

 

2,553

 

2,529

Leasehold improvements

 

6,850

 

6,691

Laboratory and other equipment

 

6,009

 

5,734

Test equipment

 

21,681

 

22,680

Property and equipment in progress:

 

 

DFI system assets

40,231

34,935

CV system and other assets

 

7,508

 

6,431

Total property and equipment

 

104,229

 

95,416

Less: Accumulated depreciation and amortization

 

(47,665)

 

(46,951)

Total property and equipment, net

$

56,564

$

48,465

Test equipment mainly includes DFI™ system and CV® system assets at customer sites that are contributing to revenue. Property and equipment in progress represent the development or construction of property and equipment that have not yet been placed in service for the Company’s intended use and are not depreciated. 

Depreciation and amortization expense was $0.7 million and $1.1 million for the three months ended March 31, 2025 and 2024, respectively.

Goodwill and Intangible Assets, Net

The following table summarizes goodwill transactions for the periods presented (in thousands):

Three Months Ended March 31, 

2025

    

2024

Balance at beginning of the period

$

14,953

$

15,029

Addition

81,686

Foreign currency translation adjustment

6

(76)

Balance at end of the period

$

96,645

$

14,953

The Company completed the acquisition of SecureWise LLC (“SecureWise”) on March 7, 2025. See Note 14, “Business Combination” for additional information related to the goodwill and intangible assets added from this acquisition.

Intangible assets, net, consisted of the following (in thousands):

March 31, 2025

December 31, 2024

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired intangible assets:

Customer relationships

 

1 - 13

$

38,400

$

(8,080)

$

30,320

$

9,499

$

(7,866)

$

1,633

Developed technology

 

4 - 9

 

46,173

 

(25,326)

 

20,847

 

34,566

 

(24,601)

 

9,965

Tradename and trademarks

 

2 - 10

 

8,198

 

(1,216)

 

6,982

 

1,598

 

(1,120)

 

478

Patent

 

6 - 10

 

2,100

 

(1,892)

 

208

 

2,100

 

(1,869)

 

231

Noncompetition agreements

 

3

 

848

 

(848)

 

 

848

 

(848)

 

Total

$

95,719

$

(37,362)

$

58,357

$

48,611

$

(36,304)

$

12,307

The weighted average amortization period for acquired identifiable intangible assets was 9.1 years as of March 31, 2025. The amortization expense related to intangible assets were as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Amortization of acquired technology (included in costs of revenues)

$

678

$

584

Amortization of acquired intangible assets (presented separately under costs and expenses)

 

378

 

259

Total amortization of acquired intangible assets

$

1,056

$

843

The estimated future amortization of acquired identifiable intangible assets as follows (in thousands):

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

6,196

2026

 

8,092

2027

 

7,939

2028

 

7,634

2029

5,949

2030 and thereafter

 

22,547

Total future amortization expense

$

58,357

There was no impairment charges for goodwill and intangible assets during the three months ended March 31, 2025 and 2024.

Other Non-current Assets

Other non-current assets consisted of the following (in thousands):

March 31, 

December 31, 

    

2025

    

2024

Net investments in sales-type leases (3)

$

16,492

$

13,226

Unbilled accounts receivable (2)

8,587

8,983

Costs capitalized to obtain revenue contracts (1)

4,147

2,385

Contract assets (1)

505

617

Other

 

4,174

 

4,302

Total other non-current assets

$

33,905

$

29,513

(1)See Note 2, Revenue from Contracts with Customers.
(2)See Note 3, Balance Sheet Components – Accounts Receivable.
(3)The Company had net investments in sales-type leases for its DFI™ system and CV® system assets. The following table summarizes the components of the Company’s net investments in sales-type leases in the condensed consolidated balance sheets (in thousands):

March 31, 

December 31, 

    

2025

    

2024

Present value of lease receivables

$

13,784

$

13,238

Less: Contract liability

(3,235)

Net lease receivables

13,784

10,003

Unguaranteed residual assets

7,982

7,749

Total net investments in sales-type leases

$

21,766

$

17,752

Reported as:

Current (included in Prepaid expenses and other current assets)

$

5,274

$

4,526

Non-current (included in Other non-current assets)

16,492

13,226

Total net investments in sales-type leases

 

$

21,766

$

17,752

Maturities of leases payments under sales-type leases as of March 31, 2025, were as follows (in thousands):

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

5,715

2026

 

8,086

2027

 

1,724

2028

 

56

Total future sales-type lease payments

15,581

Less: Present value adjustment (a)

 

(1,797)

Present value of lease receivables

$

13,784

(a)Calculated using the rate implicit in the lease determined for each lease.

There was no allowance for credit losses on lease receivables as of March 31, 2025, and December 31, 2024. The Company’s ongoing risk management strategy for residual assets includes performing regular reviews of estimated residual values.

XML 21 R10.htm IDEA: XBRL DOCUMENT v3.25.1
LEASES
3 Months Ended
Mar. 31, 2025
LEASES:  
LEASES

4. LEASES

The Company leases administrative and sales offices and certain equipment under non-cancellable operating leases, which contain various renewal or termination options and, in some cases, require payment of common area costs, taxes and utilities. These operating leases expire at various dates through 2028. The Company had no leases that were classified as a financing lease as of March 31, 2025, and December 31, 2024.

Lease expense was comprised of the following (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Operating lease expense

$

414

$

381

Short-term lease and variable lease expense (1)

 

207

 

214

Total lease expense

$

621

$

595

(1)Leases with an initial term of 12 months or less are not recorded on the condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.

Supplemental condensed consolidated balance sheets information related to operating leases was as follows:

March 31, 

December 31, 

 

    

2025

    

2024

 

Weighted average remaining lease term under operating leases (in years)

3.1

3.3

Weighted average discount rate for operating lease liabilities

 

6.0

%  

6.0

%

Maturities of operating lease liabilities as of March 31, 2025 were as follows (in thousands):

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

1,337

2026

 

1,548

2027

 

1,485

2028

 

847

Total future minimum lease payments

 

5,217

Less: Interest (1)

 

 

(472)

Present value of future minimum lease payments under operating lease liabilities

$

4,745

Reported as of March 31, 2025:

Operating lease liabilities – current

$

1,591

Operating lease liabilities – non-current

3,154

Total operating lease liabilities

$

4,745

(1)Calculated using incremental borrowing interest rate for each lease.

As of March 31, 2025, the Company had additional undiscounted future minimum payments of $0.4 million relating to an operating lease for an office space that had been signed but had not yet commenced. This operating lease will commence during the second quarter of 2025 and will have a lease term of approximately 6.2 years.

XML 22 R11.htm IDEA: XBRL DOCUMENT v3.25.1
STOCKHOLDERS' EQUITY
3 Months Ended
Mar. 31, 2025
STOCKHOLDERS EQUITY:  
STOCKHOLDERS' EQUITY

5. STOCKHOLDERS’ EQUITY

Stock Repurchase Program

On April 11, 2022, the Board of Directors adopted a stock repurchase program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years from the adoption date. During the three months ended March 31, 2024, 201,561 shares were repurchased by the Company under the 2022 Program at an average price of $34.23 per share for an aggregate total price of $6.9 million. In total, the Company repurchased 937,501 shares under the 2022 Program at an average price of $25.96 per share for an aggregate total price of $24.3 million. The 2022 Program expired on April 11, 2024.

On April 15, 2024, the Board of Directors adopted a new stock repurchase program (the “2024 Program”) to repurchase up to $40.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years from the adoption date. The Company has not repurchased any shares under the 2024 Program as of March 31, 2025.

XML 23 R12.htm IDEA: XBRL DOCUMENT v3.25.1
EMPLOYEE BENEFIT PLANS
3 Months Ended
Mar. 31, 2025
EMPLOYEE BENEFIT PLANS:  
EMPLOYEE BENEFIT PLANS

6. EMPLOYEE BENEFIT PLANS

Employee Stock Purchase Plan

On June 15, 2021, the Company’s stockholders initially approved the 2021 Employee Stock Purchase Plan, which has been amended and restated by the Board of Directors and approved by the Company’s stockholders since then (as amended through the date of this report, the “2021 Purchase Plan”).

Under the 2021 Purchase Plan, eligible employees can contribute up to 10% of their compensation, as defined in the 2021 Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2021 Purchase Plan commenced on August 1, 2021, and provided for twenty-four-month offering periods with four six-month purchase periods in each offering period.

The Company estimated the fair value of purchase rights granted under the 2021 Purchase Plan during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:

Three Months Ended March 31, 

2025

    

2024

Expected life (in years)

1.25

 

1.25

Volatility

40.22

%  

41.40

%  

Risk-free interest rate

4.22

%  

4.62

%  

Expected dividend

 

Weighted average fair value of purchase rights granted during the year

$

9.36

$

10.89

During the three months ended March 31, 2025 and 2024, a total of 89,508 shares and 73,854 shares, respectively, were issued under the 2021 Purchase Plan, at a weighted average purchase price of $23.68 per share and $25.94 per share, respectively. As of March 31, 2025, unrecognized compensation cost related to the 2021 Purchase Plan was $6.6 million, which is expected to be recognized over a weighted average period of 1.8 years.

As of March 31, 2025, 548,973 shares were available for future issuance under the 2021 Purchase Plan.

Subsequently, on April 28, 2025, the Company’s Board of Directors approved an amendment and restatement of the 2021 Purchase Plan, which is subject to stockholder approval at the 2025 annual meeting of stockholders, to, among other things, increase the number of shares reserved for issuance for an additional 0.2 million shares to a total of 1.4 million shares.

Stock Incentive Plan

On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated by the Board of Directors and approved by the Company’s stockholders a number of times since then (as amended through the date of this report, the “2011 Plan”). Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under the 2011 Plan is 14.6 million shares, plus up to 3.5 million shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.

As of March 31, 2025, 15.1 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.5 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired, or repurchased by the Company after the adoption of the 2011 Plan through March 31, 2025. As of March 31, 2025, there were no outstanding awards that had been granted outside of the 2011 Plan.

Subsequently, on April 28, 2025, the Company’s Board of Directors approved an amendment and restatement of the 2011 Plan, which is subject to stockholder approval at the 2025 annual meeting of stockholders, to, among other things, increase the number of shares reserved for issuance for an additional 0.8 million shares to a total of 15.9 million shares.

The Company estimated the fair value of share-based awards granted under the 2011 Stock Plan during the period using the Black-Scholes-Merton option-pricing model. There were no stock options granted during the three months ended March 31, 2025 and 2024.

Stock-Based Compensation

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. Stock-based compensation expense before taxes related to the Company’s stock plan and employee stock purchase plan was allocated as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Costs of revenues

$

1,342

$

1,200

Research and development

 

2,419

 

2,202

Selling, general, and administrative

 

2,835

 

2,708

Total stock-based compensation expense

$

6,596

$

6,110

Stock Award Activities

Restricted stock unit (“RSU”)

Nonvested RSU activities were as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, January 1, 2025

 

1,885

$

33.14

Granted

 

54

24.90

Vested

 

(362)

29.52

Forfeited

 

(8)

30.45

Nonvested, March 31, 2025

 

1,569

$

33.70

The weighted average grant date fair values of RSUs granted during the three months ended March 31, 2025 and 2024 were $24.90 and $33.17, respectively.

The total fair value of RSUs vested were as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Fair value of restricted stock units vested

 

$

9,712

 

$

11,225

As of March 31, 2025, there was $43.7 million of total unrecognized compensation cost related RSUs which is expected to be recognized over a weighted average period of 2.4 years. RSUs do not have rights to dividends prior to vesting.

Stock Options

As of March 31, 2025, the outstanding stock options totaled 26,679 shares. Total fair value of shares vested during the three months ended March 31, 2025 was immaterial. As of March 31, 2025, there was no remaining unrecognized compensation cost related to unvested stock options.

XML 24 R13.htm IDEA: XBRL DOCUMENT v3.25.1
INCOME TAXES
3 Months Ended
Mar. 31, 2025
INCOME TAXES:  
INCOME TAXES

7. INCOME TAXES

Income tax expense decreased by $0.1 million for the three months ended March 31, 2025 to $36 thousand as compared to $0.1 million for the three months ended March 31, 2024. The Company’s effective tax rate was (1.2%) for the three months ended March 31, 2025 compared to (47%) for the three months ended March 31, 2024. The increase was primarily due to changes in the foreign, federal and state taxes and year-to-date recognition of worldwide pre-tax income in relation to their forecasted amounts for full years. The Company’s provision for income taxes for the three months ended March 31, 2025, was primarily attributable to federal, state and foreign taxes.

The Company’s total amount of unrecognized tax benefits, excluding interest, as of March 31, 2025, was $16.9 million, of which $2.3 million, if recognized, would affect the Company’s effective tax rate. The Company’s total amount of unrecognized tax benefits, excluding interest, as of December 31, 2024 was $16.6 million, of which $2.1 million, if recognized, would affect the Company’s effective tax rate. As of March 31, 2025, the Company has recorded unrecognized tax benefits of $2.9 million, including interest of $0.7 million, as long-term taxes payable in the condensed consolidated balance sheets. The remaining $14.7 million has been recorded within the Company’s DTAs, which is subject to a full valuation allowance.

The valuation allowance was approximately $67.9 million as of March 31, 2025, and December 31, 2024, which was related to U.S. net federal and state DTAs. The worldwide net DTAs balance were immaterial as of March 31, 2025 and December 31, 2024.

The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal and various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the tax years ended 2021 to present and 2020 to present, respectively. In addition, all of the net operating loss and research and development credit carryforwards that may be utilized in future years may be subject to federal and state examination. The Company is not currently under known income tax examinations in the U.S. or any other of its major foreign subsidiaries’ jurisdictions.

XML 25 R14.htm IDEA: XBRL DOCUMENT v3.25.1
NET LOSS PER SHARE
3 Months Ended
Mar. 31, 2025
NET LOSS PER SHARE:  
NET LOSS PER SHARE

8. NET LOSS PER SHARE

Basic net loss per share is computed by dividing net loss by the weighted average number of common shares outstanding for the period (excluding outstanding stock options, nonvested restricted stock units and shares subject to repurchase). Diluted net loss per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net loss per share (in thousands except per share amount):

Three Months Ended March 31, 

    

2025

    

2024

Numerator:

 

  

 

  

Net loss

$

(3,032)

$

(393)

Denominator:

 

  

 

  

Basic weighted average common shares outstanding

 

39,088

 

38,500

Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan

 

 

Diluted weighted average common shares outstanding

 

39,088

 

38,500

Net loss per share:

Basic

$

(0.08)

$

(0.01)

Diluted

$

(0.08)

$

(0.01)

For the three months ended March 31, 2025 and 2024, because the Company was in a loss position, diluted net loss per share is the same as basic net loss per share as the inclusion of the potential common shares would have been anti-dilutive.

The following table summarizes the potential shares of common stock that were not included in the diluted net loss per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Non-vested restricted stock units

 

1,569

37

Outstanding stock options

 

27

1,665

Shares issuable under employee stock purchase plan

 

69

24

Total

 

1,665

 

1,726

XML 26 R15.htm IDEA: XBRL DOCUMENT v3.25.1
CUSTOMER AND GEOGRAPHIC INFORMATION
3 Months Ended
Mar. 31, 2025
CUSTOMER AND GEOGRAPHIC INFORMATION:  
CUSTOMER AND GEOGRAPHIC INFORMATION

9. CUSTOMER AND GEOGRAPHIC INFORMATION

Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.

The Company’s chief operating decision maker (“CODM”), the Chief Executive Officer, reviews discrete financial information including total revenues, gross profit, and net income (loss) presented on a consolidated basis for purposes of regularly making operating decisions about allocation of resources and financial performance assessment. Further, the CODM reviews and utilizes functional expenses (costs of revenues, research and development, and selling, general and administrative) at the consolidated level to manage the Company’s operations. Other segment items included in the condensed consolidated net income (loss) are amortization of acquired intangible assets, interest expense, other income (expense), net and income tax expense, which are reflected in the condensed consolidated statements of comprehensive income (loss). Accordingly, the Company considers itself as one operating and reporting segment because it does not distinguish between markets, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.

The following table presents segment total revenues, costs of revenues, gross profit, and net loss for the periods presented (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Total revenues

 

$

47,778

 

$

41,310

Costs of revenues

$

12,955

 

$

13,529

Gross profit

$

34,823

 

$

27,781

Net loss

$

(3,032)

$

(393)

Revenues from an individual customer that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Three Months Ended March 31, 

Customer

    

2025

    

2024

 

A

15

%  

22

%

B

19

%  

19

%

C

10

%  

*

* represents less than 10%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

March 31, 

December 31, 

Customer

    

2025

2024

 

A

 

23

%  

21

%

B

*

%

13

%

C

17

%

11

%

E

*

%  

12

%

Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (amounts in thousands):

Three Months Ended March 31, 

2025

 

2024

 

Percentage

 

Percentage

 

    

Revenues

    

of Revenues

 

Revenues

    

of Revenues

 

United States

$

18,228

 

38

%

$

17,733

 

43

%

Japan

11,736

25

11,288

27

China

 

8,043

 

17

 

4,853

 

12

Rest of the world

 

9,771

 

20

 

7,436

 

18

Total revenues

$

47,778

 

100

%

$

41,310

 

100

%

Long-lived assets, net by geographic area are as follows (in thousands):

March 31, 

December 31, 

    

2025

2024

United States (1)

$

66,866

$

58,782

Rest of the world

 

1,341

 

1,461

Total long-lived assets, net

$

68,207

$

60,243

(1) Includes assets deployed at customer sites which could be outside the U.S.

XML 27 R16.htm IDEA: XBRL DOCUMENT v3.25.1
FAIR VALUE MEASUREMENTS
3 Months Ended
Mar. 31, 2025
FAIR VALUE MEASUREMENTS:  
FAIR VALUE MEASUREMENTS

10. FAIR VALUE MEASUREMENTS

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

 

 

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

 

 

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

The following table represents the Company’s assets measured at fair value on a recurring basis and the basis for those measurements (in thousands):

Fair Value Measurements Using

Balance Sheet

March 31, 

Assets

Classification

2025

    

(Level 1)

    

(Level 2)

    

(Level 3)

Money market mutual funds

Cash equivalents

$

1,813

$

1,813

$

$

Available-for-sale debt securities:

 

  

 

  

 

  

 

  

U.S. Government securities (1)

Short-term investments

 

10,415

 

10,415

 

 

Convertible note receivable (2)

Other non-current assets

2,062

2,062

Total

$

14,290

$

12,228

$

$

2,062

Fair Value Measurements Using

Balance Sheet

December 31, 

Assets

Classification

    

2024

    

(Level 1)

    

(Level 2)

    

(Level 3)

Money market mutual funds

Cash equivalents

$

66,213

$

66,213

$

$

Available-for-sale debt securities:

  

 

  

 

  

 

  

U.S. Government securities (1)

Short-term investments

24,291

 

24,291

 

 

Convertible note receivable (2)

Other non-current assets

2,038

2,038

Total

$

92,542

$

90,504

$

$

2,038

(1)The amortized cost of the Company’s investments in U.S. Government securities approximated their fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities in the periods presented. For the three months ended March 31, 2025 and 2024, there were no material realized or unrealized gains or losses, either individually or in the aggregate.
(2)In August 2024, the Company purchased a $2.0 million non-marketable convertible promissory note from an unrelated third party (the “convertible note”). The convertible note bears a 5% interest rate annually and will mature in August 2026.
XML 28 R17.htm IDEA: XBRL DOCUMENT v3.25.1
COMMITMENTS AND CONTINGENCIES
3 Months Ended
Mar. 31, 2025
COMMITMENTS AND CONTINGENCIES:  
COMMITMENTS AND CONTINGENCIES

11. COMMITMENTS AND CONTINGENCIES

Strategic Partnership with Advantest — See Note 12, Strategic Partnership Agreement with Advantest and Related Party Transactions, for the discussion about the Company’s commitments under the strategic partnership with Advantest.

Operating Leases — Refer to Note 4, Leases, for the discussion about the Company’s lease commitments.

Indemnifications — The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following initial delivery of its products. The Company also indemnifies certain customers from third-party claims of intellectual property infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.

The Company’s standard product warranty terms for the sale of its DFI system product generally include post-sales support and repairs or replacement of a product at no additional charge for a contractually agreed period of time. The standard warranty reserve is based on estimated total expected costs to fulfill our warranty obligation based on best available information as of the reporting date. The standard warranty reserve was immaterial as of March 31, 2025 and December 31, 2024.

Purchase Obligations — The Company has purchase obligations with certain suppliers for the purchase of goods and services entered into in the ordinary course of business. As of March 31, 2025, total outstanding purchase obligations were $37.6 million, the majority of which is due within the next 12 months.

Indemnification of Officers and Directors — As permitted by the Delaware General Corporation Law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors.

In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware General Corporation Law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.

Legal Proceedings — From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of March 31, 2025, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued. From time to time, the Company may enter into contingent fee arrangements with external legal firms that may represent the Company in legal proceedings related to disputes. Contingent legal fees are accrued by the Company when they are probable and reasonably estimable.  

On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center (the “Tribunal”) against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August 2023, and the parties submitted answers to the Tribunal’s final questions in August 2024. The Company is awaiting the Tribunal’s decision on a judgment.

XML 29 R18.htm IDEA: XBRL DOCUMENT v3.25.1
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS
3 Months Ended
Mar. 31, 2025
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS:  
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

12. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

In July 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”), which includes: (i) a Securities Purchase Agreement wherein the Company issued and sold to Advantest America, Inc., an aggregate of 3,306,924 shares of its common stock, for aggregate gross proceeds of $65.2 million; (ii) a significant agreement for its assistance in development of cloud-based applications for Advantest tools that leverages our Exensio analytics software; (iii) a commercial agreement providing for the license to third parties of solutions that result from the development work that combine Advantest’s testing applications and our Exensio platform; and (iv) a 5-year cloud-based subscription for Exensio analytics software and related services.

Analytics revenue recognized from Advantest was $3.6 million and $2.9 million during the three months ended March 31, 2025 and 2024, respectively. Accounts receivable from Advantest were not material as of March 31, 2025 and December 31, 2024. Deferred revenue amounted to $5.8 million and $8.3 million as of March 31,2025, and December 31, 2024, respectively.

XML 30 R19.htm IDEA: XBRL DOCUMENT v3.25.1
DEBT
3 Months Ended
Mar. 31, 2025
DEBT:  
DEBT

13. DEBT

Debt as of March 31, 2025 consisted of (in thousands):

March 31, 

2025

Term loan

$

25,000

Revolving credit facility

45,000

Total debt (principal amount)

70,000

Unamortized debt discount and financing costs

(1,344)

Total debt, net of unamortized debt discount and financing costs

$

68,656

Reported as:

Current portion of long-term debt, net

$

2,240

Long-term debt, net

66,416

Total debt, net

$

68,656

On March 7, 2025, the Company entered into a Credit Agreement (the “Credit Agreement”) with the lenders who are party to the Credit Agreement and the lenders who may become a party to the Credit Agreement pursuant to the terms thereof (the “Lenders”) and Wells Fargo Bank, National Association, as administrative agent to the Lenders (the “Agent”).

The Credit Agreement provides for (a) a revolving credit facility in an aggregate principal amount of $45.0 million (the “Revolving Credit Facility”) and (b) a term loan facility in an aggregate principal amount of $25.0 million (the “Term Loan” and together with the Revolving Credit Facility, the “Credit Facilities”).

Borrowings under the Credit Facilities will accrue interest at rates equal, at the Company’s election, to (i) the alternate base rate, which is defined as the highest of (a) the federal funds effective rate in effect from time to time plus 0.50%, (b) the prime commercial lending rate in effect from time to time, and (c) the daily simple secured overnight financing rate (“SOFR”) plus 1.00% or (ii) SOFR, plus, in each case, the applicable margin. The applicable margin for the Revolving Credit Facility borrowings bearing interest at the alternate base rate ranges from 1.00% to 1.75%, and the applicable margin for Revolving Credit Facility borrowings bearing interest based on the SOFR ranges from 2.00% to 2.75%, in each case, based on the Company’s consolidated total net leverage ratio as of the most recently ended fiscal quarter. The applicable margin for Term Loan borrowings bearing interest at the alternate base rate ranges from 1.00% to 1.75%, and the applicable margin for Term Loan borrowings bearing interest based on the SOFR ranges from 2.00% to 2.75%, in each case, based on the Company’s consolidated total net leverage ratio as of the most recently ended fiscal quarter. The Company will pay an annual commitment fee during the term of the Credit Agreement at a rate per annum equal to 0.50% for any undrawn portion of the Revolving Credit Facility.

The Credit Agreement contains customary representations and warranties, as well as customary affirmative and negative covenants. Negative covenants include, among others, restrictions on the incurrence of debt, the incurrence of liens, the making of investments and distributions, dividends and stock buy-backs. In addition, the Credit Agreement requires that the Company maintain a consolidated total net leverage ratio of not greater than 3.00 to 1.00, and a consolidated fixed charge coverage ratio of not less than 1.25 to 1.00. As of March 31, 2025, the Company was in compliance with the covenants contained in the Credit Agreement.

The Credit Agreement contains customary events of default. Upon the occurrence and during the continuance of an event of default, the Agent may declare the outstanding advances and all other obligations under the Credit Agreement immediately due and payable.

The obligations under the Credit Agreement are guaranteed by all present and future material domestic subsidiaries of the Company (collectively with the Company referred to herein as the “Credit Parties”), subject to customary exceptions, and are secured by the equity interests of the Credit Parties (other than the Company) and substantially all of the personal property owned by the Credit Parties, including 65% of the equity interests of certain foreign subsidiaries owned by the Credit Parties.

The Company used the amounts borrowed under the Credit Facilities to finance, in part, the purchase price paid for the acquisition of SecureWise (see Note 14, Business Combination).

Future Payments on Total Debt

As of March 31, 2025, the estimated future principal payments of the total long-term debt were as follows (in thousands):

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

1,875

2026

 

2,500

2027

 

2,500

2028

 

2,500

2029

2,500

2030

58,125

Total future principal payments of long-term debt

 

$

70,000

XML 31 R20.htm IDEA: XBRL DOCUMENT v3.25.1
BUSINESS COMBINATION
3 Months Ended
Mar. 31, 2025
BUSINESS COMBINATION:  
BUSINESS COMBINATION

14. BUSINESS COMBINATION

On February 19, 2025, the Company entered into an Equity Purchase Agreement (the “Purchase Agreement”) with Telit IOT Solutions Inc., a Delaware corporation (the “Seller”), and SecureWise, pursuant to which the Company agreed to acquire the Seller’s SecureWise business (the “Business”) by means of a purchase of all of the outstanding equity interests of SecureWise held by the Seller (the “Transaction”).

On March 7, 2025, the Company completed the acquisition of the Business from the Seller pursuant to the Purchase Agreement for a cash purchase price of $130.0 million, subject to customary adjustments in respect of indebtedness, transaction expenses, cash and working capital of the Business, in each case, in accordance with the terms of the Purchase Agreement. The Company financed the Transaction using a combination of cash on hand and borrowings under the Credit Facilities.

The Company expects the Transaction to accelerate equipment makers’ ability to derive value from equipment data by enabling them to leverage the Company’s Exensio analytics software and to expand the capability of the Company’s secure data exchange (“DEX”) outsourced semiconductor assembly and test (“OSAT”) network by allowing equipment makers, fab operators, and fabless companies to collaborate to optimize chip manufacturing and test.

The Company accounted for the Transaction as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the acquisition date. The Company allocated the purchase price to identifiable assets acquired based on their estimated fair values. The fair value of the consideration transferred and the assets acquired and liabilities assumed was determined by the Company and in doing so management engaged a third-party valuation specialist to assist with the measurement of the fair value of identifiable intangible assets. The estimated fair value of the identifiable assets acquired and liabilities assumed was based on management’s best estimates. The fair value of the customer relationships was determined using the multi-period excess earnings income approach or cost approach. The fair value of trade names and developed technology was determined using the relief-from-royalty method. The fair value of acquired technology was determined using the cost approach. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. The goodwill associated with the acquisition is deductible for tax purposes.

The Company expensed all transaction costs in the period in which they were incurred. The total non-recurring legal, finance, integration and other costs related to the acquisition of SecureWise amounted to $5.3 million, of which $4.4 million was recorded in the first quarter of 2025 and $0.9 million in the fourth quarter of 2024.

The preliminary allocation of the purchase price for the acquisition of SecureWise, as of the date of the completion of the Transaction, is as follows (in thousands, except amortization period):

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Fair value estimates of assets acquired and liabilities assumed

 

  

 

  

Cash

$

1,049

 

  

Accounts receivable

3,038

Prepaid and other assets

1,049

Fixed assets

1,592

Fair value of intangible assets:

 

 

  

Trademark

6,600

5

Customer relationships

 

28,900

 

13

Developed technology

 

11,600

 

7

Goodwill

 

81,686

 

N/A

Accounts payable and other current liabilities

(4,747)

 

  

Total purchase price allocation

$

130,767

 

  

The estimated fair value of the accounts receivable acquired approximates the contractual value of $3.0 million.

The Company is still finalizing the allocation of the purchase price to the individual assets acquired. Accordingly, these preliminary estimates are subject to change during the measurement period, which is the period subsequent to the acquisition date during which the acquirer may adjust the provisional amounts recognized for a business combination, not to exceed one year from the acquisition date. The final purchase price allocation, which may include changes in the allocations within intangible assets and between intangible assets and goodwill, as well as changes in the estimated useful lives of the intangible assets, will be determined when the Company has completed the detailed review of underlying inputs and assumptions used in its preliminary purchase price allocation.

Pro forma information reflecting the impact of the Transaction has not been presented as the Transaction was not material to the Company’s financial results.

XML 32 R21.htm IDEA: XBRL DOCUMENT v3.25.1
Pay vs Performance Disclosure - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Pay vs Performance Disclosure    
Net Income (Loss) $ (3,032) $ (393)
XML 33 R22.htm IDEA: XBRL DOCUMENT v3.25.1
Insider Trading Arrangements
3 Months Ended
Mar. 31, 2025
Trading Arrangements, by Individual  
Rule 10b5-1 Arrangement Adopted false
Non-Rule 10b5-1 Arrangement Adopted false
Rule 10b5-1 Arrangement Terminated false
Non-Rule 10b5-1 Arrangement Terminated false
XML 34 R23.htm IDEA: XBRL DOCUMENT v3.25.1
SIGNIFICANT ACCOUNTING POLICIES (Policies)
3 Months Ended
Mar. 31, 2025
BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES:  
Basis of Presentation, Policy

Basis of Presentation

The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual consolidated financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2024, filed with the SEC on February 27, 2025.

The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.

The condensed consolidated balance sheet as of December 31, 2024 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.

Use of Estimates, Policy

Use of Estimates

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, fair value of convertible note receivable, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, realization of deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

Reclassification of Prior Period Amount, Policy

Reclassification of Prior Period Amount

Certain immaterial prior period amounts on the condensed consolidated balance sheet and condensed consolidated statements of cash flows have been reclassified to conform with current period presentation.

Accounts Receivable, Policy

Accounts Receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $27.0 million and $23.0 million as of March 31, 2025, and December 31, 2024, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $8.6 million and $9.0 million as of March 31, 2025, and December 31, 2024, respectively.

Fair Value Measurements, Policy

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

 

 

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

 

 

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

Stock-Based Compensation, Policy

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. Stock-based compensation expense before taxes related to the Company’s stock plan and employee stock purchase plan was allocated as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Costs of revenues

$

1,342

$

1,200

Research and development

 

2,419

 

2,202

Selling, general, and administrative

 

2,835

 

2,708

Total stock-based compensation expense

$

6,596

$

6,110

Net Income (Loss) Per Share, Policy Basic net loss per share is computed by dividing net loss by the weighted average number of common shares outstanding for the period (excluding outstanding stock options, nonvested restricted stock units and shares subject to repurchase). Diluted net loss per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive.
Recent Accounting Standards, Policy

Recent Accounting Standards

In December 2023, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) No. 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” This ASU may be applied either prospectively or retrospectively. The Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.

In November 2024, the FASB issued ASU No. 2024-03, Income Statement – Reporting Comprehensive Income – Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses. This ASU requires the disaggregation of certain expenses in the notes to the consolidated financial statements, to provide enhanced transparency into the expense captions presented on the face of the income statement. This ASU is effective on a prospective basis for fiscal years beginning after December 15, 2026 and for interim periods beginning after December 15, 2027, with early adoption permitted. This ASU may be applied either prospectively or retrospectively. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.

Revenue Recognition, Policy

The Company derives revenue from two sources: Analytics and Integrated Yield Ramp.

The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.

Contracts with Multiple Performance Obligations, Policy

Contracts with Multiple Performance Obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

Analytics Revenue, Policy

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), software-as-a-service (“SaaS”) (which is primarily Exensio® products and includes secureWISE® products and services), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle® (“CV®”) systems that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-

contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a software product or service over a contractually determined period of time without the customer having to take possession of the software, e.g., cloud-based or via a network of secureWISE servers, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

The Company also leases some of its DFI system and CV system assets to some customers. The Company determines the existence of a lease when the customer controls the use of these identified assets for a period of time defined in the lease agreement and classifies such leases as operating leases or sales-type leases. A lease is classified as a sales-type lease if it meets certain criteria under ASC Topic 842, Leases; otherwise, it is classified as an operating lease. Operating lease revenue is recognized on a straight-line basis over the lease term. Sales-type lease revenue and corresponding lease receivables are recognized at lease commencement based on the present value of the future lease payments, and related interest income on lease receivable is recognized over the lease term and are recorded under Analytics revenue in the condensed consolidated statements of comprehensive income (loss). Payments under sales-type leases are discounted using the interest rate implicit in the lease. When the Company’s leases are embedded in contracts with customers that include non-lease performance obligations, the Company allocates consideration in the contract between lease and non-lease components based on their relative SSPs. Assets subject to operating leases remain in property and equipment and continue to be depreciated. Assets subject to sales-type leases are derecognized from property and equipment, net at lease commencement and a net investment in the lease asset is recognized in prepaid expenses and other current assets and other non-current assets in the condensed consolidated balance sheets.

The Company generates revenue from the sale of DFI system products. Revenue is recognized at a point in time when the Company’s performance obligations have been completed, and the customer has accepted the product.

Integrated Yield Ramp Revenue, Policy

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed-fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.

Disaggregation of Revenue, Policy

Disaggregation of Revenue

The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.

The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue percentage by timing of revenue:

Three Months Ended March 31, 

 

    

2025

    

2024

Over time

61

%  

65

%

Point-in-time

 

39

%  

35

%

Total

 

100

%  

100

%

International revenues accounted for approximately 62% and 57% of the Company’s total revenues during the three months ended March 31, 2025 and 2024, respectively. See Note 9, Customer and Geographic Information.

Significant Judgements, Policy

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

For revenue under project-based contracts for fixed-price services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company is required to estimate the range of the SSPs for each performance obligation and in instances where the SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

Contract Balances, Policy

Contract Balances

The Company performs its obligations under a contract with a customer primarily by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer.

The contract assets are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. The contract assets consist of the following (in thousands):

March 31, 

December 31, 

    

2025

2024

Current (included in Prepaid expenses and other current assets)

$

6,423

$

3,224

Non-current (included in Other non-current assets)

 

505

 

617

Total contract assets

$

6,928

$

3,841

The Company did not record any asset impairment charges related to contract assets for the periods presented.

Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the condensed consolidated balance sheets.

Deferred revenues were the following (in thousands):

March 31, 

December 31, 

    

2025

2024

Current

$

27,131

$

25,005

Non-current (included in Other non-current liabilities)

1,552

1,512

Total deferred revenues

$

28,683

$

26,517

Additional information related to deferred revenue were as follows (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each year

$

10,025

$

11,444

As of March 31, 2025, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $226.7 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was an increase of $0.2 million and a decrease of $0.6 million during the three months ended March 31, 2025 and 2024, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.

Costs to Obtain of Fulfill a Contract, Policy

Costs to Obtain or Fulfill a Contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred.

Total capitalized direct sales commission costs and related fees were the following (in thousands):

March 31, 

December 31, 

    

2025

2024

Current (included in Prepaid expenses and other current assets)

$

2,494

$

2,929

Non-current (included in Other non-current assets)

 

4,147

 

2,385

Total capitalized direct sales commission costs

$

6,641

$

5,314

Amortization of capitalized direct sales commission costs was the following (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Amortization of capitalized direct sales commission costs

$

872

$

634

There was no impairment loss in relation to the costs capitalized for the periods presented.

Practical Expedients, Policy

Practical Expedient

The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a material significant financing component during the three months ended March 31, 2025 and 2024.

XML 35 R24.htm IDEA: XBRL DOCUMENT v3.25.1
REVENUE (Tables)
3 Months Ended
Mar. 31, 2025
REVENUE:  
Summary of Contract Revenues Disaggregated by Timing of Revenue

Three Months Ended March 31, 

 

    

2025

    

2024

Over time

61

%  

65

%

Point-in-time

 

39

%  

35

%

Total

 

100

%  

100

%

Summary of Net Contract Assets (In Thousands)

March 31, 

December 31, 

    

2025

2024

Current (included in Prepaid expenses and other current assets)

$

6,423

$

3,224

Non-current (included in Other non-current assets)

 

505

 

617

Total contract assets

$

6,928

$

3,841

Summary of Deferred Revenues (In Thousands)

March 31, 

December 31, 

    

2025

2024

Current

$

27,131

$

25,005

Non-current (included in Other non-current liabilities)

1,552

1,512

Total deferred revenues

$

28,683

$

26,517

Schedule of Recognized Revenue Included in Deferred Revenues and Billings in Excess of Recognized Revenues at the Beginning of Each Reporting Period (in Thousands):

Three Months Ended March 31, 

    

2025

    

2024

Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each year

$

10,025

$

11,444

Summary of Capitalized Direct Sales Commission Costs and Amounts Amortized During Period (In Thousands)

March 31, 

December 31, 

    

2025

2024

Current (included in Prepaid expenses and other current assets)

$

2,494

$

2,929

Non-current (included in Other non-current assets)

 

4,147

 

2,385

Total capitalized direct sales commission costs

$

6,641

$

5,314

Amortization of capitalized direct sales commission costs was the following (in thousands):

Three Months Ended March 31, 

    

2025

    

2024

Amortization of capitalized direct sales commission costs

$

872

$

634

XML 36 R25.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS (Tables)
3 Months Ended
Mar. 31, 2025
BALANCE SHEET COMPONENTS  
Summary of Prepaid Expenses and Other Current Assets (In Thousands)

March 31, 

December 31, 

    

2025

    

2024

Prepaid expense

$

7,840

$

6,481

Contract assets

6,423

3,224

Costs capitalized to obtain revenue contracts

 

2,494

 

2,929

Net investments in sales-type leases - current portion

 

5,274

 

4,526

Income tax receivable

 

769

 

285

Total prepaid expenses and other current assets

$

22,800

$

17,445

Summary of Property and Equipment (In Thousands)

March 31, 

December 31, 

    

2025

    

2024

Computer equipment

$

12,751

$

10,799

Software and capitalized software development cost

 

6,646

 

5,617

Furniture, fixtures, and equipment

 

2,553

 

2,529

Leasehold improvements

 

6,850

 

6,691

Laboratory and other equipment

 

6,009

 

5,734

Test equipment

 

21,681

 

22,680

Property and equipment in progress:

 

 

DFI system assets

40,231

34,935

CV system and other assets

 

7,508

 

6,431

Total property and equipment

 

104,229

 

95,416

Less: Accumulated depreciation and amortization

 

(47,665)

 

(46,951)

Total property and equipment, net

$

56,564

$

48,465

Summary of Goodwill and Intangible Assets, Net (In Thousands)

Three Months Ended March 31, 

2025

    

2024

Balance at beginning of the period

$

14,953

$

15,029

Addition

81,686

Foreign currency translation adjustment

6

(76)

Balance at end of the period

$

96,645

$

14,953

Summary of Intangible Assets (In Thousands)

March 31, 2025

December 31, 2024

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired intangible assets:

Customer relationships

 

1 - 13

$

38,400

$

(8,080)

$

30,320

$

9,499

$

(7,866)

$

1,633

Developed technology

 

4 - 9

 

46,173

 

(25,326)

 

20,847

 

34,566

 

(24,601)

 

9,965

Tradename and trademarks

 

2 - 10

 

8,198

 

(1,216)

 

6,982

 

1,598

 

(1,120)

 

478

Patent

 

6 - 10

 

2,100

 

(1,892)

 

208

 

2,100

 

(1,869)

 

231

Noncompetition agreements

 

3

 

848

 

(848)

 

 

848

 

(848)

 

Total

$

95,719

$

(37,362)

$

58,357

$

48,611

$

(36,304)

$

12,307

Summary of Intangible Assets Amortization Expense (In Thousands)

Three Months Ended March 31, 

    

2025

    

2024

Amortization of acquired technology (included in costs of revenues)

$

678

$

584

Amortization of acquired intangible assets (presented separately under costs and expenses)

 

378

 

259

Total amortization of acquired intangible assets

$

1,056

$

843

Summary of Future Amortization Expenses of Acquired Intangible Assets (In Thousands)

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

6,196

2026

 

8,092

2027

 

7,939

2028

 

7,634

2029

5,949

2030 and thereafter

 

22,547

Total future amortization expense

$

58,357

Summary of Other Non-Current Assets (In Thousands)

March 31, 

December 31, 

    

2025

    

2024

Net investments in sales-type leases (3)

$

16,492

$

13,226

Unbilled accounts receivable (2)

8,587

8,983

Costs capitalized to obtain revenue contracts (1)

4,147

2,385

Contract assets (1)

505

617

Other

 

4,174

 

4,302

Total other non-current assets

$

33,905

$

29,513

(1)See Note 2, Revenue from Contracts with Customers.
(2)See Note 3, Balance Sheet Components – Accounts Receivable.
(3)The Company had net investments in sales-type leases for its DFI™ system and CV® system assets. The following table summarizes the components of the Company’s net investments in sales-type leases in the condensed consolidated balance sheets (in thousands):

March 31, 

December 31, 

    

2025

    

2024

Present value of lease receivables

$

13,784

$

13,238

Less: Contract liability

(3,235)

Net lease receivables

13,784

10,003

Unguaranteed residual assets

7,982

7,749

Total net investments in sales-type leases

$

21,766

$

17,752

Reported as:

Current (included in Prepaid expenses and other current assets)

$

5,274

$

4,526

Non-current (included in Other non-current assets)

16,492

13,226

Total net investments in sales-type leases

 

$

21,766

$

17,752

Summary for Maturities of Lease Payments Under Sales-type Leases (In Thousands)

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

5,715

2026

 

8,086

2027

 

1,724

2028

 

56

Total future sales-type lease payments

15,581

Less: Present value adjustment (a)

 

(1,797)

Present value of lease receivables

$

13,784

(a)Calculated using the rate implicit in the lease determined for each lease.
XML 37 R26.htm IDEA: XBRL DOCUMENT v3.25.1
LEASES (Tables)
3 Months Ended
Mar. 31, 2025
LEASES:  
Summary of Lease Expense (In Thousands)

Three Months Ended March 31, 

    

2025

    

2024

Operating lease expense

$

414

$

381

Short-term lease and variable lease expense (1)

 

207

 

214

Total lease expense

$

621

$

595

(1)Leases with an initial term of 12 months or less are not recorded on the condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.
Summary of Supplemental Information Related to Operating Leases

March 31, 

December 31, 

 

    

2025

    

2024

 

Weighted average remaining lease term under operating leases (in years)

3.1

3.3

Weighted average discount rate for operating lease liabilities

 

6.0

%  

6.0

%

Summary for Maturities of Operating Lease Liabilities (In Thousands)

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

1,337

2026

 

1,548

2027

 

1,485

2028

 

847

Total future minimum lease payments

 

5,217

Less: Interest (1)

 

 

(472)

Present value of future minimum lease payments under operating lease liabilities

$

4,745

Reported as of March 31, 2025:

Operating lease liabilities – current

$

1,591

Operating lease liabilities – non-current

3,154

Total operating lease liabilities

$

4,745

(1)Calculated using incremental borrowing interest rate for each lease.
XML 38 R27.htm IDEA: XBRL DOCUMENT v3.25.1
EMPLOYEE BENEFIT PLANS (Tables)
3 Months Ended
Mar. 31, 2025
EMPLOYEE BENEFIT PLANS:  
Summary of Fair Value Estimates for Purchase Rights Granted Under the 2021 Employee Stock Purchase Plan

Three Months Ended March 31, 

2025

    

2024

Expected life (in years)

1.25

 

1.25

Volatility

40.22

%  

41.40

%  

Risk-free interest rate

4.22

%  

4.62

%  

Expected dividend

 

Weighted average fair value of purchase rights granted during the year

$

9.36

$

10.89

Summary of Stock Plans and ESPP Expense Allocation (In Thousands)

Three Months Ended March 31, 

    

2025

    

2024

Costs of revenues

$

1,342

$

1,200

Research and development

 

2,419

 

2,202

Selling, general, and administrative

 

2,835

 

2,708

Total stock-based compensation expense

$

6,596

$

6,110

Summary of Nonvested Restricted Stock Units Activity

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, January 1, 2025

 

1,885

$

33.14

Granted

 

54

24.90

Vested

 

(362)

29.52

Forfeited

 

(8)

30.45

Nonvested, March 31, 2025

 

1,569

$

33.70

Summary of Fair Value for Vested Restricted Stock Units (In Thousands)

Three Months Ended March 31, 

    

2025

    

2024

Fair value of restricted stock units vested

 

$

9,712

 

$

11,225

XML 39 R28.htm IDEA: XBRL DOCUMENT v3.25.1
NET LOSS PER SHARE (Tables)
3 Months Ended
Mar. 31, 2025
NET LOSS PER SHARE:  
Summary of Basic and Diluted Earnings Per Share (In Thousands Except Per Share Amounts)

Three Months Ended March 31, 

    

2025

    

2024

Numerator:

 

  

 

  

Net loss

$

(3,032)

$

(393)

Denominator:

 

  

 

  

Basic weighted average common shares outstanding

 

39,088

 

38,500

Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan

 

 

Diluted weighted average common shares outstanding

 

39,088

 

38,500

Net loss per share:

Basic

$

(0.08)

$

(0.01)

Diluted

$

(0.08)

$

(0.01)

Summary of Anti-Dilutive Shares Excluded from Computation of Earnings Per Share (In Thousands)

Three Months Ended March 31, 

    

2025

    

2024

Non-vested restricted stock units

 

1,569

37

Outstanding stock options

 

27

1,665

Shares issuable under employee stock purchase plan

 

69

24

Total

 

1,665

 

1,726

XML 40 R29.htm IDEA: XBRL DOCUMENT v3.25.1
CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)
3 Months Ended
Mar. 31, 2025
CUSTOMER AND GEOGRAPHIC INFORMATION:  
Summary of Segment Revenues, Gross Profit, and Net Income (In Thousands)

Three Months Ended March 31, 

    

2025

    

2024

Total revenues

 

$

47,778

 

$

41,310

Costs of revenues

$

12,955

 

$

13,529

Gross profit

$

34,823

 

$

27,781

Net loss

$

(3,032)

$

(393)

Summary of Revenues from Individual Customers that Equal or Exceed 10% of Consolidated Total Revenues

Three Months Ended March 31, 

Customer

    

2025

    

2024

 

A

15

%  

22

%

B

19

%  

19

%

C

10

%  

*

* represents less than 10%

Summary of Accounts Receivable Balances from Individual Customers that Equal or Exceed 10% of Gross Accounts Receivable Balances

March 31, 

December 31, 

Customer

    

2025

2024

 

A

 

23

%  

21

%

B

*

%

13

%

C

17

%

11

%

E

*

%  

12

%

Summary of Revenues by Geographic Areas of Customer Work Sites (In Thousands)

Three Months Ended March 31, 

2025

 

2024

 

Percentage

 

Percentage

 

    

Revenues

    

of Revenues

 

Revenues

    

of Revenues

 

United States

$

18,228

 

38

%

$

17,733

 

43

%

Japan

11,736

25

11,288

27

China

 

8,043

 

17

 

4,853

 

12

Rest of the world

 

9,771

 

20

 

7,436

 

18

Total revenues

$

47,778

 

100

%

$

41,310

 

100

%

Summary of Net Fixed Assets by Geographic Area (In Thousands)

March 31, 

December 31, 

    

2025

2024

United States (1)

$

66,866

$

58,782

Rest of the world

 

1,341

 

1,461

Total long-lived assets, net

$

68,207

$

60,243

(1) Includes assets deployed at customer sites which could be outside the U.S.

XML 41 R30.htm IDEA: XBRL DOCUMENT v3.25.1
FAIR VALUE MEASUREMENTS (Tables)
3 Months Ended
Mar. 31, 2025
FAIR VALUE MEASUREMENTS:  
Summary of Assets Measured at Fair Value on a Recurring Basis (In Thousands)

Fair Value Measurements Using

Balance Sheet

March 31, 

Assets

Classification

2025

    

(Level 1)

    

(Level 2)

    

(Level 3)

Money market mutual funds

Cash equivalents

$

1,813

$

1,813

$

$

Available-for-sale debt securities:

 

  

 

  

 

  

 

  

U.S. Government securities (1)

Short-term investments

 

10,415

 

10,415

 

 

Convertible note receivable (2)

Other non-current assets

2,062

2,062

Total

$

14,290

$

12,228

$

$

2,062

Fair Value Measurements Using

Balance Sheet

December 31, 

Assets

Classification

    

2024

    

(Level 1)

    

(Level 2)

    

(Level 3)

Money market mutual funds

Cash equivalents

$

66,213

$

66,213

$

$

Available-for-sale debt securities:

  

 

  

 

  

 

  

U.S. Government securities (1)

Short-term investments

24,291

 

24,291

 

 

Convertible note receivable (2)

Other non-current assets

2,038

2,038

Total

$

92,542

$

90,504

$

$

2,038

(1)The amortized cost of the Company’s investments in U.S. Government securities approximated their fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities in the periods presented. For the three months ended March 31, 2025 and 2024, there were no material realized or unrealized gains or losses, either individually or in the aggregate.
(2)In August 2024, the Company purchased a $2.0 million non-marketable convertible promissory note from an unrelated third party (the “convertible note”). The convertible note bears a 5% interest rate annually and will mature in August 2026.
XML 42 R31.htm IDEA: XBRL DOCUMENT v3.25.1
DEBT (Tables)
3 Months Ended
Mar. 31, 2025
DEBT:  
Summary of Debt (In Thousands)

March 31, 

2025

Term loan

$

25,000

Revolving credit facility

45,000

Total debt (principal amount)

70,000

Unamortized debt discount and financing costs

(1,344)

Total debt, net of unamortized debt discount and financing costs

$

68,656

Reported as:

Current portion of long-term debt, net

$

2,240

Long-term debt, net

66,416

Total debt, net

$

68,656

Summary of Future Payments on Debt (In Thousands)

Year Ending December 31, 

    

Amount

2025 (remaining nine months)

$

1,875

2026

 

2,500

2027

 

2,500

2028

 

2,500

2029

2,500

2030

58,125

Total future principal payments of long-term debt

 

$

70,000

XML 43 R32.htm IDEA: XBRL DOCUMENT v3.25.1
BUSINESS COMBINATION (Tables)
3 Months Ended
Mar. 31, 2025
Notes Tables  
Summary of Purchase Price Allocation for Acquisition of Business as of March 7, 2025 Acquisition Date (In Thousands)

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Fair value estimates of assets acquired and liabilities assumed

 

  

 

  

Cash

$

1,049

 

  

Accounts receivable

3,038

Prepaid and other assets

1,049

Fixed assets

1,592

Fair value of intangible assets:

 

 

  

Trademark

6,600

5

Customer relationships

 

28,900

 

13

Developed technology

 

11,600

 

7

Goodwill

 

81,686

 

N/A

Accounts payable and other current liabilities

(4,747)

 

  

Total purchase price allocation

$

130,767

 

  

XML 44 R33.htm IDEA: XBRL DOCUMENT v3.25.1
BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) - USD ($)
$ in Millions
3 Months Ended
Mar. 31, 2025
Dec. 31, 2024
Stock option vesting period 4 years  
Accounts Receivable    
Unbilled receivables $ 27.0 $ 23.0
XML 45 R34.htm IDEA: XBRL DOCUMENT v3.25.1
REVENUE (Details)
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Number of revenue sources 2 2
Geographic Concentration Risk | Revenue Benchmark    
Significant customer concentration (percentage) 100.00% 100.00%
Geographic Concentration Risk | Revenue Benchmark | International Revenues    
Significant customer concentration (percentage) 62.00% 57.00%
XML 46 R35.htm IDEA: XBRL DOCUMENT v3.25.1
REVENUE - Disaggregation of Revenue (Details)
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Performance obligations, percentage of revenues 100.00% 100.00%
Over Time    
Performance obligations, percentage of revenues 61.00% 65.00%
Point-in-time    
Performance obligations, percentage of revenues 39.00% 35.00%
XML 47 R36.htm IDEA: XBRL DOCUMENT v3.25.1
REVENUE - Contract Balances (Details) - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
Current portion included in prepaid expenses and other current assets $ 6,423 $ 3,224
Non-current portion included in other non-current assets 505 617
Total contract assets 6,928 3,841
Prepaid Expenses and Other Current Assets    
Current portion included in prepaid expenses and other current assets 6,423 3,224
Other Non-current Assets    
Non-current portion included in other non-current assets $ 505 $ 617
XML 48 R37.htm IDEA: XBRL DOCUMENT v3.25.1
REVENUE - Deferred Revenues (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Dec. 31, 2024
REVENUE:      
Current $ 27,131   $ 25,005
Non-current (included in non-current liabilities) 1,552   1,512
Total deferred revenues 28,683   $ 26,517
Revenue recognized that was included in the deferred revenues and billings in excess of deferred revenues balances at beginning of period $ 10,025 $ 11,444  
XML 49 R38.htm IDEA: XBRL DOCUMENT v3.25.1
REVENUE - Costs to Obtain or Fulfill a Contract (Details) - USD ($)
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Dec. 31, 2024
Current (included in Prepaid expenses and other current assets) $ 2,494,000   $ 2,929,000
Non-current (included in Other non-current assets) 4,147,000   2,385,000
Total capitalized direct sales commission costs 6,641,000   5,314,000
Amortization of capitalized direct sales commission costs 872,000 $ 634,000  
Impairment losses related to capitalized contract costs $ 0 $ 0  
Existence of significant financing component false    
Prepaid Expenses and Other Current Assets      
Current (included in Prepaid expenses and other current assets) $ 2,494,000   2,929,000
Other Non-current Assets      
Non-current (included in Other non-current assets) $ 4,147,000   $ 2,385,000
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.25.1
REVENUE - Additional Information (Details) - Software License and Related Services Agreement - Advantest America, Inc. - USD ($)
$ in Millions
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Revenue, remaining performance obligation $ 226.7  
More than half of the remaining performance obligations 2 years  
Revenue performance obligations satisfied in previous period $ 0.2 $ 0.6
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS (Details) - USD ($)
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Dec. 31, 2024
Dec. 31, 2023
Unbilled receivables - non-current $ 8,587,000   $ 8,983,000  
Allowance for credit losses 900,000   900,000  
Depreciation and amortization 700,000 $ 1,100,000    
Goodwill, carrying amount $ 96,645,000 14,953,000 14,953,000 $ 15,029,000
Intangible assets, amortization period 9 years 1 month 6 days      
Impairment of goodwill $ 0 $ 0    
Allowance for credit loss on sales-type lease receivables 0   0  
Accounts Receivable        
Unbilled receivables 27,000,000   23,000,000  
Other Non-current Assets        
Unbilled receivables - non-current $ 8,600,000   $ 9,000,000  
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS - Prepaid Expense and Other Current Assets (Details) - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
BALANCE SHEET COMPONENTS    
Prepaid expense $ 7,840 $ 6,481
Contract assets 6,423 3,224
Costs capitalized to obtain revenue contracts 2,494 2,929
Net investment in sales-type lease - current portion 5,274 4,526
Income tax receivable 769 285
Total prepaid expenses and other current assets $ 22,800 $ 17,445
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS - Property and Equipment (Details) - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
Property and equipment, gross $ 104,229 $ 95,416
Less: accumulated depreciation and amortization (47,665) (46,951)
Total property and equipment, net 56,564 48,465
Computer Equipment    
Property and equipment, gross 12,751 10,799
Software and Capitalized Software Development Cost    
Property and equipment, gross 6,646 5,617
Furniture, Fixtures, and Equipment    
Property and equipment, gross 2,553 2,529
Leasehold Improvements    
Property and equipment, gross 6,850 6,691
Laboratory and Other Equipment    
Property and equipment, gross 6,009 5,734
Test Equipment    
Property and equipment, gross 21,681 22,680
DFI System Assets    
Property and equipment, gross 40,231 34,935
CV System and Other Assets    
Property and equipment, gross $ 7,508 $ 6,431
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS - Goodwill and Intangible Assets, Net (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
BALANCE SHEET COMPONENTS    
Balance at beginning of period $ 14,953 $ 15,029
Addition 81,686  
Foreign currency translation adjustment 6 (76)
Balance at end of period $ 96,645 $ 14,953
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS - Intangible Assets (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Dec. 31, 2024
Intangible assets, amortization period 9 years 1 month 6 days    
Intangible assets, gross carrying amount, total $ 95,719   $ 48,611
Intangible assets, accumulated amortization, total (37,362)   (36,304)
Intangible assets, net carrying amount, total 58,357   12,307
Total amortization of acquired intangible assets 1,056 $ 843  
Customer Relationships      
Intangible assets, gross carrying amount, total 38,400   9,499
Intangible assets, accumulated amortization, total (8,080)   (7,866)
Intangible assets, net carrying amount, total $ 30,320   1,633
Customer Relationships | Minimum      
Amortization Period (Year) 1 year    
Customer Relationships | Maximum      
Amortization Period (Year) 13 years    
Developed Technology      
Intangible assets, gross carrying amount, total $ 46,173   34,566
Intangible assets, accumulated amortization, total (25,326)   (24,601)
Intangible assets, net carrying amount, total $ 20,847   9,965
Developed Technology | Minimum      
Amortization Period (Year) 4 years    
Developed Technology | Maximum      
Amortization Period (Year) 9 years    
Tradename and Trademarks      
Intangible assets, gross carrying amount, total $ 8,198   1,598
Intangible assets, accumulated amortization, total (1,216)   (1,120)
Intangible assets, net carrying amount, total $ 6,982   478
Tradename and Trademarks | Minimum      
Amortization Period (Year) 2 years    
Tradename and Trademarks | Maximum      
Amortization Period (Year) 10 years    
Patent      
Intangible assets, gross carrying amount, total $ 2,100   2,100
Intangible assets, accumulated amortization, total (1,892)   (1,869)
Intangible assets, net carrying amount, total $ 208   231
Patent | Minimum      
Amortization Period (Year) 6 years    
Patent | Maximum      
Amortization Period (Year) 10 years    
Noncompetition Agreements      
Amortization Period (Year) 3 years    
Intangible assets, gross carrying amount, total $ 848   848
Intangible assets, accumulated amortization, total (848)   $ (848)
Costs of Revenues      
Amortization of acquired technology included under Costs of revenues 678 584  
Costs and Expenses      
Amortization of acquired intangible assets presented separately under costs and expenses $ 378 $ 259  
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details)
$ in Thousands
Mar. 31, 2025
USD ($)
BALANCE SHEET COMPONENTS  
2025 (remaining three months) $ 6,196
2026 8,092
2027 7,939
2028 7,634
2029 5,949
2030 and thereafter 22,547
Total future amortization expense $ 58,357
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS - Other Non-current Assets (Details) - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
BALANCE SHEET COMPONENTS    
Net investment in sales-type leases (3) $ 16,492 $ 13,226
Unbilled accounts receivable (2) 8,587 8,983
Costs capitalized to obtain revenue contracts (1) 4,147 2,385
Contract assets (1) 505 617
Other 4,174 4,302
Total other non-current assets $ 33,905 $ 29,513
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS - Net Investment in Sales-Type Lease (Details) - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
BALANCE SHEET COMPONENTS    
Present value of lease receivables $ 13,784 $ 13,238
Less: Contract liability   (3,235)
Net lease receivables 13,784 10,003
Unguaranteed residual assets 7,982 7,749
Total net investment in sales-type leases 21,766 17,752
Current (included in Prepaid expenses and other current assets) 5,274 4,526
Non-current (included in Other non-current assets) $ 16,492 $ 13,226
XML 59 R48.htm IDEA: XBRL DOCUMENT v3.25.1
BALANCE SHEET COMPONENTS - Maturities of Lease Payments Under Sales-type Leases (Details) - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
BALANCE SHEET COMPONENTS    
2025 (remaining nine months) $ 5,715  
2026 8,086  
2027 1,724  
2028 56  
Total future sales-type lease payments 15,581  
Less: Present value adjustment (a) (1,797)  
Present value of lease receivables $ 13,784 $ 13,238
XML 60 R49.htm IDEA: XBRL DOCUMENT v3.25.1
LEASES (Details)
$ in Millions
3 Months Ended
Mar. 31, 2025
USD ($)
Dec. 31, 2024
Number of finance leases 0 0
Weighted average remaining lease term under operating leases (in years) 3 years 1 month 6 days 3 years 3 months 18 days
Weighted average discount rate for operating lease liabilities 6.00% 6.00%
Undiscounted excess amount future minimum payments $ 0.4  
Operating lease term (commencing Q2 2025) 6 years 2 months 12 days  
Minimum    
Initial lease term, threshold to be recorded in accompanying condensed consolidated balance sheets 12 months  
XML 61 R50.htm IDEA: XBRL DOCUMENT v3.25.1
LEASES - Components of Operating Lease Expense (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
LEASES:    
Operating lease expense $ 414 $ 381
Short-term lease and variable lease expense (1) 207 214
Total lease expense $ 621 $ 595
XML 62 R51.htm IDEA: XBRL DOCUMENT v3.25.1
LEASES - Maturity of Operating Lease Liabilities (Details) - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
LEASES:    
2025 (remaining nine months) $ 1,337  
2026 1,548  
2027 1,485  
2028 847  
Total future minimum lease payments 5,217  
Less: Interest (1) (472)  
Present value of future minimum lease payments under operating lease liabilities 4,745  
Operating lease liabilities - current 1,591 $ 1,675
Operating lease liabilities - non-current $ 3,154 $ 3,504
XML 63 R52.htm IDEA: XBRL DOCUMENT v3.25.1
STOCKHOLDERS EQUITY (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 24 Months Ended
Apr. 15, 2024
Apr. 11, 2022
Mar. 31, 2025
Mar. 31, 2024
Mar. 31, 2024
Aggregate cost of shares repurchased       $ 6,899  
2022 Stock Repurchase Program          
Shares authorized under stock repurchase program   $ 35,000      
Stock repurchase program term   2 years      
Repurchase of common stock (shares)       201,561 937,501
Shares repurchased for Treasury, average cost per share       $ 34.23 $ 25.96
Aggregate cost of shares repurchased       $ 6,900 $ 24,300
2024 Stock Repurchase Program          
Shares authorized under stock repurchase program $ 40,000        
Stock repurchase program term 2 years        
Repurchase of common stock (shares)     0    
XML 64 R53.htm IDEA: XBRL DOCUMENT v3.25.1
EMPLOYEE BENEFIT PLANS - Narrative (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 44 Months Ended
Nov. 16, 2011
Mar. 31, 2025
Mar. 31, 2024
Mar. 31, 2025
Apr. 28, 2025
Stock option vesting period   4 years      
Employee Stock Option          
Stock Incentive Plans, Stock Option Awards Outstanding   26,679,000   26,679,000  
Restricted Stock Units (RSUs)          
Unrecognized Compensation   $ 43,700   $ 43,700  
Unrecognized Compensation Recognition Period   2 years 4 months 24 days      
Fair value of restricted stock units vested   $ 9,712 $ 11,225    
2011 Stock Incentive Plan          
Stock Incentive Plans, Common Shares Reserved for Future Issuance   14,600,000   14,600,000  
Stock Incentive Plans, Common Shares Reserved for Future Issuance from Expired Incentive Plans   500,000   500,000  
Aggregate Common Shares Reserved to Cover Stock-based Awards Under the 2011 Plan   15,100,000   15,100,000  
Number of additional common stock capital shares reserved for future issuance   3,500,000      
Stock Incentive Plans, Stock Options and Awards Granted   0 0    
2011 Stock Incentive Plan | Maximum          
Stock Incentive Plans, Common Shares Reserved for Future Issuance from Expired Incentive Plans 3,500,000        
2011 Stock Incentive Plan | Employee Stock Option          
Stock Incentive Plans, Rate Decrease in Reserved Plan-Shares Pursuant to Awards Other Than Options or SARs 1.33        
Stock Option Expiration Period 10 years        
Stock option vesting period 4 years        
2021 Employee Stock Purchase Plan          
Eligible Employee Contribution Rate, Percentage of Compensation   10.00%   10.00%  
Eligible Employee Share Purchase Price, Percentage of Fair Market Value       85.00%  
ESPP, Share Offering Period Duration       24 months  
ESPP, Share Purchase Periods Within Each Offering Period       4  
ESPP, Share Purchase Period Duration       6 months  
ESPP, Shares Issued During Period   89,508 73,854    
ESPP, Weighted Average Purchase Price   $ 23.68 $ 25.94 $ 23.68  
Unrecognized Compensation   $ 6,600   $ 6,600  
Unrecognized Compensation Recognition Period   1 year 9 months 18 days      
Shares Available for Future Issuance   548,973   548,973  
Amended 2021 Stock Purchase Plan | Subsequent Event          
ESPP, Shares Reserved for Future Issuance         1,400,000
New Shares Reserved for Future Issuance Under Stock Plan Amendment         200,000
Amended 2011 Stock Incentive Plan | Employee Stock Option | Subsequent Event          
New Shares Reserved for Future Issuance Under Stock Plan Amendment         800,000
Stock Incentive Plans, Common Shares Reserved for Future Issuance         15,900,000
XML 65 R54.htm IDEA: XBRL DOCUMENT v3.25.1
EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) - 2021 Employee Stock Purchase Plan - $ / shares
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Expected life (in years) 1 year 3 months 1 year 3 months
Volatility 40.22% 41.40%
Risk-free interest rate 4.22% 4.62%
Expected dividend 0.00% 0.00%
Weighted average fair value of purchase rights granted during the period $ 9.36 $ 10.89
XML 66 R55.htm IDEA: XBRL DOCUMENT v3.25.1
EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Share-Based Payment Arrangement, Expense $ 6,596 $ 6,110
Costs of Revenues    
Share-Based Payment Arrangement, Expense 1,342 1,200
Research and Development    
Share-Based Payment Arrangement, Expense 2,419 2,202
Selling, General, and Administrative    
Share-Based Payment Arrangement, Expense $ 2,835 $ 2,708
XML 67 R56.htm IDEA: XBRL DOCUMENT v3.25.1
EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) - Restricted Stock Units (RSUs) - $ / shares
shares in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Non-vested RSUs, Opening Balance 1,885  
RSUs Granted 54  
RSUs Vested (362)  
RSUs Forfeited (8)  
Non-vested RSUs, Ending Balance 1,569  
Non-vested RSUs Opening, Weighted Average Grant Date Fair Value $ 33.14  
RSUs Granted, Weighted Average Grant Date Fair Value 24.9 $ 33.17
RSUs Vested, Weighted Average Grant Date Fair Value 29.52  
RSUs Forfeited, Weighted Average Grant Date Fair Value 30.45  
Non-vested RSUs Ending, Weighted Average Grant Date Fair Value $ 33.7  
XML 68 R57.htm IDEA: XBRL DOCUMENT v3.25.1
INCOME TAXES - Narrative (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Dec. 31, 2024
INCOME TAXES:      
Increase (Decrease) in Income Taxes $ (100)    
Income Tax Expense (Benefit) $ 36 $ 125  
Effective Income Tax Rate Reconciliation, Percent (1.20%) (47.00%)  
Unrecognized tax benefits, excluding interest and penalties $ 16,900   $ 16,600
Unrecognized tax benefits that would impact effective tax rate 2,300   2,100
Unrecognized tax benefits including income tax penalties and interest accrued in long term liabilities 2,900    
Unrecognized tax benefits, interest accrued 700    
Unrecognized Tax Benefits In Deferred Tax Assets 14,700    
Deferred Tax Assets, Valuation Allowance $ 67,900   $ 67,900
XML 69 R58.htm IDEA: XBRL DOCUMENT v3.25.1
NET LOSS PER SHARE - Calculation of Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
NET LOSS PER SHARE:    
Net loss $ (3,032) $ (393)
Basic weighted average shares outstanding 39,088 38,500
Diluted weighted average shares outstanding 39,088 38,500
Basic $ (0.08) $ (0.01)
Diluted $ (0.08) $ (0.01)
XML 70 R59.htm IDEA: XBRL DOCUMENT v3.25.1
NET LOSS PER SHARE - Anti-dilutive Securities (Details) - shares
shares in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Antidilutive securities excluded from EPS 1,665 1,726
Non-vested Restricted Stock Units    
Antidilutive securities excluded from EPS 1,569 37
Outstanding Stock Options    
Antidilutive securities excluded from EPS 27 1,665
Shares Issuable Under Employee Stock Purchase Plan    
Antidilutive securities excluded from EPS 69 24
XML 71 R60.htm IDEA: XBRL DOCUMENT v3.25.1
CUSTOMER AND GEOGRAPHIC INFORMATION - Segment Revenue, Gross Profit, and Net Income (Loss) (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
CUSTOMER AND GEOGRAPHIC INFORMATION:    
Total revenues $ 47,778 $ 41,310
Costs of revenues 12,955 13,529
Gross Profit 34,823 27,781
Net Income (Loss) $ (3,032) $ (393)
XML 72 R61.htm IDEA: XBRL DOCUMENT v3.25.1
CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) - Customer Concentration Risk
3 Months Ended 12 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Dec. 31, 2024
Revenue Benchmark | Customer A      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage) 15.00% 22.00%  
Revenue Benchmark | Customer B      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage) 19.00% 19.00%  
Revenue Benchmark | Customer C      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage) 10.00%    
Accounts Receivable | Customer A      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage) 23.00%   21.00%
Accounts Receivable | Customer B      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage)     13.00%
Accounts Receivable | Customer C      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage) 17.00%   11.00%
Accounts Receivable | Customer E      
Revenues from External Customers and Long-Lived Assets [Line Items]      
Significant customer concentration (percentage)     12.00%
XML 73 R62.htm IDEA: XBRL DOCUMENT v3.25.1
CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total revenues $ 47,778 $ 41,310
Geographic Concentration Risk | Revenue Benchmark    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total revenues $ 47,778 $ 41,310
Percentage of Revenues 100.00% 100.00%
Geographic Concentration Risk | Revenue Benchmark | United States    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total revenues $ 18,228 $ 17,733
Percentage of Revenues 38.00% 43.00%
Geographic Concentration Risk | Revenue Benchmark | Japan    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total revenues $ 11,736 $ 11,288
Percentage of Revenues 25.00% 27.00%
Geographic Concentration Risk | Revenue Benchmark | China    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total revenues $ 8,043 $ 4,853
Percentage of Revenues 17.00% 12.00%
Geographic Concentration Risk | Revenue Benchmark | Rest of the World    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total revenues $ 9,771 $ 7,436
Percentage of Revenues 20.00% 18.00%
XML 74 R63.htm IDEA: XBRL DOCUMENT v3.25.1
CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
Revenues from External Customers and Long-Lived Assets [Line Items]    
Long-lived assets, net $ 68,207 $ 60,243
United States (1)    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Long-lived assets, net 66,866 58,782
Rest of the World    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Long-lived assets, net $ 1,341 $ 1,461
XML 75 R64.htm IDEA: XBRL DOCUMENT v3.25.1
FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details) - USD ($)
$ in Thousands
Mar. 31, 2025
Dec. 31, 2024
Assets measured at fair value, total $ 14,290 $ 92,542
(Level 1)    
Assets measured at fair value, total 12,228 90,504
(Level 3)    
Assets measured at fair value, total 2,062 2,038
Money Market Mutual Funds    
Cash equivalents 1,813 66,213
Money Market Mutual Funds | (Level 1)    
Cash equivalents 1,813 66,213
U.S. Government Securities (1)    
Short-term investments 10,415 24,291
U.S. Government Securities (1) | (Level 1)    
Short-term investments 10,415 24,291
Convertible Note Receivable (2)    
Non-current assets 2,062 2,038
Convertible Note Receivable (2) | (Level 3)    
Non-current assets $ 2,062 $ 2,038
XML 76 R65.htm IDEA: XBRL DOCUMENT v3.25.1
FAIR VALUE MEASUREMENTS - Additional Information (Details)
$ in Millions
1 Months Ended
Aug. 31, 2024
USD ($)
Convertible note interest rate 5.00%
Other Non-current Assets  
Convertible note receivable $ 2.0
XML 77 R66.htm IDEA: XBRL DOCUMENT v3.25.1
COMMITMENTS AND CONTINGENCIES (Details)
$ in Millions
3 Months Ended
Mar. 31, 2025
USD ($)
Indemnifications  
Term of Product Warranty 90 days
Purchase Obligations  
Purchase Obligation, Total $ 37.6
XML 78 R67.htm IDEA: XBRL DOCUMENT v3.25.1
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) - Advantest America, Inc. - USD ($)
$ in Millions
1 Months Ended 3 Months Ended
Jul. 31, 2020
Mar. 31, 2025
Mar. 31, 2024
Dec. 31, 2024
Analytics        
Related party revenue   $ 3.6 $ 2.9  
Related party deferred revenue   $ 5.8   $ 8.3
Securities Purchase Agreement        
Common stock shares issued 3,306,924      
Proceeds from Issuance of Common Stock $ 65.2      
Term of cloud-based subscription for Extension analytics software 5 years      
XML 79 R68.htm IDEA: XBRL DOCUMENT v3.25.1
DEBT - Outstanding Debt (Details)
$ in Thousands
Mar. 31, 2025
USD ($)
DEBT:  
Term loan $ 25,000
Revolving credit facility 45,000
Total debt (principal amount) 70,000
Unamortized debt discount and financing costs (1,344)
Total debt, net of unamortized debt discount and financing costs 68,656
Long-term Debt Reported as:  
Current portion of long-term debt, net 2,240
Long-term debt, net 66,416
Total debt, net of unamortized debt discount and financing costs $ 68,656
XML 80 R69.htm IDEA: XBRL DOCUMENT v3.25.1
DEBT - Revolving Credit Facility (Details)
$ in Thousands
Mar. 07, 2025
USD ($)
Mar. 31, 2025
USD ($)
Line of Credit Facility [Line Items]    
Revolving credit facility   $ 45,000
Term loan   $ 25,000
Wells Fargo | Credit Agreement    
Line of Credit Facility [Line Items]    
Revolving credit facility $ 45,000  
Term loan $ 25,000  
Annual commitment fee 0.50%  
Wells Fargo | Credit Agreement | Minimum    
Line of Credit Facility [Line Items]    
Debt covenants, fixed-charge coverage ratio 1.25  
Wells Fargo | Credit Agreement | Maximum    
Line of Credit Facility [Line Items]    
Debt covenants, total net leverage ratio 3  
Wells Fargo | Credit Agreement | Revolving Credit Facility | Federal Funds Effective Rate    
Line of Credit Facility [Line Items]    
Marginal interest rate 0.50%  
Wells Fargo | Credit Agreement | Revolving Credit Facility | Minimum | SOFR    
Line of Credit Facility [Line Items]    
Marginal interest rate 1.00%  
Wells Fargo | Credit Agreement | Revolving Credit Facility | Minimum | Alternate Base Rate (Federal Funds Effective Rate)    
Line of Credit Facility [Line Items]    
Marginal interest rate 1.00%  
Wells Fargo | Credit Agreement | Revolving Credit Facility | Minimum | Alternate Base Rate (SOFR)    
Line of Credit Facility [Line Items]    
Marginal interest rate 2.00%  
Wells Fargo | Credit Agreement | Revolving Credit Facility | Maximum | Alternate Base Rate (Federal Funds Effective Rate)    
Line of Credit Facility [Line Items]    
Marginal interest rate 1.75%  
Wells Fargo | Credit Agreement | Revolving Credit Facility | Maximum | Alternate Base Rate (SOFR)    
Line of Credit Facility [Line Items]    
Marginal interest rate 2.75%  
Wells Fargo | Credit Agreement | Term Loan | Minimum | Alternate Base Rate (Federal Funds Effective Rate)    
Line of Credit Facility [Line Items]    
Marginal interest rate 1.00%  
Wells Fargo | Credit Agreement | Term Loan | Minimum | Alternate Base Rate (SOFR)    
Line of Credit Facility [Line Items]    
Marginal interest rate 2.00%  
Wells Fargo | Credit Agreement | Term Loan | Maximum | Alternate Base Rate (Federal Funds Effective Rate)    
Line of Credit Facility [Line Items]    
Marginal interest rate 1.75%  
Wells Fargo | Credit Agreement | Term Loan | Maximum | Alternate Base Rate (SOFR)    
Line of Credit Facility [Line Items]    
Marginal interest rate 2.75%  
XML 81 R70.htm IDEA: XBRL DOCUMENT v3.25.1
DEBT - Future Payments on Total Debt (Details)
$ in Thousands
Mar. 31, 2025
USD ($)
DEBT:  
2025 $ 1,875
2026 2,500
2027 2,500
2028 2,500
2029 2,500
2030 58,125
Total future principal payments of long-term debt $ 70,000
XML 82 R71.htm IDEA: XBRL DOCUMENT v3.25.1
BUSINESS COMBINATION - Narrative (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 07, 2025
Mar. 31, 2025
Dec. 31, 2024
Business Acquisition [Line Items]      
Consideration to acquire business, net of cash acquired   $ 129,718  
SecureWise      
Business Acquisition [Line Items]      
Consideration to acquire business, net of cash acquired $ 130,000    
Transaction costs 5,300    
Acquisition costs expensed   $ 4,400 $ 900
Fair value of acquired accounts receivable $ 3,000    
XML 83 R72.htm IDEA: XBRL DOCUMENT v3.25.1
BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details) - SecureWise
$ in Thousands
Mar. 07, 2025
USD ($)
Assets  
Cash $ 1,049
Accounts receivable 3,038
Prepaid and other assets 1,049
Fixed assets 1,592
Accounts payable and other current liabilities (4,747)
Total purchase price allocation 130,767
Trademark  
Assets  
Fair value of intangible assets $ 6,600
Intangible asset amortization period 5 years
Customer Relationships  
Assets  
Fair value of intangible assets $ 28,900
Intangible asset amortization period 13 years
Developed Technology  
Assets  
Fair value of intangible assets $ 11,600
Intangible asset amortization period 7 years
Goodwill  
Assets  
Fair value of intangible assets $ 81,686
EXCEL 84 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( (V"J%I&QTU(E0 ,T 0 9&]C4')O<',O87!P+GAM M;$W/30O", P&X+]2=K>9BAZD#D0]BIZ\SRYUA;8I;83Z[^T$/VYY><@;HBZ) M(B:VF$7Q+N1M,S+'#4#6(_H^R\JABJ'D>ZXQW8&,L1H/I!\> \.B;=> A3$, M.,SBM[#IU"Y&9W7/ED)WLCI1)L/B6#0ZL2B4^BQ-+.9:[Z@,^A]QC(8+P9;> M T1U0"MCF1(N-7=]L)+2->S!2W64>X2FJI9@D:26)&$"%GXF,M%JQ55 27TX MX[6:\?XC=!FF%6"'%AU%J,L:F)@F^M/8M7 %3##"8.-7 ?5,S-4_L;D#[)P< MHYE3PS"4PR+GT@XUO#T]ON1U"^,B2:_$)]02P,$% @ C8*H M6IE&UL[5I;<]HX%'[O MK]!X9_9M"\8V@;:T$W-I=MNTF83M3A^%$5B-;'EDD81_OTV23;J; M/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R> +]O6N[!3+UES@6QHO(];JM-O=5H1I;*$81V1@?5XL M:$#05%%:;U\@M.4?,_@5RU2-9:,!$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP M&U@@?\YOI^1.6HCA5,+$P&IG/U9KQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C. M=GSVQ.V?C,K:=#1M&N#C\7@XMLO2BW A(5M>5 TR 6'!VULS2 Y9>*?IUE!K9';O=05SP6.XY MB1'^QL4$UFG2&98T1G*=D 4. #?$T4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB! M]4>"(<7K;YH]5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95 MO-RCEU@5 9<8WS2J-2S%UGB5P/&MG#P=$Q+-E L&08:7)"82J3E^34@3_BNE MVOZKR2.FJW"$2M"/F(9-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PU MDSY@R.S-D77.UI$.$9)>-T(^8LZ+D!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;] MN'Z&U3-L+([W1]072N0/)J<_Z3(T!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E M>G@*-Y;&O%"N@GL!_]':-\*K^(+ .7\N?<^E[[GT/:'2MSAD6R4)RU3393>*$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^ M+,_Y/%_GM,T+,T.WF)&Y"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1 M^^?!4;"C[SR6'<>(\J(A[J&&F,_#0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L M%.!D8"V@!X.O40+R4E5@,5O& RN0HGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9 M;2)2.<)IF!-GJ\K>9;'!51W/55ORL+YJ/;053L_^6:W(GPP13A8+$DACE!>F M2J+S&5.^YRM)Q%4XOT4SMA*7&+SCYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M M# DL6XA9$N)-7>W5YYNTB42%(JP# 4A%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG! M/3-R0]A4)?.NVB8+A=OB5,V[&KXF8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.' MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[ M\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY M@%CS#*%F.-^'19H:,]6+K#F-"F]!U4#E/]O4#6CV#30,9FV-J/D3@H\ MW/[O#;#"Q([A[8N_ 5!+ P04 " "-@JA:5P3&"]D% #^'@ & 'AL M+W=O21<;J;XF M2R$T>8G".+EL+;5>?>AT$F\I(IZY5!'7<*L6G62E!/>SH"CL,,%K+<8B#(T2E./;3K15_*<)?'V]5[_-S(.99YZ(L0S_"GR] MO&SU6\07IIK;)%ER)9*+CH9_,S$=;Z=\ ME2NS"F67?)2Q7B:@Z@O_;7P'2ED4E>V+>L50P8]6"7;N@Z:\?DA7WQ&4+.F0BU%JTAC_]0,^< M7VUFOY/8&^_=PGL74R^]/VU7PN84#Z=.^Y/-$AK5T%*OL-0[S-*GE"LM5+@E MCV(EE;;9PZ6T2FV5,D:C&MH[*^R='69O*E0@38/U"8P7UN3A2D4OK.R&:'Q# MG^>%S_,#6Z;B,-5D0UAU'G&M.0\3:R+1L(8&^X7!/EJHF?!2!;Y$0D:>)K=! M*,A]&CT+93.(:SF.TW:I2ZG-)!K:T.2@,#E "[8;3A_%(D@T)%*3>QY9VRJN M,[V^);.'N\]/DX?[V4E>O,G]^-3F%U5JZ)^0AMN<5EV3]7I]<"W+' MR5BE_Y"K<.U;&S>NT]1ZB4H4I9'_6!^;.VC63W)C!:4:N1F,". XY(I;S1X# MC6C)1A2GF_=FBTX\57(=Q)X]T;CF>&0U>@Q@HB4Q49QSWAN=RD3SD/P=K*K' M*5QQT'-ZCM7I,=B)EO!$<>;)VNL(5LG5QG"!KM.WVCH&*M&2E2@..'?2@WQ- MES+&&*)&A/6=]OG L:?M&*1$2U2B.-\\!1KH2,X)93\__T)VZ+2UFL25QC** M8&*::>E]/2$_.J> 3K27%W7%%5GST,[\N&[3&B@YBN( !!3L!_&"S+;1LPRM MQFL):F;U=0Q<8B4N,1QH]JDD-R_>DL<+40F(-4+WH]GUR+H8Q0.;.BSIB!U$ M1^-4*;..*VCM(\\3( 0R?BYI=7P, M#F(E![&#.&@6\3 D5VD"/R?V=HOK5"[#\;BF_DK\80?ASTTDU,)TS-] 02^! M$*(5C^VIQ06KC1Z#?EA)/PR'EWTBEP(2B=G#9:KM'8."6$E!# >8_4C[9HJ? M99O>Y"'5P+2QF4.MCK\3W^SJ(5?K96KF^&4]= ?4'?3.W(O.VN:Q)"&&\\O> M(XRH"I!O$OOBA?PA[&FLW32BE#D#VK5Z. ;OL))W&(XKHTC$?K;_=QMR>\IP M@>I&>@S@<4O@<7%.V7/ ;9 89O\B #JQ/=P:N7:;LK9KW27!(YL:+;G'Q2FE MV,#=.=WM5]_"8^OD42/WR>[Q&,SCELSCXH3RWF.6S6J'-7M %;OP>-C_]=AY M=<)H)KSLX#4AGMF7S \;BZ?%X>XH.]+LE*_G)\,?N9DO$Q**.80ZI^%,B_ [W,I]?[&_$%QY#W\%U!+ P04 " "- M@JA:7 V*C$8' $'@ & 'AL+W=ONTF!E(G>UN@FP9UN_OAL!]HFXZ%2J)+44ESO_Z& MDF/9(D6GN_V22/)P],QP9IX9ZN)1JB_55@B-OA5Y65V.MEKOWDRGU6HK"EZ] MECM1PB\;J0JNX5;=3ZN=$GS=+"KR*<4XFA8\*T>SB^;9G9I=R%KG62GN%*KJ MHN#JZ:W(Y>/EB(R>'WS,[K?:/)C.+G;\7BR$_KR[4W W/6A99X4HJTR62(G- MY>B*O)FSR"QH)'[/Q&-U=(V,*4LIOYB;=^O+$3:(1"Y6VJC@\.]!S$6>&TV MX^M>Z>CP3K/P^/I9^R^-\6#,DE=B+O,_LK7>7HZ2$5J+#:]S_5$^_BKV!H5& MWTKF5?,7/>YE\0BMZDK+8K\8$!19V?[GW_:..%I @H$%=+^ OG0!VR]@C:$M MLL:L:Z[Y[$+)1Z2,-&@S%XUOFM5@35::;5QH!;]FL$[/YA]NKV]N%S?7"*X6 M']Z_N[[Z!#=OK]Y?WH:Q$G[:RKGBYKBZF M&C 83=/5_GUOV_?1@??]QM5KQ,@844Q#Q_*Y?_FU6!V6!Z?+IV#YP7QZ,)\V M^MB OJNJ$KH:HWFME"@U^N_5LM(*8NM/EVFMKL"MRR37H3](V8G9[& V\VF?S7FU1;"!:&4NQ-^ YV._%A%K"8@?O M)S@@80^D+44#FA(WR/ ,O2"O%JM9 VPH*JM!#ARF8LQ*J$"RPWB.=1)7JX$ M@HJ+5DJL,XUR"5'GM"*T\$4LBJ.>%;94S*(@=5L1':R(O%;<*;'CV1J);\ 0 M *\)#ZFW F#ODX,WR>+"'=E^I0G&/=RV%(F#('3CC@^X8R_N3U+S_ 408_OE M 8YH/T)L,0IA' \X-SF 3,XX%WA7Z:?&J2;==B:0FRAQ84TL$&$41OV,LZ6" M)(@&W)D>D*9>I!\ )]=9>8]R >R(E*'!B=Q,:KCA^VHY #NU +$H(CW4ME" MZ8![">Y8#'MA_T?*]6.6YTY"PM8KTR@*^COO$"-!&K(!:$<$2[S0WI6:E_<9 M5(5S_MLK.MGWA(5Q'Z@M1BC#\0#0C@J)EW* 6S<"LFB--/]V%BJU\\2JM@ZA M8,B='7,1/W6U^=X6IE*6D_.9OU=X$I<,R*F/UA:C:4B& '<41OP^9^QV-Y%W8>?$;=,;89A9 MQ= 62^*0#L#N6)!\'PT>@85AZ-F$'72GL!=.^#;/D3#MDZ%+*HH'G$X[-J1^ M-MPGL7.$L5F.QH3U@;G$0HR'D'5D2/UD.#_UG&F1MRW^6BR'>R)JLQZE M0;_%]+_^+Y82>C1-^BGTM!D]$^'4IL<(II$^+[G$]9 M"95%&-H? .IB1M:O($XI,A0Q'7U2/WW>'G'\4=3(X01UFN DSW[]=DF%>&"& MI1W!4O^ V'EZR0&Y#49.S_U]1:?GA%TKPIT9;H+"88[1)EF)5GR702%Q@G1,^H3$UIF$2P[3X^[]%&[7 MJ+ SC8H"UJS54[NQB&L8+BIHO@@=XZ!U."'CE$3[77F!W^TV94(B&EESK%,P M3-E0261'A]K^C@9FC;JHVY%H#0/1*G-2)K,;E4D:8]KO)9UR+$V2 9Q=2\/\ M+Q!-.?#3N!V>S)A^.AL^(AG><8.W&A 9)FEA>=LE%QX/>*=RNYV#^GL-B\2:J7PP_LKYG.$]E7'*N M4YGIT2&PO=V]R:W-H965T&ULK99=;YLP%(;_BL6F:9.Z8$,2DBY! M:I-,K=2U49-MURXXP2I@9INDW:^?#81!0KZZW00;SOORG(,=G\&:\6<1$"+! M2Q3&8F@$4B:7IBF\@$18M%A"8O5DP7B$I9KRI2D23K"?B:+0M"#LFA&FL>$. MLGM3[@Y8*D,:DRD'(HTBS%^O2DAF1WY,I5S.S M=/%I1&)!60PX60R-*W0Y0ID@B_A!R5I4QD"G\L38LY[<^D,#:B(2$D]J"ZPN M*S(B8:B=%,>OPM0HWZF%U?'&_6N6O$KF"0LR8N%/ZLM@:/0,X),%3D/YR-8W MI$BHH_T\%HKL%ZR+6&@ +Q621858$40TSJ_XI2A$18#:>P16(;!.%=B%P,X2 MS:V[69;O2DO18(],C34KA.$KXCA?GB'NO!+4\[_R:Q6 M ;NL@'W(W9VJ_40X)SY0B]![O@ )YF"%PY0TI9U[.9F7_NM8N; %(43J4ZZJ M&1V/J\&V2]CV>;#%FL2I#!BGOXG?!)U[=BHP'<6R17PDJ(;;*7$[;\*E0J3- MJ)T=BFW.0Q$UR&X)V7T3I#H,A%2;G,;+)M+N4=)#$352IR1U#I*.6!2I(^&4 M=>JR5I[PS2DQ9I;Z=:#MQ=I<>B:K3]DK9_/NW^-=K?W2D(.=ND M#5'004XS*8)_SS%X/NN1I5I85EGL/K*WB9O">CV(]B!7CEYT$'FN^BZ1\M<- MM%>DD+$W\J(=$&3!]@YO0QCJH^X6KUGI&G3+ID[@)8T%",E"Z6#+408\[X+R MB61)UD@\,:G:DFP8J,Z1ET']S4M+E-XJ[M%G9__8V3T#2) M8^#4^P)).C-YGO%X'MLY>^+BNUPRIM!S$J?RO+-4:G7:[0=W7A[<1XNET@^ZP[,57; I4U]6=P+NNMLH\RAAJ8QXB@1[/.^,\.G8 M)=HAL_@:L2>Y!/2&AKB*8OLMQDWL F2O4P3I6 7R/P4\/Q[H"; MZ0/\NY[@;DLF=BPSO#WWW#/^YJ^;T&;H]?O]X*R[V>5@L,(N=K96%7#^%IQO'8PQ METHB*%0T>88^*5\=%G^?P[*G8!7FO2WSGG580A_)^>8#'R_-C(& M*]C]0+R&!%!H%GAAEL M8096F%.0HRA='*$%2YF@\5&&E\ZA<4>ZC+1DF2 '#3#$=?ND!KEIA7O>(#!# M'FPA#ZR01PD7*OI%,U&% J#ACW4DV!SZMJ+I(IK%#%$IF3*6Q* !R6U,U:8- M\5O* 3NE;#E6V)^YE.A1\ 3!BD9DZ,WJXC3>?NSZC:(UF>%!KZ6?X!UUQ5:8 M5ZEB,%L58GE#,4+$!H@8UQ%:7_0?VP,F)1%B)7*KEDQ 380\8>B@8'-XA%)F MG(-%M%U.0=^I4VH:X=Z M.2\5%1L%;"\-&8,EKCL!;"BS]81<)LC0 :#7AVO MR:S7,O]PJ8C8+HE7;\/H&:JD@=!@A(G?@K"416S5GN$-;"=BR*H1EV_ Y;CU MWF4T&[@MR$K9PCVK8N=E.>8)%/U2;RXV#!7Y/-!U !6JP4-?>Z#/1^A.]SKH M4'UOU]+W2OZ]HU2R6XHKMZ@H; M(MCNI+#?$)"'\"<"WJF,B UVZA["R 4+P#(:;;F@4Z[$_ MAB9Q+"D4P9S-%)(,,A"IB+W.M*G%Q[C1WPQ&I$U22KW&=L'.5] \*_RP4O@O MW3GC:T3=E&+/;XQ/T^C8]UK&AY2"3>R"79VC;=VD"-*KI,P/ZIDUF0WY)DPM2_X?"DU+AB5WA+ZB,0B/+W"_83;9S MXM27>2UFN&502CDG=CF_C.*UJF_]"V3NVY"9S=J0E<)-/&NY?,O.B*"ET TL M0:'Y0.4DT#&+@Y"US+M-2.-PK7M/UE/>55_6A<.[ZVM/T:K9*A<1Q+Z(:*^O MYM+ '3A!8Q0-9H'OM/134BXAB'WK:ZNOYE[6B,Q@9D%6RC*QR_(HI?%/%87F M3FGU?7=M["E:E6DIWB38QRD8L2X!WLUY3]&JG$L=)V_1<=MY2Q&@N"Y&MF?Z,6#Q']S19&0\GK7'>?3JYIVA5UN4: MP+6O =YZ(+M7Z=]7M"KG4OI=N_2_7HI%@-T:\UVG7ZM$@Q4)O'ZM$+L[7RL2 M)A;91QP)XKE.57Z.OWV:?RBZP*?C['M*[?D(GXZRSR;=,DS^]>F:BD642A2S M1PCIG/2A-XO\@TY^H_@J^R8RXTKQ)+M<,CIG0AO [X^R^ERO*6V,ITU>U!>S==-L M7\_G=;JFFZ1^56YIP?YS5U:;I&&GU?V\WE8T676--OD/%S,T^_K%A^Q^W;1?S"_/M\D]7=+FX_:F M8F?S \HJV]"BSLK"J.C=Q>P->AT3TC;H+/[,Z&-]=&RT7?E4EI_;D[>KBYG9 M1D1SFC8M1,(^'NB"YGF+Q.+XNP>='7RV#8^/OZ)'7>=99SXE-5V4^?^R5;.^ MF'DS8T7ODEW>?"@??Z5]A^P6+RWSNOMK//:VYLQ(=W53;OK&+()-5NP_DZ=^ M((X:(#+2 /<-L- NR,-2-^ B![LD096W\ 2/8SUP>X;V$(#,A:2TS=PGMMI MMV_@=I.U']UN:H*D22[/J_+1J%IKAM8>=//;M68SDA4M%9=-Q?Z;L7;-Y>+Z M?1"^7X:!P8Z6U^_>!F]NVC[(=;.FE<$&B.6>=9L4'JCQKJQ5 M@QR?Z%HIC= (GP@$>YPK!&<*WJ?%456W!M729X4*6-#TK#.IJ\,@EX: MV,1$Q8 ]J-.!MBGSX=(YGS\:0EP MD<(,$\_EK6+9"F//MX8N<$-)#D-)I@[EB_T"^^598[I'MX^B(AX+2QA7;0SM M[O>ZWB8IO9@QBM6T>J"SR__\A!SSOZKE PD60H)%D& Q$!C'"NO "DO+"CX' MO326'2->&A);GL41K:^)P[* ! LLB;T(68XI+&-(EQ$D6 P$QG'$/G#$UG+D M ]WNJG3-+LN,\LY(]_MG/;)G76FQIG( $BRPY>SK>+Z0P4)(EQ$D6&Q+'.;C MYR;7.4RN\XV3>]@>5+/LR+&PI"!L!EK/4V=/]B@Y#"$=1I!@,1 8-\7N88I= M[12_K>M=E\+%"687KVE9%/UOM\>L61MTL\W++Y3V%@=N;-DFH.*!UO/4U>[* M2=I'PI5; .DQA 2+(,'B$V/!$<$[$,'[(4309@9/"MRUA+R@C7)J7H $"R'! M(DBP& B,XXU_X(T/QYLG6J79?C-4?J']*R MYD]:-^W/1T8$!M]46=HJ3'OB[(JL.<$+)!.92,S01C"9&9!H(2A:!(H60Z'Q MS!@D/:37]&[Z2XFZY4;S57\832E-\M0=K,M\Q0C%6A4RH^ZKI&C48K VF*D[ M#2A:@!1Z('%]X7(I!'4:@:+%/9H]V@6>)(-8B?1J)0!)'C09*'E,JM6)% 2I M\2U T0(DB[$(>2)M0!5/4+08"HUGUR!Z(KWJV8F=9VVA<=5>TFQI42<=F>A3 M>TR5? 5-Y$L2#K(%E9^ .HS!$6+0-'B4^/!3_2@7"*]=,G7LK*"338U7N1E M/;+F0<5+4+0 %"U$"C&1^$)9*U)9V9:@NL4J*Y^,_>X8A$FD5R;'2A-AL1+J M$K\GU:$N82GG%5++6X"B!4@6-A%R/;$T >HT D6+H=!XH@SR)M+KFSPAZN^9Q%/7'4*.^QC7UQVLAG&MH7( MR,(;5$*DEPG%\3PN$Y\>6%G_(YZ461;Z$":O(5 1$!0M D6+H=!X:@Q"(-(K M@:?OQU"3PC^]VF3IRC:Q+Y9X @446VULNQ%K00I MBOYGK3:%';$%L6&6.$7 M6XY)7/5JPX.\AO7RVH3[,I1CBV4)C7B>*8HE^BBF+CA0M! 4+0)%BZ'0>'8, M,AK6RVC??'^&FBN0.M("%"W LN2'Y/)?".HT D6+3W:!)\'137!ZQ>Q[%G#U MKB=30I:#,,+B%1.HSQ 4+0)%B['B7K[C\> ),:AC6*^._9!"+I9%)O':=Z&/ MB']6T?9&]@ R")KDVP1- M?5775DXLJ)H)BA80A12(34N\"@!U&H&BQ2>[P#-@4#.)7LT\4:Y53_7I)WH5 M)C9"KO@,;J"P.T,.=ERQ@*0R]%U3O)*+5';$=,5RK<(,6YX_NJ*.GNO5BX'/ M+=>J!U;Q6*^/B*CSZ4.8O#A@'^R%?;(7]M%>4)UO?O0VAO9U'FQV[[.B-G)Z MQ^#-5RZ;QFK_AHS]25-NNQ?#X3TE ME_\ 4$L#!!0 ( (V"J%K9?>#GBPD '8L 8 >&PO=V]R:W-H965T M&ULM5I=;]LX%OTKA'\Z]TMDCXS_$BE()GLJB M$N>#E93K=Z.1R%:T).(M6]-*_;)DO"12G?+[D5AS2A;FIK(8P2A*1R7)J\'% MF;EVQR_.V$86>47O.!";LB3\^3TMV./Y(!YL+WS-[U=27QA=G*W)/9U1^7U] MQ]79J!UED9>T$CFK *?+\\%E_.XJ,3<8B__D]%'L' /MRIRQ'_KD9G$^B#0B M6M!,ZB&(^O= KVA1Z)$4CC^:00?M,_6-N\?;T3\:YY4S&QLHP'(-D*RLKE9(2CSJOY/GIJ)V+E! MC>._ 38WP.X-N.<&U-R C*,U,N/6-9'DXHRS1\"UM1I-'YBY,7W7ZX_?)E]N ;J:';[Z>;Z\ILZF7U3_SY_^/)M!FX_@JO+V6_@ MXZ?;WV=@"+[/KL&K7UZ#7T!>@6\KMA&D6HBSD51H])BCK'GR^_K)L.?)"'QF ME5P)\*%:T,7^_2/E1>L*W+KR'@8'_$SX6X#B-P!&,/'@N7KY[3@ ![4SB\QX MJ&>\+VH/7A&Q G>3*13!_!J^^"W605Z_![9IR(O/J'ESJ2,YE3@7X[^5< M2*Y"^W^^^:R?A_W/T_O]G5B3C)X/U(86E#_0P<6O_XK3Z-^^R3C18'M3@]NI MP:'1S=3D5<9*"EX53(C7/F_K(5(SA$Y&#Q=#%"%X-GK8=<-G-46MT1Z\I(67 M!%?NA3JC DI0$;6N21%_J>"K_81FTNE0I14>*#5ABJ;RNP2KR-3%^.XFRE< MFQ3US'X<6?:,#F8RDF6<;EU9Y")C&Y4Y@#H7*^7G4%)>JO5XH$U.\5)EY* ; MQDZH^ZSP3ISM.[$C >(#T;ZD7 >-)$_4#R]V'XSB[@Q[K*8]V*#%!H/8;N6* M-*%Y+$:]ZVZ9?8X3.TJYRO)+%36OZ;UT6LMA@S6W21O-I[)'Y]R M,L\+D_#?&-H(9_WXI%1_JM'V9\N2?1QF^\NLV1$JI=+\@:BJ"2&#G:/ M&8XF/= ML\9A:K415YBHY+IT&;+E<"-"V3]VF1/M[(T&LLHQRR9]/%K; DV/L"PV^A=D^?>T/5Q9!>?AVPG4=P# MSS)I?(!*%?ELNI)*ARZG!9%:@-**+O.>J74Y<9B:XFD?NLH,I.&C@TF1YJQ#CJ8O58H;@GVT++H##(.48WF;)JO5LH;;:%$FM= M(6VAY/4!N1LO=7UPK8;Q)(4]3EAB@_CO5/@W1O(=5>W!(),>R_NG&FU_>BRC MPD.,RC)*%P(L.2M!2>2&UW.@][L@A3I2@OGE&AFZ[!FGTVE7\OG,IE'44Q%" MR[(PS+)W&YZMB#@:M4N@0SA%#FJ/F2H >G>:I5H8IMH]V&JWJ9TEG\T24%4J MKC5N+VP/G4Y4==B%[3&#$>S+MI9U89AUC1I[UN# DG&@R &L&T>.],.EW:$; M,D$P/[M1+(?#,(??[7@ZWPCUJQ!U)2]RS>=O0*4RC:Z3=;+9EOA>;SU,'46J[+BN;E!W'-W6/=%H^]-C-0@*:Y#]G%^PZKY.D@LZEVT8;W>V;I>H MZV#93III!'DGR94AZ51)J^ZJ!]']K/<['?^PJMGWGCY1GN5UPA*Z^ZEDC=[. M?@<]2J;KG&L">WH_R&H8%"[..Y#+=<&>*6WPMBEW71!OVQ.YQ3B,H;,JGLI^ M&O<4DM=QE9U7:D[B7H]O&B#HQV=/3PJ))U,>T0( MLB($A47( ;EO$\"![.]ILX^GB;-1?-IEG/3E?BM*4%B4?%@N:58'T9-:H>J> M E6E4% ?FXYOS=!*E)@#'6L/2NCV2$/D:A,<=7M&'J,A3OLVC]4<**PYS(K4 M/N3'PO:(#)Q.4F>'^,0(&L.>="P>KCJ0PN(!'-ZGU>5CB7--)3GS*N4 ML*L/IE$R[9;J/K/)=-S3LL-61N!P-R'H M7]D"!XMX& T1@YX%VS20*3GMC! MEN0Q#&J@V6:]KA,J*6HQ]+%08]Q4]58U=^^;%>PA==CM:'F,TK0O!G=>PH>IWP+70$E9 MMSD5X&*SJ%6Y]J2D1&QX2Y_LN"83=JD?3[I:W6<4]2@;;.4!#K_%;U_M+7[Z<:;7]"K++ !QH8;4U=2Z;#!350,U.)IN]I!.*Z>4M2 MM^NUSGIY*8Y=<1$[S=NP#S\[1U:HX /=$O\\U&^NFE8U:=K6N?X(;?_EP-[O M+VYK8X^LB5PJ6B5#C[073D!MP" \%SH7\Q6KK^OT*&*D@7EVD#]OF1,;D_T ]I/C2_^ E!+ P04 " "-@JA:^(\#([8' M !-% & 'AL+W=O,C+=$VIR520U)VLK]^7Q4EV=TY>AO(?$DL MB76_>E72^=:Z+WZM5!"/>6;\16L=0G':[?IDK7+I.[90!D^6UN4RX-*MNKYP M2J8LE&?=0:_W2S>7VK0NS_G>S%V>VS)DVJB9$[[,<^F>KE1FMQ>M?JN^<:=7 MZT WNI?GA5RIN0H/Q6%ZUA__3JF,[S@7]JM?5[OP5% MLK#V"UU,THM6CQQ2F4H":9#XMU$CE66D"&[\6>EL-29)#Z2OL1FGO^*;3Q[TFN)I/3!YI4P/,BU MB?_E8Y6'/8%/KPD,*H$!^QT-L9?7,LC+WPM%I:*,?'"I+PSEMJ"CSX/!4 M0RY<7@WGD[GX?"-F=^/Y>'H_O)]\GHKA]%K,'VYOAW?_H6?SR:_3R MB^%H]/EA>C^9_BIFG_\Q&4W&\_-N@">DKYM45J^BU<$K5H_$K35A[<78I"K] M6KZ+")HP!G485X,W%=Y*UQ%'_;88] 8?W]!WU*3EB/4=_85I.7TI+]'L\Q@65])K M+^Q2S"@S)DCNZONU$MH$Y70N2B/+5 >5BL0"5\;'7]YF.I5T>ZF--(F6F? 0 M5^"6X"&=9"50*-;**6W$6FZ46"AE!$I02(F8Z&'LY5 M4CH=='5B_)BLI5DI :6Y]LQ_!Y6=^7A4VVA7KFNS8BW:^.#*)&JNS/Y>2H?D M9$_B3A76!0%5Q&:BWSO\G8T-7=!)IG"#O+EKG!/SPW]WQ$BY &:'[LC_3*20 M6EH;C U*I-HGF?4E:B(,'9@#(8G<*^X.(M8)F^L @,11I1'S5R%DQA?@;\V];5L'3[F MO9-L?5\0V/Y&4*!8<"PTKFNN?(HTTZ"ML5TK"6L9D($G9%^HQP(IH@Q2[G'* M/7.J\G59(D]+8 S1/RDB>7+Q1^KAU[;,4K)*.PM5!3)_E"8N!8PN,K17ZN\H M)/@3]"DD, :2OP]WTK7'!?V3,R^&L06>=^#?FYI0;$+1,!372&>^0$JJ<7;< MAA\9'C2^@@-8BUJXDA S.(ES[SW@6\42IQHP(!9;P@>649G&UA*) VH(]NQ@4NE:R(S:/*8U.&F\C SV9J4K*1'W M5LD>/LL;FMW'7D^1D U%[&S^@]5>E$&DELDM-,FA*/:)SZD_2UT-BO>BJHYX M\-Q$8U!!S@\I(9$EFWR^4D,*C A;AZ=W)M J5+]'9L0_N?R"6C>>4C&EQZ)? M5-.(FE\NE^CZBA2H%6! Y@W"<%Y5[95IN= 9#\0VG]\EFTXB.(J$^>Y%(2&C M&:IK#=Y7>_DU?YS:*%-6P1!C 89>I*6KYVT4XI0R:77$7*^,7B)-\&R7C)A2 M_V.T54.M\H*HWT(YI3.FI-:?BM(KT"3BW\12%8XH/,0^I7(57"7N6JQ-9J47 MF/JD1:97LEK?\%J5?#FDMSFJ14ZUC;:J.K>K M;.&98IN8%W$3:I:T!H0)[G3$, DE3^@X[1(>.JD&Y%U-.]9_VR(T#J,$I9+N M.X*!XD;QQ/$OC9/G YHWL@9%A?6,DPXF3I(A6PS).I4S0-6)61SA0X;[;LO+ M&Q\*/E9/^KHKHD/_'RF;5P?/'LP)X MIMG;W72A*0X6U&I+NSHOBXYK3.MF#/"KZ6:-I6ZM:#0>("B#%:V/,[I)$(&T MF>X+["I@6UYUX]#PZ@W5Y-=:LFYF,@:OW'4Q$5X2OM,S+W%_YZ57_>[>)QZ, MXA5_R&*>,2%^[6GN-M_*AO$3T>YX_-!V*]T*[XK@Q25$>YV3CRWAXL>K>(&Z M\0>CA0W!YOQSC=U9.3J Y_3R5U^0@>8+XN7_ %!+ P04 " "-@JA:"R3T].JDTK8^>/&,KGUH7SQK^JZTM?G0*M=7E6XW+TW9 MK)\?G!WX"Q_M?-'AA9,7SY9Z;FY-]\/R0PO?3L(JA:U,[6Q3J];,GA]8'/TP,_6K-VR6>%F$R;YA?\\K9X?G"* )G2Y!VNH.'/RMR8LL2% (Q?9'[PZ$ 59J;[LOO8K/]A!)]+7"]O2D?_ MJC4_>W9^H/+>=4TE+P,$E:WYK[X3.B0O/#K=\\)$7I@0W+P10?E*=_K%L[99 MJQ:?AM7P Z%*;P-PMD:FW'8MW+7P7O?BX^L?7W__P^MG)QTLAI=.Z/5;G9YF:G$XN[UGO/&!V M3NN=WX_9DUVH\9L7N]]$/7CBECHWSP] T)UI5^;@Q=__=G9U^O0>N"X"7!?W MK7X?Q>]_<7*LY%WUYN/[=^KF_?>?/E[??+I5/[W]] ]U\\/MI_?O7G^\59\6 M1MTTU5+7&Q#0%J3>@?ZL3-T;-6N;2G7K1KFF;W.XD3[F7*C?JF;-<#J5-P6-_);'RNYH,0R.:65 _!+HW) OS4+ MM#0KHZJF,*7J&M6[@+Y@"C8P$$:WUM$UA#\?PI][^(\#FM9%ZA9J#9OQ2Z#P MS4PMVZ;H\778 .7-(F?@%5BT=C/3MO .0)1'NB!@\%^%H*ENH3NTD$@->&F! M* $RP'MF19?PV-PM^:E&38T"0MJNY-5A27.7+W0]-X1IMVB @!:91T\L0O& MXY&L=::MB+:>2H*S0-$V_7Q!T,R =!.)]996E:[;L#"B ,N*UI$<.\3PJ6D NA ]X _J(IA'5*^')31UGG9 M%T:MP#0T/4$\%;DA8I3 ^]HAD8(J(?A>ES(PR97!!]<+FR^((H5U8'B O@@ M7A!N 0^)70[>!OJ"9=S'^6/U)M46QKKR6.]Y*1M8#,TB;=P><1ZI)XJWT8# M[L45AF)LSE'S(:("_O1D2G$51\ZD;&KX"*$:7N9=O#NYO?V0V/1:EYO.YB[8 MV7BEC9:7G6 ASF]@?F!Q#$8!"3"S< &LD.?3@#M$[Q2X9M:MD2.'S"T2,ES* M@B]Z?4=1*VCNV<.+IU_R9^ -=VTS]!^%@:"\0/B!FJ"I@%-+B GL!(YIEZ;K M05_0ED,@?831:W&,HBXW#F&+([REP.RW<_,@O+]G7]VQ#-@JL!W$TRQ3>Z?; M%ET(Z?; SWEGYKP!#.Y,67XU[)J@X749=R>??;_ 1QX'SA%KX?7I)A7KXR'- MEXWKCH((NWZY;-INA'VS$BI'40?;Q0+MX *:O2.,+5BJ,W"PN<8H(M4FMD8K M2]P[M _"7BAMAQ8N]+4#%TUV,%*D7Q:D@K09DO4(GC\"NNF5MB7:-E&EW4". ML(WB<"2D+@8L]RI??$Z9*3P;$,E8$D:0% U$!5M)_HP$IA7@\(MVHH020WB. M8RP&4EF/:9]*WGZI2@(D,G3D?Y"S:HNU<:-D%Q L(.4F)2(Z.R($L7IHZG8: M5V1R8OJ'EE]V9\?5$*6B_0_6_CXO/O0 7AO*S5_-T(,=!Z9VK9WVGY>SD?C> M:GV;VAED-_M,E"@)7@T%\ "SCJ(MCC<)89G5,>X!LU@FD6R! -FF(-Q)]H"L MD$$,[!?$)RM""\R:_H4D#ICM$IOH WM:X*3(WZW[?TUQ4)Y:Y=[M%$GH3C+=G:/O0IB/UA5*# UV=9VJ-(1!T3"EBOFE*L,L!GQ\XO?_:O+5:O+JS5OE-I!; M51S+W/P8OAYRL(J[W(#K!S"!R?]D@#RE'W!H6S2J;KH0W:8[H^^O.ZHOB"S7 MD=,8I9T]?*HVUI0@B/G" FS5MF6/81.%L^*T25MY*XQ9?@)+2<*&K$T#XZ_D MF%<&H"-I)43X7];F1G3%KD-],U;LS^MR-0".- M[&@OLS38COP=X=(2/9X8_3UE(D3!W($DF3H77\U(4H@W M\+$2[[G4L\-'EY8-/ !87WT]1C<8_5^>"'5US3! MV1,9Q," W^:,XG:,42B-4E&F!;6""+M(-\V-7;&\HQ$8AO?\#)5Y0!B()ZE% M5E2*AXLK7?9!?6=]A\K,[TI%2:K&/G"P6+4!K45O14)<;X&S+\^+V(8"##[6 M%FBWF$/;Y890O2LXK\($MBEMP5%,!W^X?"WV(A:>!;[#$L+'!Z#N@HWLM"5M MW@_Z."?:_X QY0WJ.;]TOZ5)?$ M>VI-CCS W-1(^*VV%.820"Y4C<3'^&KIOF;*CE+#>I]P[TL9((,#6V>HKD ^ M'&O0B/THSZ,$^']3O/M15\L [^Z[]Q4HQW#/[)TI MCF8&.S9S+5GO4/7^@,!<:IFDBQADQ5 ../(=:(9;D UL-KK$FCYD")LEAX#; M^P38UQH#%K=@B>8F!7H[GS*3$V<$.1A.>SL$4-B0=,<'35$>V$+R0L 25#U) MKK>68N6CJ-];>G!Y7&_+1R%#EJ#'(45D0RP?D2JQYP1EPZF)HB]-MIV(_QL$ MP/^B-(Q-W?]R"@4!CJULJ4.L'?C']=O@%FN)K\DOWI-SD[8BU0A$3,Y$ [:" MB$P5?6@3UKI+V$45HB@\;(.=&57#NO\;B4HT24A2[8V!C!820L8*=1F M'RM*8P^].RJF4&N70<88B]J.V$>)OGO62>@8+86OCHEM,76!G0$OY'K;7F[9 MY6CH!GXB8L]M$A0G-$C]LMGM_&+,UJ)FH/3YQ,,G1^+0D L,1@D[E^!ZXV:, M!ULQ=N1H'[%B"$)!#5WFN"@U^0Y4\J3"FIC"NMC?N1R/IJ!UBG!05D4\$EO/ M7F(S)-*6UPMPIO.@=IYQ M@_PW/C6.@/8&V=1SE@8(E6"3V0+4,O@^;X@K:<_2!S!S S9>+Q?HRV##^39Y MDX(W%_T23&"[F-P$AXVF>-ZTY)195-DPHXY"!D,FBVP(FE=X"\)DBZW\9IU8 MM4PF6#+!BV.NOA:QY&[^(*W4;J%FV#;B*N]L!CMP;P^85C<5./$9$+ 9%1T^ M&P .!R2DB17;54W:T3JR-75->8?82^[(GK1&,E64SV)+(CPVB4'&QF1@J]Q_ M0A;S]/SI[_[[:=&"%4J']=0[W8+\XJR=?PAG[O"?BW#E?<#=7[DZ4]^JJTOX MYT-*!77^&"Z=X_5/30<"=G9Z"I_Y7_\NFN26J_LD@H3C5D,#HY0[=%HXT'4U M^998?OGPVWU&N*/]PFI%WWK_W1'2%2-M1D@3LK@T(HRU2XS_>(P,G#Z\1X[G M<1;FT.CA[X(2 38\#8LLW>G1DD^4SK$K#F4/2X"(%8;$FPG 48F:9WP$T M\?D5#E, K%0 !%--0)T=?I(-Q,;/[J+5UT361\WLZ#=%UO+H MGQU?O_K7A7W9/3$?.T42)+ MHG?DI"_N(3,X4I#V+;],FD73C$G@LD*=,3. SYH:_@?1>PN(VS;O*Q%&&MTT M,K?%XXX()?BRN47K%+4UFF,@+FU*@W;FKB-MF(V9FQ"8I-4Z\BW"T:$5P!XI M.1 NG,JCJ$*P8%]2Z &I51O*S87Q7W!04]8JHO6CMJ;SU4^J7\=UV>[0@"B+ MC](LJT)(N?E!A.VQ)3$]B?J0//..*8<#*NXZ=T,*\-*!R'&5+B&M=/N+Z:@R:B6\#(74!'2NV=Q+5DY%TMK;L,WP MA8G)RQU$BKE;(!=W1(Q$%ZBLI6'>8U0+2N X3<$F8%10";NTFL.[M?JUURUF MP:C& B6%B;,68:UA"^6.E3?D_0$ 0,S'_$DH*68H_UF*V+#99-*(12*;# EF)G1&J MMY%KPXH LB)-+7U$ZL4GT(C8&9@"UK?XN>=F!VX,>CQ-0FK!*^9D?CER%[U! MSY84'W>(%4L?]G+\J+AZR:V,X3"X&#)'RI!:9XYNTTGZT?F$6%6'^(@M%$E5 M8I_BA&@\#3(ZG3%LF(7&070ZG[:J!??FPN1E"SNC4?ZA>4PZ]+0#>F&IV@W;AP-:#4V_$'1T MMB9A$&04?HHU;1(/ 22@L>,_;"/K?3!QKP;%([@%76:*3S: \PE0##;PE/V2 ME9-UN0;HXW%V//"8!'.PLJ]LABI&I7\&0\3YYL[:X0 L%ZL<@! PJJ2C65Z# M0C%U1QZ7!GJ^2S=*86F,^"XWIF NRRDGV68T/,[@C\$;M.HIQL4^*<>TI(^% M$=;[O0_ML<')S+$ 4IM+IH_C3:R*[MY9FF=A0"%8HD/2B@8<,UCX!W]7J9E)\>2H%I3/(4@,>31P, 'EV<)96PM A;^) ' RR* M#KA;#O=M2RZ/#T4,!'J\M?=:OB@N2H'NX]5(PIB$*,1XS$1L% 8%E&7&$73_ MM!W468K5T(Z& &C5@$(1*76Q$C.^LQZ43J_$LLD.U:.GPQ02Y:EHY;9Q M(:,3W6\\F1)K<."X48?IZ]J4*W-$]3@?K@Y4%,V@R,!8,V,9FZ@7E^AG0.3. ;U M++N\G.RZ>C81M=UF; +,H^SJ46HZ)E?PYL-PX;H(KBW-O!+-W#+HQ*YXS.1/ MY]57UMD_;OL\UBGM5,H&;J7]/E,R]0&L^+%DE'_&:?D&HON$^F>G62I2<.$L MN[B(S8%KVFI849>BM.]L>:^]]Q3LX(S12+WW%#Y20SR8"XT',8GK?1U;.1A- MXPE4LI[IC;4_V!HZ#M],)E?'#U6%=,46\W>4SQ)62YRAHQAO<*QJG/IDJFK( M2$"HM=#E++2RA1CP*50L>7IL]UF-,(%8F[N.CNLC@UP\U,2T*CBQF8ZD"$A MC6@,4.+>(?)Y4N/X_AZ^)4\9*J,<_=A2,VNQK%?EYT*U_0H7"TKT\\ M)*T=3/S)0C+"(> QKKLXV'@,'XPB.4SE1PVQV(S!UQ>Y*KD]Q6X%,VF.=^D M6?%@3AT%8I##C9*RJ'2I;NP]FKX+43EUE/9B?9G!3\[D0#5?QY A/0$IG1+8 M+RW$!F04N%@%%$->4I@O MJS5AM5E8;5]U)2WM<[E82E%DN*1>E8Z'SXRAL3G^M8/DUS%0@M@,\^D?AYIU M76'D*0>E)#=*W9*?C?!8%8+%G@%S'PH[U_ $<6KAD[F0Q!YCNU%B!-1]2#0D M*4KVW(-XTC=+L?]+!K:_/UF=9!>/+P;?'T\>_YYD]2([NX@1ZR0[?W3YU;Q) M4]FKBS1>2VN],_G\5<&PK\=I4B<1P\G*>G.+Q)@4+@1 M^;I)0]34 0P[0R9'C)#":@4.O M5_U>Z:?\PM/LX_B0?;0J*&1W)F\.KI\N M6=)/NTV;#GA)'Q=& YGQ ;@_:YK.?\$-PF_]O?@?4$L#!!0 ( (V"J%HQ M M-\&@L (8F 8 >&PO=V]R:W-H965T&ULU5KK;]LX M$O]7"&^Q< #6T?O1/( DV^X6:-.@R>[A/M(2;>LJBRXI)[OWH8U%#8M\V/'LH+C-B*O.LX#>2J&J]9O+Q MDN?BX6QB3]J!S]ER5>+ \?GIABWY+2]_W]Q(>#KNN*39FA)^>32P4B.<\*9$#@S_W_(KG.3(",;XV/"?= MDCC1_-UR?Z=U!UWF3/$KD?\K2\O5V22:D)0O6)67G\7#;[S1QT=^B"TTQPM-SU0EK*7UC)SD^E>" 2 MJ8$;_M"JZMD@7%;@IMR6$MYF,*\\O[SX<'%]]9;<_O;V[1VY^O3QYM/UV^N[ MV]/C$K@CS7'2<+JL.3E[.+GDHRC*E2)OBY2GP_G'(%4GFM.*=ND<9/B1R1EQ M;4H4K@N5QQPHN4B(7^N>$R$VE/RK]M( B!M!1DSDD[#R: ^^;U MJX>L7&40I<1V7J_1D1HN,_)[M]"N>+25+R4X>8R@%"7#V:^<<&9!".6YS@8% MCKCFB$+QP>F25>=U5-/] MS6W65II>RFU1M,U?MSM5K,Y&>Q75CZVKT=VN[;$$])*?@_% M!=BBS"I%^S9?WT2@^PGZ^L67QP?\>W=T9N M)-^P+-4F*) ;TM4^MN5?SZ>$+04%.^LN! J/#C+-<$=$I6"J.GI#<$LL]^3% M_O8JMR,#C=M!;0]4?UNGCN(5"6GD6<9S0+W(!EYW<#-Q)@J(300UYOOU;91L?I M8)BWPY048(G_'V_#1%1!"N@U, WAT-"WS0&+AG%,;L6B?, BH(N'X3VJ?9&" M\^2BYI> DQG>&'B!L>V!'9)WE2RRLI)0,!?9-_RAZ-"JAK/YOFL^@>M]0.=: MB1Q*T1JR[SVO/;!?,?(M<_W8)A_87$A6"OEH.,CN:@&UK-@0-G0]<@WP$@P,$78*>ZFD7^.7=>Z(>5P(Z@8(+IJ7>5,XPH. MD0FUM6R+/T ZR !_LD$6F'HA#0+_R!@(:.S;1P>EJ4.N=U(_H'[@&0->1+V@ MC^>M'<3Z#06PP7(*[0V47N22TG:SV"7+-1 ! MM#OGRZPH4-EA0V D,8@+(XG @$\M<.*+M 9].^M$&-O!J,PV> ETZ-!_%TV! M ;BD;9DW#I+^IZIKXFYAWAF9AL&1JK9:)BJ*.;G&OHKZ$C M^+ZJ5>TP65C[VHS<@OVO17E0)\"Z@0&,X!)>-4_[:]@HI[O9"BC50 Q8UQ)R9WLT:[X:@IVVA MY>G_OM3^W7^WDL1HO=?!L3WQ8BSU_BH!N#^YYK61:+]_1@>HAKY\Q:1\Q!WK M!#0*QUZB'YO51=J_.9/J"&T!7=30)/W8WE?HFI*/>/$_W\VNFK:WCDY,]ZML MHX@-X-PVDZ(+17. BJ<1M2+KR"2QJ.N8)#$T!K$Y!3J6(#"G0"9U7?!1C0XQ M-?!D58A<+!^)!Q)TB":@=MA+,W5\6,E@Y%C0"H4FTO&#P"#W: /7E,8ZC_ M=Q(:VH*M:]A:XA.4P2^*.*A[KT=$[;A'0U.;.K:Q- "2R.D!$/6'M+9CF,@+ M(W(##@DN$PS7<*AM&!?F1;%CJA<=H QB@Q*0VK7 1FG#RSJE,\"5#03N+0AX MIN^ &;DC=P#']P(^HZX?& &"TP+8'DP+J M6M[ >1P8Z2=AA7O0)]]XC'7/)5OR(1AKBJ8N45W(@@^4V2)K#ABWJQ#BMAA0 MVB/FA]%3B^;P8PST&05OA#/'ADDU%4K],Z!4#Z$&>0Z4[@QFA.C4//!,]-D! M4#8'!28Z.#-/!?VV\,M@S27H#$O=Z0\6,'A_J@"Z&GC'$H,H8"Z(L=R^@#V[\^ MC3VD=JTZYT+OR=D"CQNZ?8(>'C)YO55CMMP]!MO*'7?(5,=M(? $@&6R/G98 M,;F$%N>3[GBOC=>XV=0=I%!K\V#$'\# P.'R3 M,'6.=H2-J!^%(Z-QY'[GR>+4WN7N4=O;Y0XE(/)WSCS'YON6OS.&ITWUMANK M# X>7I$VT]MMMG\KENHCDB?]! LE7HWL.P)I M3D &IU&SIXX8,("27O0FI+8O0)XE7U8TW* 4%$K?C11*Y%FJ,_&\L9:^D/[K MZNN/'.AC-2-X!<51?ZV-$5QJ&(MAY&T%IQLU1VJ=W^=03^K[H#$Q33S783GD MXQ_IA+%?@ [7#L7HABUJ62YDBF4%91DJ-)@=M,O2"@OM^.ED. #,_6CHM17Z M67MO!)E-P\ LSC8P\QV( ;Q5P/SU VW851/C XCS[.NE ;0=7&6\:BXSS/HS M6&-?%=I-:%MYV]@JS-[?8#*=^SCDV/CVR H<4O]!13B*]BO^C.A;K3[R.JB_K:H)Z^_T *O6F:% M JD6,-6:A?Z$R/JKI_JA%!O]I=%G;^ M7U!+ P04 " "-@JA:R'!<(XL% !?#@ &0 'AL+W=O%7;Z^ZN0W*?_MZLC8% 4.]4"6%[/;_GS=OUQ4J;[S8C># M@4TR*J3MZXI*O%EH4TB'1[,Z=KDJ MZ=8(6Q>%-(_7E.O591 &ZX7/:IDY7AC,+BJYI#MR?U6W!D^#SDJJ"BJMTJ4P MM+@,KL+SZYCEOHG/K M_\6JD0U'@4AJZW31*B."0I7-53ZT==A2F Z?48A:AD9O)#[I MTF56O"]32G?U!XBA"R1:!W(='37X29J^&(4]$0VC\1%[HRZQD;Q_7BOFA4Q9>, MQ(TN*ED^BIP 2"MD"F0HZXQDB M9IL+*'"_T8J$2%L!*0L9A2 7]J%6%L7*B M1NN,*'7Y.I%E@L&0\YP$YIWME,O6>D^L,I5D(D&_6?]>&J5KBXDL:25SH8UP M9!" ]&.F*[YXEST!<:L+$DECR+!O0Z*2CSX O8#5HN#A!*'@WCI(.?G0AEP[ ME2NGR/8Y:[L?FZ"'B@U*UX652H=UEQE=+S,&T[2_4[),IDAYK?^1+VP%-$-B M)2T'5!EE*>7H'!07.@=SL<\3I.,R.$%L]O1;2^=;OVCD) M3[>\3C;WL/I%.[3^.;]G4;CU-'XS]K8^-B5?*9?!+;"!UL*(#P:U#B-1-*D# M40"O95"@50ZP2;3A:NC2=P1(3-ECRG=6YXI[GH*<+"@:DX'%B2G_-H\C,K_#BGKQH:X!#[XNOA\O76A7HDM*I M%9Y,2@X4^,(&J/)'U"#)Z]0GLAD#WDH=E3Z7))-FR?B_JZLJ)YX:E.RG"@#C MS9[=;)^Y%W%Z?X88]?@U.+>_'M;KZSZ6WU%"Q1PE/0SP;WY+1=029<<) 5EP M;3:(]]!I6&PO*Q[61Y+&GNX%,NJ'!]9&W?V>WU391-<@++AH&OO$G:<57X M?+VSDTW92QZ%9DI/MR8\[(U&$Q8^ZQ;#WCB>\M)D:RF>^LY.NZ5I/&FI9%&C M(,0G'%74:W)J]XE-2<>]*)R 2"Q@^@%#@I%RGEM.XDET*FZ;$0.AY35QV8Y; M/8B<@ZT$E?8F\5A\I@K\R<@XT)7GR_Z4J9^Z",.W..L9P[%O5W7\)OPI7;^% M/]'O@-T+QVN^_B^I$OYXAQ!P;&#? 7_G9!( M,=0< Y*SQ"PM?M02@#$KW=?35?/1L!%O/KW0G*4J>5M<0'78GXP# M89K/F>;!Z)O\WP!4B&!?!^H;5;/["#[IMR]B]02P,$% @ MC8*H6@+G>]?I @ 9@< !D !X;"]W;W)K&UL MW57;;MLP#/T5PAVZ#>CB2Y*M:), 3=NAQ5:T2W;!'E6;L87*HB?)3?OWH^0D MRX NR/->;)'B.3RD+6JT)/-@*T0'3[72=AQ5SC4G<6SS"FMA>]2@YIT%F5HX M-DT9V\:@* *H5G&6)._C6D@=34;!=V4<\&36BQ#FZ;\V=82O>L!2R1FTE:3"X&$=GZ)2[NU!E_) M/=&#-ZZ+<91X0:@P=YY!\.L1SU$I3\0R?JTXHTU*#]Q>K]D_AMJYEGMA\9S4 M#UFX:AP=1U#@0K3*S6AYA:MZAIXO)V7#$Y9=;,89\]8ZJE=@MFNIN[=X6O5A M"W"<_ .0K0!9T-TE"BHOA!.3D:$E&!_-;'X12@UH%B>U_RAS9WA7,LY-YE]O MSS]=W7Z^N)S-7\/EEV_77W^.8L?,?C_.5RS3CB7[!TL?;DB[RL*E+K#X&Q^S MHHVL;"UKFNTDO!&F!_WT"+(D&^[@ZV_*[ >^_AYEKJH\>:G,CF7P,HL_(">V M$3F.(SX!%LTC1I/#@_1]]/L9MEV(.YH_P!9MBT)J_XCX4[ M0Z41-=QJ.&N,5)!VG M>.CAP7&6):>>:YTEN-+3M^!H&]8VWO&J/^PE_!\KY8\DI_0DYU0W0C][8/KA MU$).=9[%5.R.T%>'8 MVR..RE5;2%TRAZ&VK*H0TN1^^2Z%1P@-QXE?Y]!/2()J35^.3 M+0F>47!ONE#VAR;Y.@K.NM7<86CN8(_F:IY:^S9XL%^#!\G_VF!-+QVR>&OV MU6C*,.%]B:UVW1C<>#>7R%DW._^$=S<0#YU2:@L*%PQ->A^&$9ANJG>&HR9, M4FX9S^6PK/@B1.,#>']!Y-:&3["Y6B>_ 5!+ P04 " "-@JA:E)-9WET* M 7(0 &0 'AL+W=OTX,S0M4B^6$MLS=F+WTFD2CYVD78 4)5%*,I=> MYSZT%D%@L2_//KL <[XRV6.^4*H07Y(XS2\ZBZ)8OCP]S:<+E)U&GG\IS'[K++SQ<%#9Q>GB_E7#VHXM/R+L/3:2TETHE*'G= MI_D\X;-6J[SQ6Y E$V,>Z>%M=-'IDD(J5M.")$C\>5*O51R3(*CQIY/9J;>D MAK]P_GIP5D MTXS3J9-S;>6$>^3TQ#N3%HMA+]LLM8+Z[8(H2U[F2SE5%QVD0:ZR)]6Y_.6G8-A]=4#- M?JUF_Y#T[XC'83E#7[2+$C?),C;/2HF'PDP?Q5V931> M;B+92H^I.*W,E4B M&+#CX?YBH<1KDRQE^OS+3Z,P.'N5BYQ6+DP@4FUA(SJ@FYF&#5S'_65_/RXR$$>SJ@C4!(2%BL+V9"H2S8=^_7#S90G"P.)8 MSY0XAI'/2F;YBQT1@=\0T3KXV<1(Q5@7SSOS^ET_#,7/N^.!W^]B_%[GCRK,4= MB;'?&^[L>@0Z\T?CG?$W:S$%1SFQ459;4>:H4II31)'P(+="QDQ28V_0'56D M1E/.>MYHT'/QQ1IMHM M68>C<."/^^O!335\<<7\NVF?!X50TLP\U?_&CDW*QP/A1,669LP^YEBA,AP- M_2'ZPSCF4F$K*VJ8JA"#U1.$<[T1RF;6:JKC[!FP/[*YLD_Q07_DC<]Z5138 MR?))ZEA2H2-&GI5%Z3POJ?@>\KTO'LI)KOXL0>(4,V)\N#L6X:C:L*W$MW4& M55<@75.!_XIF6\'/KA2U@:!V7UY._@6AY+U&*^$V !)=!70X34L,)>C$72UL M=A]4F($N !VOL(:\@&D81U>"TU3.G8E(RV1B2ZYSJNLP;8&K_4@/9%P4:0(* MM@7_5.&OED+I1L: B+8F^*XK>PN)*4&T;@'?PWNL1S DUP?_51L8!*W[_,_; M/]EP+DJW^D$-(ZEQON0P\%'U&3YMHO4Y5BUXW!*#75E@$<_QZ[[1ZN M[O-JIVH^4WX3#==_7YJ&-/A" J;M3#S7&N=H3*=J,ZLUZ MG$/ #:SD9]L?R?D\4W-RVV$L2]NFEKO>HL0+^FLZJSE]&9>Y:Y-[_F ;[O#: MDS9E#@2V,'VW0B'O(",X?0\$?CN9N AB&H'V$YI MSN]C_8(,G>%1<0]\K#$"##FNV=F=G(+ESIP&]3A7?=5 -HW5L)K;QILX2F6) M3BDFU!Z:LD#6/1$X./'4%Y5-=6Z5S%51Q-;F61G'Q,*DUPPB=FG!1T[C&&,/ M&$[+BMQDU: R- FX-@N^!1]MH%@AVE3"(F7I,K*E.G,)&OB]NA Y[\#11)>6 MO4O$TVIH85H9[2KZK$Z?2NF$SAISE:(J$JE-^+C#DW/D@T ?GELK#YZ-*O[@ M)*T(M]IB+=W%JU"N.Q6SS"2[ CCC)JCAB1)/H$C'ELX6KKJNK/,9B%NTZNS2 M7L*#@1]L)Q*F;= "U_4Z-G F3*QH=B;S!Z)L^G4DK/[6P;GL(\':R+7 M@'IU*Y6DT[B,L*:[NSFG!FMP,-<2&:G63*/=>7F=Y5Y%&1YA_D"JVWSB=(@L M&M;M2% GLBU#FR';%TC*.F75 3J1XBB@:40Y+JO[ $EI']F8AP91;!QOZ'Q2&^S":'F.6<^N,)9AV>(:9PW/$)*X-UN?;! 4 MZ)A)ZIU.Z&*41&$.TQ8)(^YLW IY#2;FNR'+P?[?;CP'0;=^MO"] MX@[YBL[.R"_8#ML*H)*PLFYTZ\[X_N%3W8F]-ZFKCABUWWVL"%MN M8=77*U^;>.5.W;\R[+??/E@2J:]-*"MN"?J?&?K5^#'?W*%:(6[Y"W$'E//* MM2,\\9L$,V;/HKI5";S1:- (0:_G!WVK!M0>]'=T"?O^N"L^6[\>]X;A[@U: M./8'H;BM>][CT>Z<7M?O#YJ*;=WV!-Y@.-[4ZVP-#>+*G1N+!F4T+B@I;Q#^ MUKNK;[]TLI YLL;S%0\YZFS[8H?TLBR_R=FL@,/B%OBVHO;CL?B=9'.[H7C6 MEFRU*4=B[)T%(=$.>*=Q0WJP-Z%;JC["65= *OKLM&^\ 6-O_I"KK=#O5U=; M+#0RJ&M\*JJO/"&UNF6E=E#36&PO=V]R:W-H965TGT5DR95DCNNO[[.R\1ER M(4FG_0*VO/OL[K,OVCM96_?)%T1!W)?:^-.D"*$Z'HU\6E I_=!69/ EMZZ4 M :]N-?*5(YE%I5*/IN/QP:B4RB2+DWCVSBU.;!VT,O3."5^7I72;<])V?9I, MDH>#]VI5!#X8+4XJN:(;"A^K=PYOHPXE4R49KZP1CO+3Y&QR?#YG^2CPNZ*U M[ST+CF1I[2=^N_'9]*3Z<_7EYMG\&9=>+.(-_N&\(YWQ=>HSW>KVER83T G8JZ2#*W_X-ZGPH/D#L@G',YN6+H^GD\ TD\YQBD\8@G PD MUC#W:C*<_O#C=[C<]^_5_/ [=%O'E&EXB^8KIS"NE-Z(K":&3 MI5N0A%3&! MC=8W Y%31DYJP2SYP-XC#,CQ^X:DVP]V/^-C1ZE=&16GDLUY;.D,74\P1?L< MNFI2J7CL:1GE8!?&E(OF4ND#7)>EK4WP,;J\UCI:\;NYK9R]4_XA2:JK%?+? M3NS@"1\R!*>6=9!+'8EI"1BTT7/<+3F-I=V>!1N8M!@+TU&;EI^_.8-@8TF& MJC-062Z4)#:FPYGVV.5BZT] M*-I:@]E8B9&5KQ?I_QC66TJI7)+KZK,+[&!W8)/_-K"SG>3VM$4!?]B,XW+Y M8HR, N]ZV4 %/HDYRHR'AUL90&MK5OOX7K:U6LE-K+:V]U*+,C4\X/#DK5;< M7YAV4DN3DHC78EMVCGA%88-[D_G62@Q@262V4:Q5*%K\IQR]_7"&?#5L*X]- M9GD;Z;1"-AUX)W7=-*S4V'?8B\;\C@\QE[)"9]ZCHP*AH_8.#KUP$WHN5MHB3V]!DD2N)$#R6$4PBI<&5J4MRF-J/N8G3B3 ?N46WL-KE$D)M@#AC;8B6$+3''9:.N;6 ,EY#;ZI=;W]WJNGSR\3 MNI?8_R(ICR8.%Z*QH<=3#2*<^&3LVO39[@$\3C.89!R+ \>Q<\.6\M:Z+L5P MS*M,H03(M\WP).V[UJ%1;RU%*:[B\LWEB)'8;*C=:;??GS5K[5:\^7& $;3B MU&O*H8HI\3H1KEFXFY=@J[CD+FW RAP?"_Q&(<<"^)Y;&QY>V$#WJV?Q#U!+ M P04 " "-@JA:T KQ0J<$ !E#0 &0 'AL+W=OAQDQI1GG8Y.,BR8 M;LL2!9W,I2J8H:5:='2ID*5.J<@[<10-.@7C(IB,W-ZMFHQD97(N\%:!KHJ" MJ>=+S.5R''2#9N..+S)C-SJ347 MQU;>"?S)<:DWGL%&,I/RP2Z^I>,@L@YACHFQ"(S^'O$*\]P"D1O_U)C!RJ15 MW'QNT+^XV"F6&=-X)?._>&JR<3 ,(,4YJW)S)Y=?L8ZG;_$2F6OW"TLO&T?F6&3D9)+4%::T.R#"]5I MDW-@]&# M[U*83,.U2#'=UN^0/RNGXL:IR_@@X'>FVM#KAA!'/5RX>'T)_8QT.8PS;L L# METSS! 3-=RZUAA)I)#.F$+B&1!9E93"%V3.D_)&G7"S6HK1I,H2EZVP28H^H M:%!!5,6,4.3D34 QJ32G'#"6N9\20#ZU1B8U:& MSW)R4% TVT:/UHX:(EU=J>54 M9:0,&OZI\:@-]R0RESE1L[5""6*437(IX3EGCC8I (M#2:'L&*E\$5(4DMC( M;U2:LF?-N^1:H)GK.2>XOQQ'I$(A5)KD=!/%^I@5LA*F=08?/PSCJ'?^;O_W MF4+/Z$XC[F^_1K%W&D;#X7HY#/M1!->OM-[VH%6'YRS<'+2-.7 2^%2B4Z!> MG=FATI6=)\JC BS*7#YC8Z\92YH/)K:B[L;G.^MFO77F]"7 M=*,+HG8T;+W8Z+960?]LI?T6.>3DNB//U!HFLV7&[I)Z= M,JHW>8KB,$D99JG27R+YO_B2=_=TK&ULQ5CK4QLW M$/]7-&Z3@<[5OH>-S7,&')+2*8$!TGZ6[]:V)KK35=+9T+^^N[HW.*23-M,O M^"3MKG9_^T0G6Z4_FS6 98^IS,SI8&UM?C0:F7@-*3=#E4.&)TNE4VYQJ5[?Z[$055HH,;C4S19IR_70!4FU/!\&@WK@3 MJ[6EC='927!T,29Z1_"[@*WI?#.R M9*'49UI<):<#GQ0"";$E"1Q_-C '*4D0JO%G)7/07$F,W>]:^GMG.]JRX ;F M2OXA$KL^'Y45.RW?<\K,3K;9,$S5*HP]GJN-&Y41&3KFW&D\% M\MFS^:?[AYOKRSMV_O$=^W!Y\^'N_/:7JSF[^OC^YN[Z_.'JYN/)R.)%1#Z* M*Z$7I=#P"T(C=JTRNS;L,DL@Z?./4,%&R[#6\B)\5> UUT,6!1X+_7#RBKRH ML3IR\J)OM_IHE]FEU/%NJ90_1R;G,9P.,$$,Z T,SM[^$!SXQZ_H/&YT'K\F M_5L]];K0PR'[!W+930Z:6Y&MF($5IJ0UC&N@Z$=Y">.&Q2K-5>9.U)+QC.$G MZ%P+ XPOL!JP[5K$:^3/.8H"AIP\BP673&1E;:$D%2AXPX7D"PG,KKFE'=AP M62!/@E5@54BNY1-;/.$QL'@M8,E4HUX"L7#U(N6?07M,:;;2JL@]O,4=)D2U M1N2M8EQ*%9,NZ"Q5Z!CP\BPA2FX,&$.D*-EIE\4P9 ]XXQP-Y=G3VQ]F83 ] M-E_1@.T18>@?SV_>7;O/X'C?/E(\0%%29VLUR*F'36L*':PQ)A8@U? MABJ+9>',LY1\/%7:BK\:F'G\ M9R&T$V9YMA*4002K-13\F(Q@;(T4)H93IY9:;6-DTEUE$K@3RQ];GC*#Z6[L MG-16OZJYL?B3UE6!:H2&-75TC/>>14-V'L=*4SC+)Z\+IA,H$M (ET5O+:G: M8*7IA!_IJR$G.-H*Q180\P*KC[ L41@;F;*44D13"+/&<[L%H#S5GQU()L

\SL" M?W<9(+B=#=U-UK M(NKR]&?,'GIFLA_9>.I-IS/Z"+PH\#%*GMG="/F1!:%W.)G01^1-PD/VH0-( MARP:>[,PPH\09<\"]K%&J279BSP_"O=[.X=1N[ZK+U]JE5+W0W^*C4@*5+X< MXD"7[* M4M"AAAC$QN71@DOJ-X;BO&Z?6$@=6>.?(EL(*2'9+]VYPY?F7SAS]37EOKM+ M7_KO'2J1+M!_M+G;F<^PL^MG5^@!G MP!6HE>8Y-B9"C;M_T-Q(0\AWAQ#7I&K.RA?N'T9FL!<_3R.V5P?%=RZ'WR4; M>V6TY[=_>LTMX+R&8P3.-=] VO@+<;][7I9W'G[*!)6V>QH7>A5\YH7AC$6S M3C3@+M;I*&)C"JU?.2;7"Z6" "D.6MM?AG&',IS-6LII6]/6.*DVJYGGXWW! M](4 ;!Z3B.*U-1#GK"KB,,!DTIP<8NL*T!$O9$R],6H;M&H\:WNMZ57["WR_ MATC5#/O;OZEL];/$42MIYD : '9DS?/@_\Y!_Y7Z\^7P[8?)7M!MR <'WNS@ MH+,QF6$W#U]Q!V(V#CJK\4%0 2]W(]>Y#./2GW8W?"_$^""5KLJAWE2L^"]' M+M43B;+M+% 6G7*@QD: 6BVP8126)EVGZJ?A_7#7H\&H\]2#@E;N08LF!*Q6 MY:M/L]N\F9V73T4M>?G@AFY8B8QZYQ)9_>%T,F"Z?,0J%U;E[N%HH2QJ[3[7 MP'$4)P(\7RIEZP5=T+PDGOT-4$L#!!0 ( (V"J%H2&Y@T)P< )45 9 M >&PO=V]R:W-H965TC_3$FT1E4B5I.+F_OH]YU"2Y=3Q;H'>8A\2BQ3YG->' M/$?G:^L^^ERI(#Z7A?$7@SR$ZG0\]FFN2NE'ME(&;Y;6E3)@Z%9C7SDE,]Y4 M%N-D,CD>EU*;P>4YS[UUE^>V#H4VZJT3OBY+Z9ZN56'7%X/IH)UXIU=YH(GQ MY7DE5^I>A8?JK<-HW*%DNE3&:VN$4\N+P=7T]'I.ZWG!!ZW6OOA$TL;^2%#4FS(6&]HR#6\E<9Y.6YLVOA:#70Z(%-Y=U03AL*RGUP>*NQ+UR^ MOGKS3GRX^OWA5MS=7MT_O+N]N_WC_?WY. "[3(U(\]U( MQ)-37\E470Q !*_:?G?!_ZUT1D/]!T,A(O@(G74COQ M*(M:">U%R)50GW40E=.I&@KK>$J6MC8!CS* 6W61B84"$5,%'F4B6 %R%4*" M6M[C^,"N2FI^$9PT?JFTRSHIZM"D1)U61&>%[6/"D8+ ME]I(DVI90 4?7$T( '9D#)1T<2T$:5/5P0^A9@;-\B,BR) MRFBS$LLM5RH?Y*+0(&0VC)X#676I_ZNBF[&?[+$+2ANL5"TPR02_OUQ:FR\7 M+YZ@^J=:LP(LA1UD?=B!O%!1ZW4.%\M'J0MZ.Q)_?K$2[J#3=#EW@&J@F_R2G>%!I;O2G6FV2L\GGK00R1)[< M*246SLI,%.I1%=#Q=_H54W$HWFST_%3; "@FK6=Z\177&.ECVI);=8KF7T$HX#0UK#VY3)"-%%^#Y? M1H+X,)F=\2FYM 7*+\YE5A74]S8@JB^Y#6&;#Y-?)OV)9)@D)WL#^;)^_Z3? M;T'>7Q')OK2\'LR>7:R MT^2O9#)0_H[)OR3#HWG2GY@,CR;SOV,RD,F_[V/#YZB,S5#E4"NQW%D<]-V. M^WQ/W&15.8ONAVLE0(&/O3(BPQ^7NS3O-V'%\@9@V%85J&URB=)R05VBL0)$ M,+$(2E'ZK6+=E&J7UB7Z+],5@+%1X:VYI)ZN7TFIY9(:":J_\JTJ/-J-VJ5G MBHZK*A1P-J,6@ZLGE:'%;KKE6+:7\2,(M3-9[^KGRYB,(78/&Y/6BHM:,ABP MB*U3LF#W [(VW6B%9BD6R!99!J\HS?F'QDD_ZJSF^I1;U-BVKU9.K;A!IIQ] M8\15O:H1STYV&U)1H=O*N4N2XL=D-$$'6A1T"%%JQ_.%[/L:,>Y_*2N56_$'00WAM0OQJULUV MWQROXJ>VS?+XP1+175%@"K7$ULGHYZ.!&ULG5=I<]LV$/TK&&4FT\ZXDBP[Q_B: M\97&T_B8V&T_0^1*0@,"# !:47]]WRXHFG9L->T7B2!WWUYO%\#!TH/0U^3P9>9#I1.683Z*=2!=BE)E1Y/Q^.VHTL8- MC@[DW4TX.O!-LL;135"QJ2H=5B=D_?)PL#U8O_ALYHO$+T9'![6>TRVEW^N; M@-6H0RE-12X:[U2@V>'@>'OO9)?E1> /0\O8>U8Z:2/#H)?JL#20.,'"56TX9QQ7)3;%/#50"\=G5Y?7E[<79Y?W=VJXZLS M=7I]=7=Q]>OYU>G%^>W!*,$$"XZ*%NXDPTU>@-M1E]ZE153GKJ3RL?X(KG7^ M3=;^G4PV E[J,%0[VUMJ,IZ\V8"WT\6[(W@[_R?>O><"SGB[S^-QS^S%6A=T M.$!31 KW-#AZ_6K[[7A_@[>[G;>[F]#_>W4VPVUO#]5&2 5IG6AN"G6C0W(4 MXL+4H&1:J./R7KM$,;T@=#P/1&C7]%1U=JO7K]Y/MM_M1Q43T'4H51U\V12P MK0/ 82-1J*+"U%()>E%;4GZF3(KJ[,.%BJN8J.JTYH0HM+4K95QAFY)4[6/Z MA;5@HZEK'W(<@6IM0E2 Q:-%W25B(.L.3"?EO-)E:=AO;56QT&%.XHM6!?HC M(/9&S&E.&KRG8'S), D3;RBA=J%U(;7\4B;*((*\4TBPJ22UR2?8HF\UYAV6 M!0*(>*EFC9T9:Y5OP@.4GUHSE[P^0$VE6/?:6#U%MHS+(U]F9Q3?X!6B1BZX M6B6L_ING2RB:BOT+!LYE&+1TL>AZ6M)Z1DCDE,+Z[>Y0W320@FOJNG/U.TXP MVO4,*U PXYB Z'U@R:X"6^+XRM_0(X#?6V QYE% M,K+AE3#(]VV6G4VZ)Z>6"_R8)WXN?6.18Q@(2X.8I@2U6 02AH35EB!ML*^Y MFPJ2\CKN#O;I94\X[:YH FL;QYQS[2XHO8FH"] .583H'#MWE. KH>AR85 > M+%?89U;L:A<-E<-^%RK41X'^E,WTTK2.6Z]G0LR&-[C,?0%/F%E2E"@%E[KH MP#ZHZ"OF7V2"HP."UR5Q=VN76QSOV?)W3O3@6B,Y*ZQTAKFT9/Q?\P1 : $$ MSXJ?]#+'NR&LMDB/:O>C?%FGWAH]-19],1LN,;O-%<)AR+!"1W6X0KID\>4:WO#8V9Q[1ZB:SNES6%2=A[F$CTHHWUO PLP"3>T 3L*E,(QV&P0383AISIHOU8F% T%>\3 M!75-S?S&-6%-DEG#%%.%U::*>6;[>]F5N^AR4M>1^=[&4&C'T4WIH;ZKA[UQ MB#/%',U]TYM[UPX;T4J]E?UFO/4X5PX](LE!X^@P-2ETHV1-9)EGK/318_4; M_USP*'2ZW?6/>WJG,B753RS/&9Z,]^^"F3:0D^7V_L^/:(AB82P9V6=9IR\L MU2DQZ^1>Q(50?S7EG"LQ?.[(.>I=#BK"082O0$Q,I#+?$[JWW2WK.%\N'L3S M%0T[]QPL5Y9F4!T/W[T9J)"O/7F1?"U7C:E/N+C(XX)X3+, OL^\3^L%&^CN MGD?_ %!+ P04 " "-@JA:PV*XO8D$ !O"@ &0 'AL+W=O[7]P"49+FU_=3V10+ W;/G++ +7*ZU^6X+9D<_2E79JZAP MKC[O]6Q:<"EL5]=L[5AD06G4O7B?O^D5PI91>/+L/9@QI>Z M<4I6_&#(-F4IS.,U*[V^B@;1=F$J\\+YA=[XLA8YS]C]5C\8S'H[E$R67%FI M*S*\O(J2P?GUR-L'@Z^2UW9O3%[)0NOO?G*7745]3X@5I\XC"/RM^(:5\D"@ M\<<&,]J%]([[XRWZ3T$[M"R$Y1NMOLG,%5?1:409+T6CW%2O/_-&S[''2[6R MX9?6K>W'LXC2QCI=;IS!H)15^R]^;/*PYW#:?\4AWCC$@7<;*+"\%4Z,+XU> MD_'60/.#(#5X@YRL_*;,G,%7"3\WGLVGR7SRZ>Z&'I+I_'XRG7V^>Z#DTW0R M^3*YG].WN_EG2FZ_)O?SR6Q.R?TM32>_P.4V./Q.\+^?)3?SNU_O9Y<]!TH> MN)=NPE^WX>-7P@_IBZY<86E299P]]^]!RDY/O-5S';\)^$68+@T''8K[\?$; M>,-=?H8!;_A_Y.?\I02U\46YKD?)5A**S;%8Q\(W&%T4U>D'26UH56 MZO%(KRM VV9A92;1VSI[KDG)1J:B VYIEPY1L*$CK1@TT8'8>%;@5(">1)NR M]/[=:1SW+W8083ZX^-!!.)DB<)6J)F-[3H?R [3,.&V,=)(M/30F+="D*,D- M,YJG@T\+O)\,:6V#J*("::U"^%<(=V!$(@=:CBR17M*P,^R?=,[B$=E"X$CZ M-9^*5)98V?WY3(^MPRKV8 MUW,2D P#V/NA*T&R[5*R,S004C6,_U1C3_^$61#YM!-KG/2#8?=D>P@"Y$'< M/=LM9#C5T.;S@IICIK*]*]C?%81.CUK8MOK@C<&HXW-:;RL,E-)4-Y7SC%*6 M*[%0_ \F*!"JM,.]BHX0=C?LU0L1;@%2+MAL5T==+&UJ>"M9E#Y@6]0'Q]W3 MYP)/N\.GA>=A?)3.RV'^INJEUM_;>P3@E.;AJ>/+$F3:]\!N=?>:2MI'Q)-Y M^Q0#HUSB("E>PK7?_7@A&R\ ;XOM7;;B0^P M>V.._P)02P,$% @ C8*H6GR5]^A6" ,1@ !D !X;"]W;W)K&ULU5EI;QNW%OTKA)H4,C"51IOM>@-LIT8+)*F1I4$_ M4AQ*XC-G."4Y5OQ^_3N7'$FCM6K0%GA?K.%RS[V\.^FKN;%/;B:E9U]S7;CK MULS[\J+;=6(F<^XZII0%5B;&YMQC:*==5UK)LT"4ZVX_34^[.5=%Z^8JS#W: MFRM3>:T*^6B9J_* MY;W4FH @QA\U9FO)D@B;WPOTAW!VG&7,G;PW^HO*_.RZ==YBF9SP2OL/9OZS MK,\S(CQAM M_V3SN[0U:3%3.F[PFA@2Y*N(O_UKKH4%PGNXAZ-<$_2!W9!2D M?,,]O[FR9LXL[08:?82C!FH(IPHRRD=OL:I YV_>_'3WZ:KK@43CKJBI[B)5 M?P_5@+TSA9\Y]E.1R6R=O@L)EF+T%V+<]0\"ON.VPP:]A/73_N@ WF!YK$' M&QPXUL6N-%YDXNV/??G??3 MP>4__KN2Z5B*(/LG:7.F#2_^=/LKUA\E:9JR#_+9Z&=53)FP,E.>3;A06OF7 MHSD/(] GX[E&#$.O[=*J0J@28YZ;JO G1X.=I0'L2P7!XTA U805R-0Q=_:T,7['3\^1T= KMED %)G=_ MW7GN*VLE)" (2KH04YMB^H,G*Z^D/\+427^8LK??0+OX/3U-AKW3+<4=K8?% MQ*]%[=IG,=H21)=D]R8O>?'"<%@))V2J\(9Q=A\=\G9JI0'IV]&4EI9&&X&\C@Z6\Q/@+"JEC#]Q.#;OCQ5/"WG,R.91]ZYP1 M*HP22E@\0^%"?K*<*C!#K5\QK:'7V-U.&\KIL$\[A;?F6672,?0EK,TA$UJ$ M?6D!&1'YA4]!/>4>:MV(=7+35\-1)T6%U9K\MBG.*MW44CS4N&OZ:(])!K_, M9G^->7\?\Y >WP*P9A:-;J:2[+1RG+TR1F]==\!Z34FW4O*=L:AF '#(*[!( MTV56^\%00VXA;"7)Y>$J#G[H&4R+5?E'Q75"XT:($(_>V256ZTXL(=NWU4G8 MQ#5 "M(+]58!)X$C*\2;H1I2*@J;9VBQB"&Y)X_T$PEAHKC#)M8DS./;C+X'?V6NG(L[8S2UTFP'8'!-%A!\.32PH%UB"Q2ZI^A M)=$%1(3)N-(OS*F\U)(Y*2I*$.89YZ06L9&9 VR[-L['7Q\^+#TJ2-?KI.EK M1OZMH"U:3\)"$D3A4)& SJ*%>5EJ)?@8'-%<3U41XV9K.L3+08]AXY4KC"6W MM*5IZCU6PY]B2O%(NHF20SF]SMGH=;+,5+O%^391B#/46@1@4LZ:!/V%!/TH MP;K&UF@W_92Z*:-5QJD(^E ^J'!H"0LB=]%IE:D;,:+/45^1? 32DJ:"@(X8 M-G8"=(@'E%)[R!;+ /_W]7XHAI=^B0&H*H:U\*" 3B4"M MPE$7Q6_!:+O0>BHO(7DC,Q)6'G,='3SDD*!/8HHT9/F\:#9 !Z-M3WF#;CQN MU*Z^ N*ZC).'*PGF"=@%V\ZYA3$H,X=".Y>4G9M$?#)1='<-=1<$!=4@&@CD M(Z0A7.C9^ZTY6%'H*J.TEJ,#8X:*#5B0/U@E(O_:JM@:>CXAZ:RQS]J>UPKW M^+B0\R?2 R95\0Q .F\\348]@AI7 3_!D"H\I75:Q(G$$QM7+S^,N7B"V+_ MJAFT%BO*+B5:V$A!9JRNER1&KQ6D7YCU."^$M(7Q#-#81PD4/C6 Z\=82],8 M:AMH$_45?\4,$1>5NPVHI7,1K=?!9:A&ZZ"%VK[FK3>>//HL,]E[0-&+&T=[+@**P)2"+W:#7#.@-. MB:<*+5]H7C,I-+6^ ;?RSO-8@GGV3"C1&3C\/#@E,V.MIG5$;#4NJP,IE/0, M+:E$YLBJ*"92 V7$J((C<4BR*9(-M"NAU?%+$*4.S'COJCSJ/8X"/Z$6(D,K M[KP2S%5CIR"#I3YJD6EJ8[:%T3IV+OIE9&>@!X>W^!CYL6*]SJ/I,Y%Y *GH]<+C%T""F#Q M6-JDFA8;"M_/8KUJ5%2Q0LT,W;FK:R,F#_7%4'!LZV0H@73QBHZ-2Q82@ N] MI: +GF]0<'K#A-U5#C&,1 $9Q^ 2"!ZB MGSWREYA ,16ONN&9:'_^(&?,8WJ*"*O[2+G$BDJ.V7#]_HX: QI.]RZMS=Q] M\W/3[^@SZ/F0#/L&13T?0[DDZFV\%87'H;:5E*II#_Y0"T"OCB>-RWHO.3\; MT>;5A;V?C)"8,76V/76^/?7C]KM4O31(MY9&YTF/'JV"9@XJ<$-MKQ;/1#72 MKN?$;N,9%S>0:7BLIB0.?<07W>7L\CW\-CX#K[;'Q_1WH.*),C4<1]'Q,.,R[UU?^KU'71J^9H=/@1@_>5$\- MY61.09D[@[<2=.[ZYO?Y_=?/\SF[??AR<_]U]G3_\/5RZ,"9W@_CBLM-X#)^ M@\N$?=&Y2RW[G"2Q.GR'PV6QDA4)&.?2"R7W\Y'8^CB]>O_8O1Q4?DLDO9DU#2L?N')S;7 MJJ1:M.P^CP=]QMDGH?B:&\%B;0IMN*_4+O,YZE68FB%(\H3-15P:\8>THL^* MTMB20R-HO$YEG&X9Q$FCA-[Q&+9 #KUM>8Y.+FR''5N4%MZT=DN%FVJSL6JQ M89G@L$(O84)1FT\KI>B'B & UD%;F:^8"'Z4WKW6><*.U%2HA)BVNFW)?S*0 MQ3V(U2H,*)BH$9A[LB^0,7Z5<&0Z=KWM5GK?5MK5-K&ET5E7<->?M+TG]N@$ M,#OF-FUM+XR,O0<.1I-H$ &IE(*X/L!^\2< F-@%-*/LX\F?>"9F%DX!MMN" MSH!< C\6T)MT@TFMY4R\H ]9@5TOF?* \)[<&_-".JYV;>L3;\'A(U (O^(Q M\BSA.73UJ4G'$9/,UK2OS1VPIXYCES(GZN#73F 8R5R16W2VP)G:UUY7/*:D M+_TMM $JX*QE)6PU(6PH.I3('8\E2D4*NRV43(_AJEV9/JUC-#C4C?!)5O@ M9?R;,+;*;\87Q'1#IR$/+9 ]L\*6-'B6FQ7JA-$(]B:\@?YK.GACX7CK*' M#$;-^H"\S4MB26V%-5-[#5'J'QF:Z7X0OLP8*D+)S/Y P:G ML@"SO%PB8J7Q&5*IM1UARLLRIWJEXMJ-,[=(K ::NAFV)Z7O9O,;-IO?LB== MR)B=1H"&IMIO6UJ[K0"<$/,:,';*&B;)!'Z12TG6>Q\C'2M(3?Q4E%"6@U8: M!NMDYGDM.98^VZJ,;C?J#$#D+)A7R.\+?BD,<:VS9E<:[2L9$HG\C_=EAOTU MW)0(JF;8VN!I8V!.;8TEFH)@-44%.>VC+?(5'L$8!-(DAP4WR%#2,BA%X"2Y MDM:C&,314P,?Z 06.>LY539M6[GE.K0 Y+1LO1C\LL]E-;=W7?^>,YJPM+8V MA;:@RJBEOAT(P%)!W2DK[ MP-5IZF>YS@\-(:)'#B567/7K#M3WT\2JJAORC08S4XGS\0J#SYX!H#-Z\*S" M'9P\.!I,VL:-WCTV!V0;&#T_V,$!"I,[/LH%*-E&\:UR?@K&@3@N8&LH4\YM?$? M6G8;J]KBH<&W_N3QF/-H-/-79^ ?KM"JVRQ_+56I*&%![/:@$;X;+-J 0[\6 M.?-7#AZM^>N/@75UDO0P&%=JLW9'[- _Z "XH5_;P;Z;BV'G1@G)N_+W9C1[ M(GSA[O7PF;J2&#>56((T&IP<]9@)=V5AX73A[Z<6VJ%2 M_&,J4%Z&#N#]4FM7+TA &ULK51M;YLP$/XK%JNF5EIK M B3;,D!JDE6KM$Y1LVZ?';@$JV SVX3VW\\OA*45B:9I7X+O?,]S]UQ\%[=< M/,H"0*&GJF0R\0JEZBG&,BN@(O**U\#TS8:+BBAMBBV6M0"26U!5XL#W)[@B ME'EI;'U+D<:\425EL!1(-E5%Q/,,2MXFWLC;.^[IME#&@=.X)EM8@7JHET); MN&?):05,4LZ0@$WB78^F\\C$VX ?%%IY<$9&R9KS1V/MU^@ MTS,V?!DOI?U%K8L=CSV4-5+QJ@/K"BK*W)<\=7TX (R. 8(.$+P&1$< 80<( MK5!7F96U((JDL> M$B9:LYF#[8U%:S64F7]QI82^I1JGTB5Y1CN)EB#LBV 9 MH 6569 M*B3ZS'+(7^*QKKDO/-@7/@M.$MX1<87"T3L4^,%XH)[YW\.C$^6$?1]#RQ?^ M2Q^'VN7HHF$Z,[M369,,$D\/IP2Q R]]^V8T\3\-:?U/9"^41[WRZ!1[^DVO MFEN6\0K0^5S2R] /@QCO#F4,17T,^R!7'CYX[!6(K=T! M$F6\8OU&PO=V]R:W-H965TX_/=>1+W KYK$H C5XJQE7BE5K72]]760D55G>B!F[>Y$)66)NI+'Q52\#$ M)57,#X-@[E>8(A MCANF=Z+]!GT],\O+!%/N%[5=;/310UFCM*CZ9&-04=X]\4M_#B<)AG,^(>P3 M0N?=;>0L/V.-TUB*%DD;;6AVX$IUV4:.! M#UC>H6AR@\(@G(WPHJ'CM'37<, 38+]['9RJHU61-3Z_T/N=,>! M.68*1L1F@]ALE/-=\-LKY,:A;\G-![GY5:?V!-+<(GS!;9SYEMMB<%M]RP])\+$#: /,^%T(?)W:#X?.3_@%02P,$% @ MC8*H6BN-"^\W( ('4 !D !X;"]W;W)K&UL M[3UI<]O(E7^ERSM)R540+5*G[1E7R;(]J\W85BP[V7QLDDVR9T" @P9TS*_? M=_4!$(2LB;.I9/>++1+H[M?OOKKY_6U9_>)6QM3J;IT7[HO'CVS,U6 M9JW=J-R8 IXLRFJM:_A8+9^Y367TG :M\V>3@X.39VMMBR>OOJ?OKJI7WY=- MG=O"7%7*->NUKNY?F[R\_>')^(G_XI-=KFK\XMFK[S=Z::Y-_65S5<&G9V&6 MN5V;PMFR4)59_/#D?/SB]>0 !] ;?['FUB5_*]S*M"Q_P0^7\Q^>'"!$)C>S M&J?0\-^-N3!YCC,!'+_*I$_"FC@P_=O/_HXV#YN9:F?VIO/U/(QLZQOEF9>[H7W7+[YX>/%&SQM7E6@8#!&M;\/_Z3A"1##C; M-6 B R8$-R]$4+[1M7[U?57>J@K?AMGP#]HJC0;@;(%4N:XK>&IA7/WJ^O+' M#Y?O+B_./WQ6YQ<7'[]\^'SYX4=U]?&GRXO+M]=J[ZK,[ MS63NUSSW9,?N/KV]?OOA\_GGRX\?U/F'-^KZR_OWYY_^ MAL\>P-"+/KSPLD?]RZ*@O7 ;/3,_/ %)_?$_QB<'+P-\'[.^83GU>&66+VE1VK9I"-W-;F[F:E4#H MPO%?#A:<:_QZ80M=S*S.E8/A!F2Z=C!ZEC? %FIE*F,+M=(W1DV-*13@9*,K M>#*]5U=O@ !EWN"B+E.7Q6RD]FI8_(__<3:9'+R\*-<;7=S3I_'+IVK35*[1 M1:WJ4N%K59,;IW0Q!PVR;'("GG:##Z_-K*EL;>6-MW>SE2Z61L&D:^M([^S) M.M=O+_P:F8!NBR7-8@M75\V,9Y9E_]SH"I"3WZM/9E-6M8*I4(FH\<'^GVFQ M\ZJVL]S %PC-IP""V. :9RJK: M$E@7#>!I 3P&N[\WJ'41Q,?0PZW*)I_CJN@K(%5@S,]-P;:8N L72DC]P(3( M_LCZN"70&(#\E-UQKD07C$]?.G7.(K M@7\*-,&]*8/62;T!=*ZG@!*Q+T<9 MP)'#@P KZ ":Q4RK!CEFMK[_QLI< MT.X2Q8JZ<*U_ ;X+D")C:0?._D8L(RHBO5B !A(%A6()"^AUX'9XWXBHYU9/ M;4[&.:/W(^'Q3=@<[H1T;^\@I7D9Y#$O2#OURBYX*G-CBD8V@]H31,*I>5-Y MV\^#"*6D0$?JVBX+NP T 601&8Q2]S@5ZME>H$ S5,+D[,Z1D,O\<]4X RH; M]G_#I-I4:$YJUAE(K@U1B30(N'#%TD[!]V#,96R[;G3>>-3>P%AZ@WP-6-?8 M&PV?LQ9%UWINV-70^;TXBZ]LS>?SUUTSXCS(K,C(+G1 M*$G3W"ZUN)(06 #FFQ1MKR6D+G3+ %SPRM";:+O;+@, 8FQ/AHI,YG M=4/> EO>&1G N066K[P*+%U71- T\PA$)7Y?(1L8$A2']J;/M&T["^0=!B[: ME([X9$B;G01M=C*H@SZ960[X)J;VQ+@"9J_4%3LDYR0P0TKNFRP0G>)U0-.& M7O..D1=E5[FL;]%G1%87Z#9) M^#1$EM- EM-!K)U[+^%3(IZ[2?#HR53X+LI_M,2":E;JH)*; A0O>DNB=L&G M\EI7]A]>#5XH( S<0S^.")'G_ @1B)I%C2?[:\PA!/WZ)2RT#5[6CH#Z7JC+ M6N/H[R:GHP.UAJE\:/7=Y##]AHC^7E>S54@XL$;H\1.!LK@ET%[Y_3"$$0OH MUWP-)A)CXQJPT(;BS@Y::$8T#Y7LG9W[HBSV/18;0#G)L01X=XQ!O1 M$A>RQ:9!K)+%5"L+1@7(?4\FDY_QS&B9"!BRIRU4@C4#QK:@3>>9#S;O(/;X MC0,U'(_[*:>8YA(=0A.3\8,8?>O5IMA^>7HO7B?+@BB9=>GJGIFGAJ&^70&* M]8VV.3X=J8];;TK2H./5;-.$F0'ALP7Q#.4"$CZ(1&>'H@RT!<)I@!$-EX^$ M(%@W&PPZ@:ZN;"H,PVY7$&OV;CW F#B;,!+6"MZ AXC7;C:P.L:)$"!Z*)(- M$A>Y2 ;D"EW\(OJJXK16Z3,:3.?(&81[LKK@7WC"R53"?VS#:S-;%?97=)X] M!XR9ZZI_%A'MUO)9SR01F*^9T6^C92-X MC#07\!SH=ASC W6)"RD<)%9% M'SX="7*8S)^PN,?K81NOK0Q +W/ OAF.LC"XW+J$82X)HOS&/'1Y/6Y\G! M ;BNSM"$B)4YG*G/Z$P]&$PFP)YDQ\]/6I_'XX,!WAT?Q$K>P2"O?0!9O.1X=>\G"+F? M8ORDKE<@*4,,_,"L6/^9J<)P&(]L Z$3"I]UM-5&],+>0Q5PS_9E2427:53#"*R#>TY%Z8W/:T0,;;ISW MRK_%]C9YPY9T RH=+$9( %#B R%"-G2Q7!55=YJM(6O:7G0O EI79'_O!2-K M4Z_*^=,,6!3S?I0QU"[5R.0E,QC!&P8%9?<]1$,J=YP4H,^"U]P[Z'4)_X6,T[OSZ]>AZ&C!NP(&Z!WV M94/ZW(\[O_X2AGTH1[3\_L'SS ON9WV'5/M<;D#H3H\.GKY0E^M-!=J;G7@@ M<'P3F#4FPV%3'_ UV=21; K@#/!=?_%K'NT?'(8UKT/5BFS,^*643' C: 4K ML\(N#.! &>!?>RO*#<#0RV5E.+?6@FKONIG6M!G8_3[MI_,VL7HHIS' M_& 4IE"45RPQ)PE,95**UQ01PWXCUDHIU4F9R<,L#YGFNY) M_H7R&>J7 B,I[51<%A?R2X^4?*&DZ)< !M;1V%'=LP MCE2;UT":UH3;GFH(1I!ELV2+M2BQ!$'X(Z-9FXU[ :1[?G+Z_*6ZI(@LS33+ MG@C)&0<\@O%,ZF8!.0_, L: M^US?58+\CVD5:T"3?].56H3%KI7*>7?3ST.J D+V4"2X 456-H3?J7 YD0X@ M)NN>1<$GQUPD/P,#LJ9,8)*@H,:<&==K\ OA+>EE 2(ZKHGOY/T1=G]TM6G( MI>X8E+7[+U@ )>FU+7P=98+":/1LM6-R#M7)^*">XB@]>NL4*N@[%M<#S.9=S:SIRW+(/<]<-1BAZ\F /EMC'1PJ, M9K4T3\/X'>M* HF&"!N"N)A-:BUT5:$!)LW8\A*\*Q"Z%X,SH"P/#:LFV_": MD"KVZ/$,"V"D<: AG8XHJ[9(&Q=*5@'& E3>ITA<<^^HD+JM M>GN5/1(Y,45M2R2KL]GGZ#+:HV!]AGR@MD7RTH %X7\MPP-V!8A:5W;:/,QG M'?:]UOHZU3-(;K;AR%$AZR6%/AU96QR!) !@4D>OL:$,=8@#YCYUAGLGW@.T M0OS5TE\8BTLYJ\;FM WU(;E$)WH ,F5&RU&F9GG9S"6/BQ4'JP&$PM1XL@3' M4 K._/7R^BW!R?&2V_9&-'F2L\IN=DBC3@(9YNUL0%\%MF_-*AB8FJ4M"K$Y MH>4MT;2X],)6KN:.K:B84L'\6I%A$E,_/8?-_R\FCQ:3-^\NE;N'R'3-OLS% M7\+'O7BVX ),/X )1)8F.(_II^QJS\M6<8N7X.]@!5R MJ6O5PFR%F!=NY33"ORW/='&+U,8NV,KL#G,RM0(*E-BGFZ-.29SM2,^V'NHG MK8"M\1MD)JQL<$D#<$M[Y0)"PF!RV@=M7,4.$S(#!M68M-]0[P9% M_P 7*BS?'>!C^ZI<5J"L 4NWE %,5MZR]I]C,ZP\?PAJZR>\XV@B5H/6R!88 MNC+S20*,.IY;=>F?F_D2I0;\=NXNI=X:[T+[("T9\%\RP'>JHC&)VP& /F"S M+6K%15.1!X+$;LA>M;-A.G231JD M8' Q$UO-FR07KV5CQ=]KM?!PSCPF73P G CJ6.ZY69!!E^04KZ.!^";T+(%\=C3)U$^TRDOV&V\M]@[;NF>MH@ON2'UL?Y'*ZZ.J M^CR:(XKK[HY"8IE26A4VZY404 MR#<%W<;$D*A^U$HM)UN&"S =)I] M6VE[@6\/R\%/0=QE-[+2%K=Y.^C]G*C_PXXI3K:@?NS,UBW&)ZW?W_.=S(Y5 MOKFT>NXJ$+#F\MX!MH(*,1YG%CL)STX"V3$NJ*[/FXY!#)QNX'9^=B"GJ%:#A#&W+O&^-'70S";]Q J)WP8P:!/JE M@[LI\;FE?@3VK5K:C?H&V\QMY>"K34Z:Q&"TIXUW9X_O,*>W^M\[%H";8%)_ M+&9M %UTW"O:&)^]W56*ZDDUW.YB[ETA0WIPE&PX9O#]D9TDSG/Q^))X#PC: M8&(TGN8:#Q_"N@2Q77+_V]_(9_ZDUYNO2I+^'?.J_J=#R=,N3A?VSLSW%P9K M<4LIHW?4PC<(&B3/*J=G4S<3N.5'D%INGJG*>YUCM0:BE_L-NZ?;ZP38;_6" M^FY8VKC\A);8A_/D8/ &V5%/JW8$4%B0Y-H[=)%767OS1, NJ!9" U=G*E8, M%)%X*P3FF'.!LXX[DR7;8W6@\DN3'(0>B ?$-IZ"40,'$4"MAR<3,V;4 N M=)V0B[)7D7G"8<1VIJ[^OQ%$196$*-4^].A7M]&YPBQ?V)%":?9^K!1!T?- MP11L]2ED]/^HH-S0T37O5X1#VU%3^,R=Z!938"]<8'*]K2^W]')4="T[$7?/ M)1Q_B)8.#?3!'/W)"B4#N<\'13YP$V.+5& P?!-_7,Q?+X!_QWYCS&8"4YAX M78<(];T_LYYD?Q-56,QW5WF[34>HG2(<%/$1C437LY6X;R-IR^H%JNZ@($4U MO%;TYYU>!P*V>BIEMAFX;<--7O&$YGCX!.5V2]W7>">_<\YVSB"^U?4:=P8F MDVU#MPR@(+2PVCP"=HK;-I&F5(]?>:]%QE)+I'N9EO<83?36(HL)@;R"K/7_RS#A'X;SZ&O?MO3L;J#^KD M&/ZY2K&@#I_#5X?X/3?VCP\.X&_^UX]%4U%Q1818T-\1T"X"H?=T1^<[0-.= M3/Y )#\^_<,NXT"G,N-LR;E//A^UYDV;SJ9ILSAUWU'4:QA'!O%Y%CH?Z>4? M@Q#!;L(50T.Z*!Y+'@\?)>Y:ZX=/;CYR0@YCXE\4E\7S*G/Y>_EB<6X/8!]]NG:'P121!4,T' M0BAQPI%-"'60DCY+B\1@MTKJ\#S8WWHRJQ,O[P9EQBP6>"F@7'QQ"1NWU:Q9 M"S-2![.<=9>N7X02#.S2HLJ,TIJ<[\IX4>HW-7>U7!+2(6Z"8.)6Z]);U]I: M (O=_K!K?+5]WP;$H56H&\R-_X#]RN%P7E#)5)]V/HU-A8@XKYRNEE/[M@BR M)/[ZNI&H$7R-V6J_V4CX*,YBGY_8QBEA+;@KHO$B<_D#.B,FFZY M\R<^(W'@5E_LED_ZKGR[%9U0]EL8A59J7,^WW?6W"WY-!H)Q'6\PV]6S0+PJ M5=G8GEJOFJXS4)=+@BE[2,A3-]8F%URE@DUD)Z'RUQABM@.7>; AK(@& ]'$ M:1DJ2ULG&P&]CR=JDE.^?BM[0')<5:W>>LNP +6Y7T MZL-PB9UG4CEYC"EN*SYOR(AO':$?1"O';6FBLETO^KHH3KWN05(,= .ZY#() M\2Y06'/#M)?3_4ZN"*C3R%M\0:V6,!8/?M/EDOZ2E-JWWRTJA#7>:(@R,H>M ML@O*-D.4!B\E%QPE%\^1O^,O=[%AJ=SK3&FW1=4GCSK9NMFL:H24/C_B$1J< M@);ZC[LDIR6_IW.=.H^AV)9D!(V66&)0,KAMZC^?)FO%;@@ZIIZAXT;)% >: M'C426+-,C-3V^0ADV$QY,L5T8?MU6\QA$Q7G ;I3=1,U()@-FG$FJ2EN;%46 MQ "YT17'K'R8)2:NMC0V:33"$7"FPVQBCB4N2DZ2:]1^K9)^"( MR&GB977I_9ATI&V:N-2RKQ@H^NG(7#0&+5N2J>UA*W_1VF#J(UX4,QZ^V,6? M8U"OY4;#P4CCD7.U%(Q]3@> MTNHG:$VRQKY3R0Y%%M()P1=4^1Z3; M5\_-R7Y+ERATE;72>L'K8!>@:1/IR[^=D)KZT^_P M?6R2QW!_H%][SXX,MOQV&9!JE-+6 M'A]B2KM_9:E\ALZ7H!GW2"I*7QPG.3H3B4+UT5Y M"L#SR5D+@+.C<9(N3#/5<^^"H<-'W@JW8<1;*?FT38NANTNW;VYHW>+\IL-A MC$)D8CR_)#H*G12*>N/9!O^V9R0YA(C70' 5/3ID-R4(%-]N-[\1-=Z;GTK; MHF(:IT?TZ.W0WD9Q,VJY[;WPK6C!'8A'GGHOJ*MO37YC!BZI0S4H/-"5S/1. MUK74_.D^ CYQ.7S/7>=.I4*TCWCL2,:DB;C4:[R>1D=.JOO!RI'RF^IEUML#F3?+S6>;UN*);Q MA67D:JUTO@A]"((,O.:K?[C":3G&U9P#K6F'BP % MU$6 #DI<>^O^=%ND6:<$CV6:=?1XEI10.&F']RM5JG\&M(IQBH%+/S =D8? MT-\Q$8>L=,?/%YLGF3??3./S])2!DRPV-W2&LUM]57[?B+P5+^B0R-I5Y&^C MUK9:264BZ;\1<&#'_KX[DIW0.]+RY3.5W &!R6]VN#S+K9-K3S@USJIY=I]& MZ:T#$,@0K1BN$Y1%H4ME8^>-$7T;E>-L:<':ISU\V],,L.;S*M+]*2"E+1X[ MSO^7NS# &XT[YP3>EEKEOMT=.XI[WFMIBO#]4VG%O:'+"[R?=\L-_+Y@@-!_ M=S":M.[/U:&$((_C];K?I)S+M0SO#:;G>7QHEF2?(COLK,YU"X.=_)7D;?"4 M8Y/>5AARI8,9G'CGXGCXBL0+7ZCZ2+>D(NK>-?F";H8/U_<,9G4>.7_5,W\[ MYZ WML;+Y\/]IC.^AI="$9FM#+,MPFR[,D!I.813[)*^FX5?&O(U0+9W"V.H M+Y,O2DDNUD$N9U/!1]\<2O_Y&KWCW]HW#B:FTS>Y^%W-91<[3E=X=]VYDMOG M4RN4-/@D-@-+M.+'H'["G[3AP"U9<\?&DUICNOM_2>?[[P^H)]G1\Z/6Y^>3 MYW]/0'V4C8^B5SW)#L^.'TV;--P^.4I#BN/L<'S4YC^Z*_]K9[X5<_^/I_$C MG?7?OZ6(G+/3])+2D\.C!!AD;MQ\4:;Y!SQA-/0S>?$JT,GPI9U7J(6HZH%7 MZ!,,!5+T$R.N M4VG4=-L IC8QX)(SFEZ#RE$;JNNE+4%6;HSG"%=JHZ&F_3"^Z-2FE-"31DA; MIPT /A<6?LXA7E?XT/R_RY'I=12>)3]:">A=TD]STL^F%#7_?F7X5OF?_SSG M'[V,K_-OA\*R$-_B$;D%##T8G1X_X0C"?ZC+#?T$YK2L@9;TY\IH0#.^ ,_Q M=_7\!UP@_"CJJ_\!4$L#!!0 ( (V"J%H-[ED&8@0 #P/ 9 >&PO M=V]R:W-H965TBI;0TG5B=@ QS=+(4NJ<2A7/;610'/K5!:]* CZO9(R M[DU&=FXN)R.QU07C,)=$; J'WN!"0@*R+1! MH'B[APLH"@.$8?Q58WKM)XVC^]R@_VYSQUP65,&%*/YDN5Z/O:%']Z68TPK1"B?T&(R4?!]5J1&<\A?^K?PVC:D*(FI&G4"?B1RA,2ASZ)@BCM MP(O;%&.+%W>G>'8HMQI%L29VM ,QAY6O )Y#][DW9NP'WSHB"MIXTJZ MT">WU3H@8DDND$&)!4INX![X%A2Y9(JN5A)65$-.%H_DCJ'Z*V-J$]0L6UO1&B,CGKDD[Y!$XXIN9_HA^8WT4[S, M!>/ZF/%C^SX^Q:G8S-\)30L2!@$^VVL'[VG+>_I2WJ]QUVNY/U<*M")'5QPS M%%M%>7YX/73#_RR6F_MS:B\A@W*!9#[CVQDDY&(K)7!-CAC/BJU1B7$RE["A M+"?P@-NZPD+#+(G0:T3+:GMJ>7C?@KTE?3^)8F<<^Q'B7PM^G!WZQB<+QYW7 MWT*F0>H4P:"6.6N4J,R?!' :#9\$,$S"CE+HMZ70?VDI7,(2,-A\OP2_7PC= MX+]<(>SYBP9^&(?N1.H'J,D/2%HPNF %TPP<79M[Z*=I=&@VC&JM\X9NV=#M M!#/T^T.WWJ(^>@XZ]!ZT>@^Z]<9_FGQ;0+6-9F+%V=][RC K9,HH WL!%2FYDY2"9R0[139P>/J>ZL M?G:A_>#^WK G]RSH-::_HX:F/:.&CN>R&U87#JO0LNK@M=8+6E">[>E=N/2" MH?<1J'1*)PQ\=SW@1.@G2=)12\.VEH8O/K[IAF%1VU O&<:MR2W%ORD\6\J2 M*?L#>R&4KK(]+\66XS/>L0ZLSU:Z]?#=?:<[L%]NWWG] 13YR6GR9'P:G;[F M $K\,!GLH_7C8=H<0HZ6>:6ELEIF>RTSJZ5[//43=S=-_3A,&GVI[3ZP2EZ. M;%:.J>ZE*+!I,J5Q9-=/NT?\7TO]OZ>T)V=T-"7(E>W;#"RN MG*JY:6?;UO"\ZHCVYE5?B?G@'J%( 4MT#4X&^/LFJUZM&FBQL?W10FCLMNSC M&MM;D,8 WR^%T,W ?*!MF"?_ %!+ P04 " "-@JA:A?,*I&H) "H(0 M&0 'AL+W=O_O%@)!6N]*S MS^X*'SWP\KM8,2;1CSPKQ/%D)>7ZW6PFXA7+J3CD:U; FP4O)JU4I(T9X5(>8%*MCB>G-KOSFP]0/?XEK('8=PC M9OS=")VT?97FLC5\222?6-&;'$_ )PO0L=RWZ-?=87-BU=Z][8M'UC,\CO0W&Q46ZM^O-945IO:]GB- AQZ MEO%,L!?:: Y@*\&Y$:T7X+$"T,MQ!ZTN=F"N.1# M\T&"P=1A&[X0C[0DNG%,-$GMB\2 M %_&:WDQ@-1 ,_&( 1MB!^BB*HM45B7#:)'^4#<":]%#G1SL^Z[Y!-#]J,"Y MXEF"TGQ=\GM6([B;,?0M<_[(1A_I'2^IY.7& -AP-H(M*S*4#5P/W8*+[%+, MQB3LE@HP24*KCYIN$#@7*+H$.\6[9[?TP\4E$ALA6?X40W@6=EQ[T.QZ.')] M-/_6#F]-?20HP+X5FH0#TK;^N-. ;5?;\H"'NB6*?.S9!'9$&78:QU5>950" M,!(&GAVGM,YD0!;-%8/\0WLL,O4"3(A_8#00'/GVP:@V&!7,1*U/L$\\H\$+ ML4?&^("T?$#VY8,_.$\>TBS3JEP6DA;+5-%;'<6PYM/GR6%\NE]-#K>KDK%> M"@T^M@ AITF2 M]O9Z>PV5XY"=.MO.>P2I*R2F1_)5#/1:PCQIA](Z:CP?L7[W=:[+3L!'R6JB$*MT+9 -^:MM4I,+ M<:&7.$Y#;(76@=G%PJYC=HD@=X[,(9#4$V(. 3YS7<"H3H!41L[B5<$SOMP@ M#S1H@S;!=M!I,W5\F,D0Y%A0+01F,/<),;I[F%AVUSW"$8$DNJ0)*VA>9V92 M/0';?!?(4;9W=H38CKJ /[6Q8QM30\P-G2[&8[_?UW:,)?*"$%T#( $RI#^' M@VUC<6%<&#FF>>%(3Q(9/2$9N>*JEE@S6<<0"JE3D^5U*QAZAI;P<-##A8HE M^_>LTXVG\/5:Y3F!W8.!&V"7."8._!"[?F T0!I";+LWB\GK@<: E&(DS M81MGPI?'F9[#-R7Y'L%G?,9?[<5[92M=EM*S":RF6P(S_&^:%G%6)9K5=%DB M5,^F4!;F/I @[&WEB/P!0:*I/DLI%$L+*&>AT !E5@0MG,JO/7IL3MIG6- M21T_:E!(]Y_8)"'+)\9SZ(TE+U$+JFA?4%U4JD[;B22]J&W\>$F6,Z[%O@!2 M\4\!1P7'7LK0A#B-G6G)U-FOZ@,_#.4:;STH %<2U;E;3P@3D:.:.O<.H-:* M5%-H-!&H%QW+J(^V5Q]'GNKM6C510TW&Z$*5X>W^0VT+]%]#8%$O=@\)P^.E MFG!&MMFVND-5:]^-K@_I@(#?_O1!W3.3_.^RQ9V)XI R]CKSFKH]?H;B.'+, M!G401]#7X@Z*08 [C6,%+F$>>4V=@X&R(?;#8$=K%+H_>:HWM8?2/6Q[0^D0 M6T)_<-ZX:[QO^8,V=5)3@\&8I7?HYUI. ]CZE*$ T#QY:N>Z.++,$LN)L _I MF5+G!HC_BDL&&J,OC<&+DN>M[@(]I'+5)GH"'>I%;L>YN*WT;O2W(77,Q8OV M7,BV=3)=[]27;J<.]7;?0DFH!M!B@U8TT<<+S^)DP4N4PLL/%YYH!!L!^ M;8WA7*+OBT'H/7).-VR.HUK<9RD%9TWE9J>:9J+8)HE*CG^@">-I!=J$N:]& MVVQARW*!*985I 20'<"R@W5I4JD@O_MD+^AEXEUKX&VS@[WVWG R&P?$3 QL M$.8[X /J1%_QUPOJNVU@Z*57U_N>Y/=RYMYGA-?-AX0K@T=ZJ?.I_0A-U1:FUJWKSJ9O.G4 M^]A$J^>#\K@&_^?D2M51_B"Y"DD_N8(5=[Q^*?0>KM4@SWW(?3: M#2GT^<4X3YQ2XQ0:YH^"@Q>1D9(SIUG5 3M'_../D74$L#!!0 ( (V"J%H M-OW>00 $D, 9 >&PO=V]R M:W-H965TKE*K MJTIO5_?1) .Q-K%SME/:^_4WXX00*.5ZTGXAMN-YYOW),-TH_<,D ):]9*DT M,R^Q-I]TNR9*(..FHW*0^&:E=,8M;O6Z:W(-/'9"6=H->KUA-^-">O.I.WO0 M\ZDJ;"HD/&AFBBSC^O4*4K69>;ZW/7@4Z\3207<^S?D:%F#_S!\T[KHU2BPR MD$8HR32L9MZE/[D:TGUWX9N C6FL&7FR5.H';6[CF=%Z=4J2;"YWJ+_YGQ'7Y;'%QZ+"F-55@FC!9F0Y9._5'%H"(Q[[P@$E4#@["X5.2N_EQ-F]6NS^J?0YXNR M"YA:L3O LF(W+]AH^&S=2O:4J,)P&1]/R&G@SY_&02_\PG[6\RG1 'M)9IBB M*'$YVEZB7-%/G_V1@^96R#5+G5M0N;6]^0OK^_W&+AS[;)$H;<\MZ*P20M?9 M,]>"BO( I^6?-;2.=FM$?5*6I^_J'09^8S>X&#@L%WR#76<35,N$%%8@B#,& M<^,'+"M=5QJ1C6%< Y/*(B-%2E,TD%ML BQ2&!O4&-/*J%3$W.)FR5,N(V"N M14W;N4;7KU66<_GJ8-92_(,V[!N.A$L7314 0WHX,U9S(IIS2COQD< 7S^"N M5@!D>H=].QZ^"I5AEH2*#7.5+E\ MB1*NUV Z)]I@4+?!X*-ML"CR/ 4D?$KBK2P_.,3V^?;GO@*$61+3,WQ1OGN/ACH%L?TX?B'(9U.0P_5 YDQ3VWA2Z58G4<9)[=-6SZ;\H\K?6C.?X+(TX42%;L9?OU#V[' W:@3_">!DSP8;">@)C'>FU^J/@C#V4O8],FQ9 M,3Z->K04C]8&3YH7S=*6U_L/V0_!]7*:K7/(V*DJH*0V)(I'I+:$NEL1?*TRH3 M=;\!Q[@X'4DH/[W,/\74$L#!!0 M ( (V"J%K #G9C600 8- 9 >&PO=V]R:W-H965T&9RX>;H5\5 FE&IZRE*N1DVB]/FVWU2*A&5&N M6%..7Y9"9D3C4J[::BTIB:U2EK8#S^NV,\*X,Q[:O9D<#T6N4\;I3(+*LXS( MYS.:BNW(\9W=Q@U;)=ILM,?#-5G1.=5WZYG$5;M"B5E&N6*"@Z3+D3/Q3\]Z M1MX*W#.Z5;5W,)X\"/%H%I?QR/&,032E"VT0"#XV])RFJ0%",[Z5F$YUI%&L MO^_0+ZSOZ,L#4?1RCB\1B$H%0)K=W&0M?(3T60\E&(+TD@CFGFQKEIM-(YQ M6'D< M6KSP/WE\>LS3 B@Z#F32Y52MR8*.',P'1>6&.N-W;_RN]['!S*@R,VI"'\^+ M+ &QA O")-R3-*8Y7*1("7!YI*"/R7AFL9PAZ&7H!-J8N;# M-%NGXIE2F&NQ>-QKS5+"C[G=;-B[-_W "S_"KWK>)A)-K9,(D *+Q'+@>V'# MB?HBJA;3IS4F/BJG;$GAA'%XID2J]P<0OEN#.+IY+U*B6U/K^ M5UNE$(ELJ,2B"TO#K8WE%C)MO:.&+ BU*@D5YY+QE664B6(%]Q8&;M@]./4M M^)[;'^S6#=G0J;*A\]IL*$F,W%5 ,!33^6QF(\31[DF:B@6Q]?[DDB.71*Y0 MZ'@A:S[RM_#:\MGR^%PHO #T5](-Y3EF?"VZK3 *7JRQ!\,-UB +:*(2HU8J MUM@^]1Z\%?F#V@K/@3GV0[S:%JPH1T:D+:M-8FPU3&GD*O;,FDH_K*5;J^?U MX59HDH(RE_+!M,<8%B(SEU'< BTO9F]LM]49=%^L?=]KH$BWHDCWM12Y%GR# MJ8:V8$RT9#9W"M[<<89AG9A9 //Y&"N:3_E55:]*S)\)3LK$M;7^X.L\(;)& ME4^FUM3:QV[?E$-=Y0;,L%M8S7WD6O WX;F)9]EY\=GO=VKW%H:N'U4MIQ,= MV!)$[L"#^^(B3L)N<%A[@X';"0#'JR5E5JI_*!-Z;M2I&[;/FM*N3G?PTJY> M$Y]Z%9]Z_Z,!F[9[W\BMG]>=YG-_<]VY>-$0Y-Y'F^*06Q_+[,+RW^KY@:E M6(*.3V?MVFR:4;FR$[C"(I%S78RIU6XUY$^*V78O7OQ#0+-7#*M^2I>HZKD] M+."RF+J+A19K.^D^"(USLWU-\(\*E48 OR^%T+N%.:#ZZS/^%U!+ P04 M" "-@JA:NSOD*7T# #3"0 &0 'AL+W=OX&GM=W"Y9Q9S*R:PLY&8E*YQG'A015%063/V:8B^W8 M\9UFX3[;I-HLN)-1R3:X1/VU7$B:N2U*G!7(528X2$S&SM0?SGI&W@K\F^%6 M[8W!1+(6XL%,/L5CQS,.88Z1-@B,?H]X@WEN@,B-[SM,IS5I%/?'#?K?-G:* M95!D MO/ZSIUT>WJ(0[!0"ZW=MR'IYRS2;C*38@C32A&8&-E2K3EA^G]W,X6[%UCJHS8SQH;Y+CK7>!8UWL^ DX&\$7MA&&UJ\\,W1#H]%68-<' " )4W2FU]&R%39_.Y@+NJ0,FTD,,72'?4JW*A5+OP%YR%72\, M.@YX'\R2A5F,*%YMR4;,!HF_T *(T#4AUH>*/J(PI M8RB\RP%JEX MIDG U+JQF[2.6 E\*M$J: %KA$RIBB85Y5$"%F4N?F!CKZPHK=2IH,P9/XC: M#ZY?S)NS]*?#.O4'GIP6_TP;]JN0)1O=: M1O?>RN@IU]F'V^9T+.O,$F?SRM AD:* &U&4E6;VRB*-UQA_E-BG_?F_B2SX MAY/''OQNKW_U?(HNX63N@$ 27K9S?[?=[30X-':SR[MY%2^UI8Y\3BIA"/;:^<]O5]L4RK2_J9_'ZN4,IVV0448X) MJ7KGEU0T63\AZHD6I;VVUT+3(\ .4WIUH30"M)\(H9N),="^XR;_ 5!+ P04 M " "-@JA:4!C,\:T$ !;#P &0 'AL+W=OPE$$TIKY4&@C^-G1 XU@I0C-^YCJ-8DLE M6![OM-]HW]&7.1%TP.+O42##CN$9$- %6<=RPK;?:.Y/0^GS62ST%[8YKV6 MOQ:2);DP6I!$:?8G3_DYG"+@Y *.MCO;2%MY323IMCG; E?/T]G#W7 "O?MKN!T^W$YZXV^C 8SN;QXF=[W9Z.$>SF9D M'E-QWJY)W%')U?Q<>S_3[OQ&NPMW+)6A@&$:T.!0OH:6%N8Z.W/[3J7".\(O MP+5-<"RG4:'/+=QWM3[W[>Y?'7,[TUH_KE4ETI58$9]V#,P40?F&&MW/'^RF M];7"YGIA<[U*>W>:Y0^P!4SI$A-$PH1N:+JFPH1;SH2 ,6>+2)I T@#N,;-' MJ<\2"F>C%&8A6PND'X>S>N?/'SS'_UG(:?T($0 ?9#C?".22&M/G68 M,4EBK 29K_ 1ZBVSU?+4P#9=VX(!$U*H[59_POL.S\S_$O!4(=>,;4;\&F_YN"DOU^[+*WIR6 _M4IK7THC3G7"IAA& M6/'T&:?J3"O ;1;@-D\%M^?[;*WVF%"?1AM57:%/8I+Z;P8\"^(?RD#[AX"WBJO*;'A<3&,H0JL6P76 MK7^H%I))'U[^MT]?;O#=R_DN ']?T MY5.W&5/N8ZKBV_$MK 4P99 J%Q_32)73J23R\&KQ3,?QP/5*@814O$!<%^HJ M$/\D*ZPC+XVR;>1H[GU_'?0E3L?S]IRM?9D,HY04,\^T<#^[]4H!WFH-5T7W MWD$AE7,RI.K=' ?%RB7>J38"\4I'RZRCM?;>C!?W\=[U_%ZV+>O@1/);6I,K MDLPKDLP[-I-.P7&C5G )VCB(*J#;U\6)Z M<2Q2:J6&!Q4M=5LG0%]^6>]34(O.L9[OP!02P,$% @ C8*H M6IRDYVGH! , \ !D !X;"]W;W)K&ULS5=M M;]LV$/XK![4K$L"Q9=E.TKP8<-)D*]!L19QTGVGI+!&E2)6D[&:_?G>4[#B9 MXZ) 5_2#+9(B']YS=P]U/%L:^]D5B!Z^EDJ[\ZCPOCKI]5Q:8"EF]DIJ_&C!U64I[,,%*K,\ MC_K1:N!6YH7G@=[XK!(Y3M'?5Q\M]7IKE$R6J)TT&BS.SZ-)_^1BR//#A$\2 MEVZC#-!'@2F>8/5W?(^O6)B8K$R^2G8 WPG9AT.] $B>C'7B#->5! MP!M\'^63;50;I.%V)!;,B:M$BN<1*<*A76 T?O.J?QB?[K!SN+9SN M]/&UT M F8.$^?0.[A!X6J+&0@/UT):^"14C<#)#;>8UM9*G<.%<-+!WGL-=X6IG=#9 M]C#NWOW-J^,D'IS"K_KLO:U M4#"O*92/V,(5@%]JN1 J,%^]> W]SG%_L*//K7YRNF5DLA!2L?(/Z+P_<(1, M1]S,@^/LDEZB._ENG]QWIUWXW2S0:@[1!A;L$?O5M&EAK#_P:$N0>H'.ET]8 M]>/.L#]ZJ?NDF,0!N/]!U)D3S&_;WD9 TDF2XYV!?-F^7^GY(\3[ MCB)9SBAJ/T^_I-OA_ZG;P\-.\D2H_QGXN)S^G=?^E[L]4\N!X*^7O M5#*A?$O);Y/.:)AL#L2=43S\EI()F?U[5R"(DGPK_Z%O?VJ))3RDKH MA[#XZ-0]<;O4N^(FJLJ:KY+*6H(D*-+CG$6Y"*+,Z.=-.^X>PTK36X .4%W! M$RQ"(18(,T1-;@<2 N]N+*2%T#D&0U)IT[ITGF7L:!75+TM3JZQ96@BJ:,#) M7 >ID:$XGU/5SH4-L]PPK.'M<).*;&95:*4AG85*3!.M+E#='E[YPB)"V92E MR&7IQJ<_?(R9#*N[TU):\A^Q8?]82;&E"X\*[B?(6J][.5U[ EEE*,O(*RA# M_DF=R87,2/WJ@5^W-HH\MY@39C?D+)5HDSJG(O]Q[U5(H:K)0+INL&M>)]V8 MBG^E^!#BU&[.EY#[Z88N**2E=,Y0T1@D,J<^40L&JS;2TF90">L?8(^WX]1) MXM/TF;K"]S9N,27:/-S5'&U>:]]<:-:CZ^O@I+D%/4YO[I(4W9P#HW!.2^/N MT2@"V]S/FHXW5;@3S8RG&U9H%G2E1 X P @@D !D !X;"]W;W)K&ULM59A;],P$/TK5D!HD\*2IDU62EMIW9A FG:.A ?W>326#AVL)V5\>LY M.VE6Z%8"@B]Q;-][?K[S^3S=2/5%%P"&?"NYT#.O,*::!(%."RBI/I$5")S) MI2JIP:Y:![I20#,'*GD0A6$2E)0);SYU8U=J/I6UX4S E2*Z+DNJ[A? Y6;F M#;SMP#5;%\8.!/-I1==P ^:VNE+8"SJ6C)4@-)."*,AGWME@LHBMO3/XR&"C M=_Z)W:$5!!Q28QDH-G=P#IQ;(I3QM>7TNB4M0KL?)S"57+LOV32V<>B1M-9&EBT8%91, M-"W]UOIA!S!^"A"U@,CI;A9R*B^HH?.IDANBK#6RV1^W58=&<4S8H-P8A;,, M<69^\6:Q)$=+NN*@CZ>!04H[$:0M?-' HR?@0_)!"E-H\D9DD/V,#U!*IR?: MZEE$!PD_4'5"A@.?1&$4'^ ;=OL;.K[A@?U-'MM7 QL]#K.I,-$536'FX5G7 MH.[ F[]X-DC"UP=$C3I1HT/L\YLF XC,R06L##EZ)\BRD+6F(GL\"H?Y7CP; M1^'P-?G?+08G+5QT^B)L%,D25$FXI.*WYL])%/MA&))KN)/\CHDU215DS)"< MIHPS<]][Y5%#M)2&Y-?C3PAZ/1\8Y4GPB\CO%TU/]TP>(F^SO@,5-EKV)Z'"TBA7(%R MN7KF#GN3BD<*;*6V-O@!4KK;^WC'-0-_?!I;X^0AB?T8#S\.G>X/C?>'7NW? M NW4,-R;BL?^P%X1+H1YX\*'/*TZ9_YZR%!IFY0MTV/!#';J8@EJ[:J_)BZ# MFA+9C78/C+.FKCZ8-Z\3O/K63&C"(4=H>'**05--Q6\Z1E:NRJZDP9KM?@M\ M)(&R!CB?2VFV';M ]^R:_P!02P,$% @ C8*H6OV[?_Q4 P ^0< !D M !X;"]W;W)K&ULM57?C]HX$/Y71NFIVI70)B3\ M6@I(0+LM#TM1H7>Z1Y,,Q%HG3FT'=N^OO[$#@2Z[Z%[N)?&,9SY_\]EC#_92 M/>D4T8:ZYS$'A9NB-F_U)R\:[@#\Y[O79&&PE:RF?K#%+AEY@":' V%@$ M1K\=3E$("T0T?ATPO7I)FW@^/J(_N-JIEC73.)7B+YZ8=.CU/$APPTIA?LC] M-SS4T[9XL13:?6%_B T\B$MM9'9()@89SZL_>S[H\%\2PD-"Z'A7"SF6GYEA MHX&2>U VFM#LP)7JLHD%%=;^3PHG?PYM*@AJJ^M\JKLEMO9]L.Z>N"Q3CTJ 4TJAUZ MHX\?FIW@TQ5NK9I;ZQKZ:%DU!L@-+$H5IW388*%XC# 60L;,'6/J0QC'OTJN MN;,I>%)J0M(:F+8F21:GT*TD^RV63@C"S2R'52I+S?+D[2V^RO(]#7IA$'V" M_^L_SJ0R_)]*@C-GF1M8H.(R@9N_D2E]>Z[5A9#].O>!<04[)DH$U(93>Z,3 MCVF-AI2TJBE,@$0"P=F:"Y(0K<1T?9'_B#-E.JV-/Z#9"%KWI'ELF6FZM6+D M.WO8+BJ*&D'4N_ N%!:,5\M*DZ(Z$GH=6"WTVOO GRWG]U+:]^%ERDD(*I_G MAN5;;@E7*/V+A)5B"3T,ZNEBIM/H!$%MM6'JKB^J0:%P&Z)37IQXA;W&/<4W M(_B,.WH="J)N,$YS*>3VY42[Z6"[\%7*9,^%J&=Z--/KP-P?GQ0OV(N3^R1@ M7"J%=$S.=_$U\YM6H]OJWL)*&B:@.)Z9PC4?.QVHLXV.@D:WTX6WVMX_NXZI M_*U[=#0XAM7-7'OK=VU<7>>G\.I1I%[>\ER#P VE!G?=M@>J>F@JP\C"7>YK M:4AK-TSI;49E VA^(^G".QAV@?JU'_T+4$L#!!0 ( (V"J%I5NL2RH@( M )P& 9 >&PO=V]R:W-H965T&'\2>T0)SUF:BY&UE[*XMVT1[S$CXH85F*N9+>,9D:K+=[8H.)+$@++4 M=CJ=6SLC-+?]]X?Z'I3\)WB25RT03O9,/:D.T$RLCI: M$*882\U U.N(/J:I)E(R?E6<5KVD!EZVS^P/QKORLB$"?9;^H(GU$0 MP?P!%LMI- U7WBJ8A^"%$XC6LYFW_*GGHN Q#!X"WPM7X/G^?!VN@O 1%O-O M@1],(_@$(>&S!CN=P+F.8))J_QMO);FW;.IL=.*^&,\!OH=3^"TW$K\=O@$ MXQK>;Y'3J\^@9_CZ;_!%DL5/P ISKX\H),UW4""G+&G:K':R/KP@X4V[[+<" M=5S!7!>H^2UC\MS1"]0_)/&PO=V]R:W-H965TVZ*DHAIZHG"N"XDPB94XU3 MN7%5(8'&%I1GKM?OC]V<,NZ$@5U;RC 0I 3]5"PESMR&)68Y<,4$)Q*2J7,SN)Y/C+TU>&:P5T=C8CQ9 M"[$UD[MXZO2-(,@@TH:!XF<'<\@R0X0ROM><3G.D 1Z/#^R?K>_HRYHJF(OL M&XMU.G4^."2&A):97HG]5ZC]\0U?)#)E?\F^LIWX#HE*I45>@U%!SGCUI2]U M'(X @TL KP9XYX#1!<"P!@RMHY4RZ]8MU30,I-@3::R1S0QL;"P:O6'<9/%1 M2]QEB-/A:O&\>'A:D*M;T)1EZEW@:J0UFVY44\PJ"N\"Q9#<"ZY3118\AO@4 M[Z*<1I-WT#3S.@GOJ>R1X> ]\?J>WZ)G_O?P48><81.BH>4;7>![*/,U2"(2 MO+4[X"40)4H9@6H+547E6RKS@G:A%[B[8_%=%B?Z1HV^4:>^+R VDA8IB\A< M\ BXEM0^D1536_*3K&K5,^!1BD]UVZ:[\PA32JY502.8.E@K%,@=..';-X-Q M_U-;?EZ)["0:?A,-OS,:CVS#6<(BRG7]?C!WT4E-ZO'KYA#7[K@&R:T9S0X6K9>R\^Q_3>XKD9V$:=*$:?*_DSOY M(W7]WOC\C;89^9.S%+M'51=U;&PS4BBGY+HJ=LUJU>]FV.]L7SA;QSYX8\N_ M^YNF:J)8RC:,*Y)!@I3]GFD[LFI,U42+PM;VM= 8##M,L9>#- :XGPBA#Q-S M0//O(/P%4$L#!!0 ( (V"J%I03"#QCP( /P' 9 >&PO=V]R:W-H M965TKG5Y MC;%*N+= M]*]G8^OO'!XI[-3!&ME(5D(\6>-+.O%\*P@8)-HR$//9P@P8LT1&QL^:TVNN MM,##]9[]DXO=Q+(B"F:"_:"ISB?>!P^EL"8;II=B]QGJ>(:6+Q%,N5^TJWP' MQCG9*"V*&FP4%)177_)ALTN7&X1UB;*RT0)S7]M*(/SM"'Z$YPG2LTYRFDQWALI#9Z@[W>:=!) M>$=D#X7]"Q3XP;!%S^S?X8,..6&3OM#Q#<[P+4"ZE\030&+%:)4\=8%*D EP M;1Z"S:2L,JG:$EA=<.4NL&]N&_Z1H*Y!:\^.V;_LC_V%:-%R([BG+81#E\[=H,_\J\WQN=EJ?5 M:=A>H5&C?=2M75"N+RF_U&>JU G_WRJ]$-E1I.,FTO%K5VG<4H#PZJ1*K4ZG M5<('C;0 F;GYHE B-EQ7/:K9K4;8U(PPU^I/]LUHNW$='?^AJ>:BZ4 9Y0HQ M6!M*OS&ULQ59M;YLP$/XK%JNF5EH+ 4*R+D%JDTS;AW51W_;9A4NP:FQF.R_[ M][,-0;0$M$G5]@5L?,]S]]SY;"8[+IYE!J#0/J=,3IU,J>+2=66208[E!2^ MZ945%SE6>BK6KBP$X-2"Y.2;,B2?VVU+$$[Y1E#!8"B0W>8[%KVN@ M?#=U!L[APRU99\I\<.-)@==P!^JA6 H]%Z! M=00Y8>4;[ZL\- "#L /@5P#_3P%!!0BLT#(R*VN.%8XG@N^0,-::S0QL;BQ: MJR',5/%.";U*-$[%MXO'QG*&3A!AZ#[C&XE9*B>NTC$8)C>I_%V7_OP.?]^PN$#!X /R/7]X!#[KA\\A MJ>'A2[BKE=?R_5J^;_G"#K[91@A@"A5Z* I,4P5ZWC-3Y MT(H15QD(79@2AJ4$=30+I=O(NC6=M(VCT \F[K:IM6T4^$;6]HBBH%84]"JZ MX>P\Z5%5"F -JVX1I:=A([ZA-WREH6T3#4;')82UA+!7PCU7F*+DL!^[XPO; MOC_ZXU@!+$%)W[_;A!YGXZURQN1OME%W\XQJ1:->164) MFRW47<9>IK\MXQN1O1 ]KD6/_]F),6Z=:.T3HVW3/C'F'6;ZIP:$,=#K*\[586+NS?HW*?X-4$L# M!!0 ( (V"J%I9&X]V(P, /<) 9 >&PO=V]R:W-H965T:>H:R.M#=/V 81X[;.;W#86CMW93LOV MZV<[(6MIB$#B2^O'/>?Z'#O7GFRY>)0E@$)/%65RZI1*K<>N*_,2*BS/^!J8 MGEER46&ENV+ERK4 7%A01=W \Q*WPH0YZ<2.78MTPFM%"8-K@61=55C\F0'E MVZGC.\\#-V15*C/@II,U7L$MJ/OUM= ]MV,I2 5,$LZ0@.74^>:/LY&)MP$/ M!+9RIXV,D@7GCZ;SLY@ZGED04,B58<#Z;P-SH-00Z67\;CF=+J4![K:?V;]; M[5K+ DN8<_J+%*J<.N<.*F"):ZIN^/8'M'IBPY=S*NTOVK:QGH/R6BI>M6"] M@HJPYA\_M3[L #1//R!H <%+0/0*(&P!X5L!40N(K#.-%.M#AA5.)X)OD3#1 MFLTTK)D6K>439K;]5@D]2S1.I3<7#Q=7]Q?H%&6P!"&@0#>P 5:#1,<9*$RH M/-&S][<9.CXZ04>(,'17\EIB5LB)J_0:#).;M_EF3;[@E7PANN1,E1)=L ** M?;RKU]X)")X%S()!PDLLSE#H?T&!%\0]ZYF_'1[UP+-A> ;Y:_ ]-6&W':'E M"X>W8]QG;(.,^I&F/(SE&N=8 M-,2>SFM]:)GJ,ZP!)A9HRM\F#49^Z$_QY<9=R3V+<28P' M)5YQ=IHW,M$Q83FM]:=COD.V,T$)7A!*% %YTF=&DR+>69D?Q\$++P;7\5XO M^C+Z0;\526=%,FC%'5>8FKK>E"K1EJH^P'N)[$_ MZI<\ZB2/!B6WY5AKS?F*D;]:MBJQ0ELLT>YA4"4<&H-TE4;Z7&C2E0E'\)2# ME(@O>V(7F&*6&Y!""U@1QC3*A*Y!$%[TF3PZ4.Q[M@[OF=P3Y4=1M!^5#=KP MWBKB[ER)%8B5?5I(E/.:J>9RZ4:;U\O,'\_M+?]B7+]JOMG+W/U/TSR)]-6A M/9*(PE)3>F.2="]]=)_ M4$L#!!0 ( (V"J%JQ3FZUX@, /P/ 9 >&PO=V]R:W-H965T[.)?78M9Q.QT8QR M2[CS&Y6,%H0K*CB2 M))]ZE^'%(HR,@9WQG9*M:ETCD\J]$#_,S>=LZ@4F(L)(JHT$AK\',B>,&26( MX^]:U&M\&L/V]4[]HTT>DKG'BLP%^XMF>CWUQA[*2(XW3-^([2=2)S0T>JE@ MROZB;34W@5T^B TP'Z GIKA98\(]F^O0\)-%E$NRRN(J?@%RS/T"!\CZ(@&O;$ M,W^]>=QCOG";+TAZR'POFT'S3@96+SZ@-]](23BPICQE&R"$X'5<2U)BFB'R M")^\(@IAGB&AUT3",JGF8Z6(5KWOHW*86(>F%#S,HO@\#H)@XC^T.3D#,S7H M0I4X)5,/BHPB\H%XL]]_"Y/@CSYJ/4[/H_.VTST\<8,G=N+Y*OB'M _1-TN# MMX8=1"H?PU9P<1B/ND2WAV748!DYL7PNH(#( MPGP73"A30B1A6 ,4*/IM1NFNV!^$,NID^YS'BS,6SF#_(XIQ@V+L1+%\I$H3 MGA*S/!1=<9K3% .8G'+,4\I79FV4@@.LOOS=ZCEFBO3M0DZS8S^>$XGM\3MO M^)T[,]QM1LOV9E25W]WF=6E+;Q\\I_21%.:G%%N<2&P/:1@\G<2"7[WMUQY? MWO?=H1W+L58;OG;G#UNGU=#)J%IC[1/ X77FECIVH9U4;7$JM7V,T1/&Z!<< MH6HGR8MG*'HOF:=7"7H47<]OI/7L. MK>VE;>C\)YFJ+X;.846Y0HSD(!F&ULG55M;]HP$/XKIZR:.JDC(;QTZ@ ) M*-,JC:D"M?MLDDMBU;$SVT#[[W=V(&,=L&I?XK=['M]SESL/MDH_F0+1PG,I MI!D&A;7531B:I,"2F9:J4-))IG3)+"UU'II*(TL]J!1A'$7]L&1T"AN6E)_8O73EI6S.!4B1\\M<4P^!1 BAE;"[M0VZ^XT^,=3)0P M_@O;G6T40+(V5I4[,'E09]\?9O 1QFG*7629@#M9 M_QXNSI>W:!D7Y@.9+%5FMTPC?.,))1*!R106*)C%%):H-[1M8)QK1$JT]:0; M)BT:"^,2-4_8%9$G+3IY6-["Y<4'N N8\:=3I.? MCN?KGLH/;E"N\8HJQM4DESE4J'UZ9(*@5H+G/E''0E=3MR//[>IY,XKC?NMZ M$&X.%9WUP+61&U.Q!(A;XG_I[C?[>6_)[2B<8&DW&J;ZH3.C^#5=K MXZRY2H\%H?=WRJ-6_"KA1XWZC5$M)#QH*E2[N>^U!A*UEK8NIV:W;N<3:N>^ M[;W:IS8_]MTM_$U3OQ%4+#DGD0(SHHQ:U^28KOMNO;"J\JUKI2PU0C\MZ*E" M[0SH/%/*[A?N@N;Q&_T"4$L#!!0 ( (V"J%JTZ_Q:( 0 *@3 9 M>&PO=V]R:W-H965T+U3I%T@"X *6)Z5B6;Z:8 M9,9X6+0]L_&0;D1",GAFB&_2%+/]/21T-S)LXZWAA2Q7(F\PQ\,U7L(,Q.OZ MF7?%J:0)#F3]./O ZE1V3E?1!->_*)=V=>3G:,-%S0]@*4'*J"96'$49C'$=;PI/:W<==[TA ^8 MW2'7OD&.Y7@*?Z:7PSL*>*"'!Q!IX>'E<%0)<9BNCV6VT80PRHD7G/DTLAWWO%[7LJRAN3U54FL[G[\&?(TC M&!ER@N+ MF",?_W%]JW?5+HJC/9[;L-HV)+1FIR=2LZ.5LY)(F=-G$6 Y/R+ M(@8Q$2BAG -7Z5B2>2! M+$8XI4R0?XH&E8Y>(Z:N2D>O44&VK>@7:+V[4N^P);*:D'XEI*\5\@]*XYT< MWSY?1/.];B M[U;Q=[7Q?\D$SI9$3FH(RS$H^$VME- :&*&Q2@P];Q_M 3..;)3F:Q/R48SW MJA$^U?)<.W3;) M;(JOEI5?EI:?/2[K&A,F]HD!T@9:'*E7EH=>HC/-J_&F/ M0.O+M;*U1%:3K5_)UO]OJPN2M564B_]Y.>L-7BVVPJZKLANV9; 86-Y!?E]0*MY><@/5Y=SX M7U!+ P04 " "-@JA:[^T'!!0# "9" &0 'AL+W=O&N7(+5IIE9:VZA)M\\.N316 M 3/;>>E^_FLA7]4"0)--FF2J;RVTSB]M6\4+ M2)DZ%SED^&8N9,HT+N6+K7();%: TL2FCN/;*>.9%?6*9R,9]<12)SR#D21J MF:9,OEU#(M9]JV-M'SSQEX4V#^RHE[,7&(-^SD<25W;-,N,I9(J+C$B8]ZVK MSN4@-/%%P'<.:[5S3XR3J1"O9G$WZUN.$00)Q-HP,+RL8 !)8HA0QL^*TZJW M-,#=^RW[U\([>IDR!0.1_. SO>A;H45F,&?+1#^)]2U4?CS#%XM$%;]D7<4Z M%HF72HNT J."E&?EE6VJ/.P .NX[ %H!Z-\"NA6@6Q@ME16V;IAF44^*-9$F M&MG,39&; HUN>&;^Q;&6^)8C3D?75]^N'@9#,KX=#B=D\'@_>GP8/DS&Y(R, M).2,S\AP@R6C@+!L1A[U B09+*6$3),KI4 K$ M9V2R$$N%,-6S-6HU.]IQI>NZU$7?T77/Y#GI=CX3ZE"O!3XX#K^!N(:[^W ; M,U2GB=9IH@5?]Q_3U&:L9'+;F4Q77JJ[6IKO'V*-M 4!9 &U>2P*_(# #8Q4%H>OT[-6NAV:0[X:=.FA/FUMK7_0IK K8I9SS1+^"V9$ M"R*FV"-F\*T@6P*)*_VMRKV&*.I>N ?*6X(NZ$6[1ZU&\W$-0&@J,& M[K)8I$ TVV"F8^ K-DU:"S=H;![X%P<"FS$T]-KUA;6^\*B^B<"2(/E^8ZEB MM(IBM&Z3^WY9AXUNHC1T#GNN&=4)7/=0O;US<)A#&Z?N"\\4_M5SQ#GG 9J7 MY4%8+K3(B[-D*C2>3,7M K\=0)H ?#\70F\7YGBJOT:BWU!+ P04 " "- M@JA:#OIBX"H$ #<$@ &0 'AL+W=O9Z3\_C$]HG'1\9_B3TA$KP&?B@FQE[*Z,8TQ7I/ BRN641"=6?+ M>("EZO*=*2).\"9)"GS3MBQD!IB&QG2<7%OPZ9C%TJ++_0/NM.GY-UGNY6TTTU'OF@V/F@V F>VX)7 MJ9R<*K\".\Y$8W4I'$K@],0Y3*'EVO9H;![*5=3#1IX+41Y5(>OD9)U.LE^) M$#=J.JSC(/:Q)!OU%JL9O:8XG2>J!!PP+NF?Y$(3_?0!7HG79W> D'=&ORD, MC3S8S-_-^;N=_%=,8A]$+4,>$MG$V*U1\9"'W#/"]2AWZ);*JO#U)]\9 M"Z)8$EY,B2:"G1AZ;;X1$5Z3B:&D$H0?B#']^R^(K'^:WOZ>P"KEHKQP"K#,I"'X*!9N%'.=-3) M]"'F(94Q)U?@@;[JAKBJ;CM-=#LQ+Q6J)[!*^= J=F&K7ZDRO+(,MNH+K5IVX0I@S[8@PZM, MJ*%GG8O4$(5&+;LJ+&P!?,<7X!?&L60\Y?LL]^_M6=V %XO5$UJU_,)5P&Y; M<;E8=;> +.O0/';1&K\!2PVU2LB)#OB-.KH^@+K5INX2E@SZ8"UOV" M#='PW%4TA=EH:+7(4_@*V&TLY@^/8/DF) G K1"D9:WKU3CTA5:MN+ .L&?O M .N^P+5LIZ90/%@8#=#F+V\R10L=AU2-6K=>@+K?JM6G@'NV?O MD.&5OT,'GC4\_UBM1R'7.=^6S-+1@S[W45_R.QH*X).M2K.N!TIIGAZEI!W) MHN0TXH5)R8*DN2=X0[@.4/>WC,E31Q]PY =:T_\ 4$L#!!0 ( (V"J%J, M?B%EX0( .D' 9 >&PO=V]R:W-H965T'5L9AMH__V>'D,P)#GG O=\3)CYI>^KY,,&,P$C1?0BSZEZZ0&7JXY7]S8+]VR6&;O@ MQ^TYG<$8S.-\I'#FERPIRT%H)@51,.UXW?IEOV7K7<%W!BN]-2;6R43*)SNY M23M>S0H"#HFQ#!0?2^@#YY8(9?Q:T219:"/S-1@5Y$P43_J\/H?L/YQ?$6.CSZ1(\($> M.K[P+X^\ZJ0*ID8UD_W"+_6<)M#Q\!/6H);@Q1\_U*/:YRJ;_XELQW2C--TX MQ![W**FA%(CDA1A%A>:TB,WT)X8*QK"I,A>],K=O['7%:2NJ/NU6J;?UWJL!F#0' M+T7KU=]]$46-YI[(UU6[5Z>0Z6^E9@YJYIJ))HE<"%.$2[E:]*L>]BN7ZWOK MV,>Z+K[]/S1%$\3HP+NN"8&PO M=V]R:W-H965T%I\..$1>EH=E2=N\QF1V(KXRCEEQG*MTG"LJ=3'HN'XQ$>/9^XBE9K69X8 MSXXV;,6ON?RVN91DE/,TCD:*,WQV/3O!AZ$[+ M45?T;\(6]\1F53 M;H7X7AY\61Z/G#(B'O.%+"58\>^>SWDVL;P2#Y]YW:!)J;<0<5[]10_UMU &<[@(@ P%0="Y2N<[16;KD2[W\N&C,OD7DN46G!!0\ M9]DG1/%'1!PRZ8EG_O/%W9[B(5P\Y(NAXEIKZ/[^T$K/'=!KW 16W82/B"4B MD]$_K/K=;'@6B66?[;!N@)XXRW*$45+:CSRT9$]]MV\.ZI3=TF&^80M^/"KZ MG9QG]WPT^_47[#F_]9EG24RSTMU;Z9I:NBHEQ5BT6VV0; M,\F76H8!;NSJF#1".Z!3ZI&6'6 HIG;TU>E1Q^WWP]O[X9GZD19C[L\GAM<) M:^+3R;3E!!B$J1/=*C&ASK3?B.G>B"EHQ$W90+V'$7=%;OS81EF1&%';ISXO MIMW G(G7LF+:26O?I?HU(1CJ*SL+?V^$#QHQKX9>GJ$K'E<^Y.MHT]M<4,?P MILYMBH66Q#3_@KU_P5MWMD$GCZCO.DXKD< P3!WK5AFX0=#_D\*.0BSG?^AM MZTJTKL]W_+8?<"RFAO15.O4];\"2!G7BM^UP:_UF!T(=2CIN@&$8NX&[79M' MZ8 91)E!7M'7H'_1>91&R3;I;3\H:=KM6%4+;:GI=BIBQC#:GC1'K\N*C]'[ MOPO:_=!K)"R&*T[N],CO>2PVQ9!XPQ?K5,1B]=3KETV. MGEM5"VVIZ18J?,62W1>6U;=]) WU(#!V/L25^MKN<,S/VQ0G-LS.:&\!5T4H0XOMN>[L)A&-O1 ^>! M-^DW@R@X)S"<]W4Z,'K!@J;=CU6UT)::;J;">@)CO=FX]X*8.SSLP26-3;.D MIINF\)_ ^#^4@EIINIX)_8A/\7Q (@ ZW2ORTUW31%_P2F M_YN,+7G*DF(\2(LL+(\2EGWO7>Z"I8QSSRKUVU+3;5343XQ7U4WAJZY!6Q?% M@=\:6.$XC%WKKJGC2:-.W0U%\\1X3?T5Z$6ZR]P'F. V><&Q&#O25REN+"[I MEB@Z)\9T;@9>I,OF7N"W'[C 41B;T45S=SJ4'0K,"0SF0UW."^AE=;'=JEIH M2TTW5$$]@:'><."#Q0@P\%F%>EMJ^K-U!?\4AG\H"X?Q"Q8US4*K:J$M-=U0 M-0&@-B< +XAA9S@-X:+&KKW%#("J&0"%9P"7Q8B8REZ'K)*^5;70EIIN6F-C MC/'.&%/:JFO0UC%PYPDC'(>Q:[0SG&IUZFXHA*?&FUM>05MU)3KX^$$;,.!8 MC!WIK=0;>.Q*%8Y38QPWHRW:A7'BM%D<#L+8BRZ+$SJPX$<5BE,8Q7?]"XQ6 ML(1Q3V.5QVVIZ?8I;*6H3YU\0 T'**L_;4M,W>"J>=V&>OQ#I0B0;+J/*MY-5QGE2I&'O M2A:L99I]5M5"6VJZCPKC79L8_X(8\/@:+FELVEM0O*LHWH4IWL;^8M)=_G/; MQ &'86P:Z1!'LTK="P7GKOFV=7,<=;NL?-#CAU4^=[MS@H-A0QI[SU_88"-R MF9=[::_X/4^WO+]'LKJV;E4MM*6F^Z=@WC784=/#VIIT,ZUXT\=W6;F6X :\U2#&^"S/^KK7E,M;9XX:G^4!SK5*^ M5;70EIINH*)\UX#RP4WOJ*H_+3NRG&]85G1I\5.==(O];>#0;>BNX]-NUG4O M(I.@G756*7_<>)$LX=FJ>B&O&,#*86OW!M;^[.ZEOU-\.*_>C6N=/\&')]4K M<&,ELWN3\)QEJRC-4ZN%KP( !$' 9 M>&PO=V]R:W-H965T4;6]0<<&:*JM)V'2>P*TRHE2;F MWIRG"6MD22C,.1)-56'^:P(EVXVL@?5ZXY%L"JEOV&E2XPTL0#[52 MD0JH((PB#OG(&@^N)K%>;Q9\)[ 3!V.DDZP8>]:3VVQD.=H0E+"66@&KRQ:F M4)9:2-GXN=>T.J0N/!R_JG\UV566%18P9>4/DLEB9$46RB#'32D?V>X&]GE\ MK;=FI3"_:+=?ZUAHW0C)JGVQ3J*5%U,IV,OXWOIS.TN)G-EFCZ<#=_N)_= M+Q?H,QI3VN 2C2O&)?F-S4MD.;K-@$J2$[PJ =U2B>F&Z.%8") "G5^#Q*04 M%^@,$8J6!6L$IIE(;*GL:JB]WEN;M-;<-ZS=87Z)O,$GY#JNCYX6U^C\[.)O M&5NE[2*[7637Z'K_&;G/8:LT[%?2&^9*U'@-(TOM" %\"U;Z\<,@<+Z\X]/K M?'KOJ:C-LT&,1!8F][3 P[$\-3 M)H(^5EOE'[ B)W;[67['\D^QPCZ6?\0*8R_N9P4=*SC%BOI8P3$K\(;]K+!C MA:=8<1\K/&+Y\?"-7%''BDZP/ >I_::^%E!-.I? ^]#1$=IU_6'8SXX[=OPN M>\FDZA=Y(QL."!^V#7A1AXB /B?QT4?K1Y[_KQ/[H,/IPT+UA@VA I60JSKG M,E11>-N VXEDM6EZ*R95"S7#0IU9P/4"]3QG3+Y.=!_M3L'T#U!+ P04 M" "-@JA:V/[J( 4# !V" &0 'AL+W=O^K\LE5%2?RAH$/EE( M55_7DZUH!G3>BBOM1$&1^19GPBF%S[TX50[DRG FX4T2OJHJJ'Y? Y6;D MA=[SC7OVM#3VAE\,:_H$4S"/]9W"F=^[S%D%0C,IB(+%R+L(S\>YC6\"/C/8 MZ*TQL9G,I/QJ)Q_G(R^P0,"A--:!XF4-8^#<&B'&M\[3ZU]IA=OC9_?W3>Z8 MRXQJ&$O^A;#]#EDUJ_4G+=_))-%QMXI%QI(ZM.C 05 M$^V5?N_JL"4(D]\(HDX0_:T@[@1QDVA+UJ1U10TMADINB++1Z&8'36T:-6;# MA%W%J5'XE*'.%)<7GRXFXVLR_7!]_4#&MS=WMY/KR<.4G)!;LP1%)E*EG*EJ9CKH6^0S;[!+SN.RY8C M^@W'#56G) [?DBB(4H=\?%A^!64O3U[*?:Q(7Y:H+TO4^,7_6!978JU3XG:R MN_!\>15FP3M7FO_)[$72<9]T?,B]F&&(-VE1VM7%! M->6@3\R/&@@'W"RX]O&QJP:M<=88V\:Q+L(L.8N&_GH[.4=4'$59'_6".NFI MDX/4CV+&.(NNFSGC[[ WU+1FC7"-Q\V=ZKTR#=P=N/R<*!FV[0TPT.TC7]RL4S<-1K MD.P .8+B('(3Y3U1?I#H0>(J$]GT4;'51]ORN5#SO1T2QV=[Q=N/BL[2O MZ6^="O9$QA;[Q(3&G;Q 77 ZP&15>\JU$R/KYJ"828/'3C-)/7OZ3XWB%U!+ P04 " "-@JA:)E(HA#T# "3"0 &0 'AL+W=O M_QY"BM/'0)MTW"<;G//R>X[^3O50_]!; D.>2 M"SWUML945[ZO\RV45%_*"@3VK*4JJ<&FVOBZ4D"+)JGD?A@$B5]2)KQLTKR; MJVPB:\.9@+DBNBY+JEYN@,O]U!MXKR^^L\W6V!=^-JGH!A9@GJJYPI;?J12L M!*&9%$3!>NI=#ZYF8QO?!/S#8*^/GHEULI+RAVU\+:9>8(& 0VZL L6_'@L"M0V.A%?U@@E[%6:>A6LNOQ2E;U4\/OFZJ^*.J" ((C=CTC$FO8Q/8E-3 M184!*!!3LZ*FG%"MP3A1DQ.(=#P*WY$Z@M+AV V:=J!I+^A2&@038'>PX\U, M-YN9L9M94VLG=7H"% [2)'F'?1HU2-,X='./.NY1+_>L5LJBGC&1\[K *B,T M+LR*LH+ ,Q[CR$QPCR72;$'A8='&MT-P[G(S.N&,P_3];#D-&L9AXO8R[KR, M^R>T%!>YR\]C@RZ.NGOPQZ<[1S(&PO=V]R:W-H965TYO&?\I5H@2GN,H$0-C)67:,TT1K# FXI*EF*B1 M!>,QD:K+EZ9(.9(P \61:3>;'3,F-#'\?O9MPOT^6\N()CCA(-9Q3/C+-49L M.S LX_7#(UVNI/Y@^OV4+'&*\BF=<-4S2Y:0QI@(RA+@N!@85U9OV-7SLPG? M*&[%3ANTDSEC/W7G:S@PFEH01AA(S4#4:X-#C")-I&3\*CB-$9$.*"K"/YR+8W6/AQ-%_ (I$]85O,;1H0K(5D<0%6 M"F*:Y&_R7,1A!V"UWP#8!<#^6T"K +0RH[FRS-:(2.+W.=L"U[,5FVYDLC5.&D?WUU>W4_',/T9CR>P?#A;O)P/[Z?3>$"[HA<O@(@Q+>WH>;*EIE MR.PR9';&U_K'D%49RYG:U4SZA/9$2@(<&.H("N0;-/R/'ZQ.\W.5S?]$MF>Z M59INU;'[.O30X*@3 TV6H!X(,4OD2IQ7&<_9.AF;SB0;WW$MM7F;74.U2YYH MJ%T::K]GJ%,E/$*<4WGE/N%K;=;%*('$TV<2-B0:(U PA^J[&A3T""59]L[ M\G5AN5WWP%?MRB?ZZI:^NK6^]AVIZI5O%L< Z8;,U1Y6^>H>Y2RKY7J'1ZAJ MEMWRREFY8'.G).OKD*IA2YH()62A<,U+5X6/YU>,O"-9FE7I.9.JYF?-E;J5 M(=<3U/B",?G:T86_O.?YOP%02P,$% @ C8*H6JQ[(J5? P 8 H !D M !X;"]W;W)K&ULK59M;]LV$/XK!ZT84J"(9/DE M+[,-)$Z&%6BZM$;6S[1TMHCR12,I._[W.U*R9@>*F@[[8HODWI5!V%A7.E==Q;+,");/GND1%*VMM)',T-)O8E@99'IRDB-,DF<22 M<17-IV'NT3TNVP26ZI_+1 MT"AN47(N45FN%1AL8>+]/"AE_8-;9)!%EEG9:-,S&07-7_[+F)PY%#.G[%(6TFM#\1XA-\"8U7/DL+IVA54Y^;O[I_F9YOX2S.W2, M"_L>W@%7\,"%H"#;:>QH#V\99PW>;8V7OH(WA >M7&'A7N68G_K'Q*TEF!X( MWJ:]@ _,G,-P\ '2)!W#T_(.SMZ][^"UZ(>YPZR%&?70&K9Q&P:\T2MXGRNY M0@-Z#6NNF,H0!%(U=4:L1AH')'^JMO-D&F^/N?=9G- ;M?1&O?2^A?+%'-@6 M#9U&.G#^2'.UJ7F"0R.AHAR1AI),7+MDX8PJ8(_,V*XXW_9O/*P]80#2UP%, M(&?[KJ@LWH8SK'$(\+(#Z20VXS8VXY^+3\ M.\'U?E?'Z3M/)B]R_ .C$RF35LJD5\J3.G G.?BM1JO>C5^5'3"F#A*\@=P!>U3:)&#T[#R]UBF M#;TL_I5B&95 R=3>ET"FZ3)3EE;HRVK!<^8/Q8J)<#N'%[*S^OLY#0Z%T16L M7M>?#59\](A+-)O0VU@(I[M^S]O9MGVZ"5U#_*]YW7O1F[GARE(@U^2:G%_0 MW6/J?J8>.%V&EF"E'348X;.@%A"--Z#UM=;N,/ ;M$WE_!]02P,$% @ MC8*H6L_?D*:B @ < !D !X;"]W;W)K&UL MK55=3]LP%/TK5H8FD ;Y:@+KVDBT=-HDT!"%[=E-;AMKB9W9;LO^_:Z=-*0E M='O82_QUS_$Y-_;U:"OD3Y4#:/)<%ER-G5SK:NBZ*LVAI.I"5,!Q92ED234. MY2D9V[E\E(K'7!.-Q+HM9E2>7O"11B.W9\9S?Q MP%:Y-A-N,JKH"N:@GZI[B2.W9$00%I-HP4&PV,(6B,$0HXU?#Z;1;&F"WOV/_;+VCEP55,!7% M#Y;I?.Q<.22#)5T7^D%LOT#C)S)\J2B4_9)M$^LY)%TK+@.:LD*= M(>)I?D-.3\[("6&@IVGB;!4<([*B](Z'\@@1=$/7JF_PX?')$3MBD.+5]X-,7#OL34P$$_ MT%S@H:IH"F,';Z@"N0$G>?_.C[U/?:[^$]F>QT'K<7",/7DY+X4]+U"?ES[/ M-5%LB4R-V20#'].\Z5IY'1->^6W,GL*H51@=53C/A=3G&F392,3#2C94,KHH M8%\U.?7/^I37&T0=58%W>:"\)Z;C;D]YW"J/CRI_%)H6?\]K_"IG<> ?J'L= M$WV,#M2YG6)2@ES9&JM(*M9PG:W+^ 3+N"UW!_-8WJ]M57-?:.JW 6_8 MBG&%GI9(Z5U<8KYD76_K@1:5+5D+H;$ VFZ.3Q1($X#K2R'T;F V:!^]Y ]0 M2P,$% @ C8*H6B@Q=G8N P = L !D !X;"]W;W)K&ULK99M;]HP%(7_BI55$Y76YCT!!I%:V+1*5$6EW3X;N(#5Q,YL M!]I_/SM)4PAI.K%](6\^)\^YP?8=[!A_$AL B9Z3F(JAL9$R[9NF6&P@P>*2 MI4#5DQ7C"9;JDJ]-D7+ RUR4Q*9C68&98$*-:)#?F_)HP#(9$PI3CD26))B_ M7$/,=D/#-EYOW)/U1NH;9C1(\1IF(!_3*5=79N6R) E001A%'%9#X\KNC^Q< MD(_X26 G]LZ1CC)G[$E?W"R'AJ6)((:%U!98';8P@CC63HKC=VEJ5._4POWS M5_?O>7@59HX%C%C\BRSE9FAT#;2$%<]V/Z ,Y&N_!8M%_HMVY5C+0(M, M2):48D60$%H<\7-9B#V![;TC<$J!\[<"MQ2X>=""+(\UQA)' \YVB.O1RDV? MY+7)U2H-H?HSSB173XG2R6CR[6KV;88NT"V6&2?R!;$5NDN!8TGH&DU E0A- M")Z3F$@" G7&(#&)Q;G2/,[&J'-VCLX0H>AAPS*!Z5(,3*G M+VY*"&N"PCG M'8A;S"^1:W]!CN7X#?)1NWP,BTKN' M&K:1[;KAP-SN!VI]Y8F!O"J0]U&@H F\4/G[X+[7K8&W M6I\([E?@_D?@81.X?PSN=?T:>*OUB>!!!1Y\!-YM @^.P+M>_9_2ZGPB=UAQ MAZW<#TSB&*TRM=Z!7E))DB4HSA>Z%+^H+4HV+F'A42S?L>NY6M]\8JYNE:O; MFFL"0O31#96@O"7JV(T3N7L4X\(+G5J,UA>=&*-7Q>BUQIAJ2RK1%L<9Z-VH M]4NAC"Z!(U;M6,7C^&W':BI"[Z@(7NC5YU8KYHE%L*VW?=EJ+/F%RU6-?)&T;Y MEEM'C%A61IWB7-F50]5WZZ46TQ<#U M/5\Q)E\O=.-5-=K1'U!+ P04 " "-@JA:0>.XN4 $ =&0 &0 'AL M+W=O,/)\28#X?8XY+QP.SF2'R1L- M$&+@>QPE=*H$C*6WJDJ7 8HA'> 4)?R7-28Q9'R7;%2:$@17A2B.5$/3'#6& M8:+,)L6Q1S*;X(Q%88(>":!9'$/R?H\BO)LJNK(_\!1N I8?4&>3%&[0 K&7 M])'P/;6FK,(8)33$"2!H/57N]%M?-W-!,>*O$.UH8QODI_**\5N^\WDU5;1\ M1BA"2Y8C(/_:HCF*HIS$Y_%O!57JF+FPN;VG^\7)\Y-YA13-< 9Q0F*SI1&9]0CE67 M57"W#&Z<"6Z"!YRP@ (O6:%5A]X7ZPU+ %!Y)NIT&/MTW!M"XEU*!D"W;X"A M&5;'A.:7R/5";G3E0RQ_@%QNEG*[0^Y=+N^:O/_3\E8NS?K2,@N>=2X9FPU! M&\@06&+* %[O+R""THPL UX/NCR_%U+S2GM+4[A$4X674HK(%BFSWW_3'>V/ M+K]DPER9,*^$.04LK__;F3,:CR?JMNF8I(@M_ZS:/TOH7WX-@P7#RS?P5#L& M'@G>$!AW&2?$]35.)LR5"?-DPGQ)L);!=FVP+31X4=Z.,&,!)N%_: 4R7D9Y MVU%X?KA+07K>$:6N:UKXG7)DA/9DP7Q*L9:93F^F(S3QC&F"( M=#HGQ/5U3CPW [PC2#H;!)FS\&3"?$FPEIG#VLRA,&&->LL?FTLMUEJ1#:UU*9,%AA '^_ \_\M8YFY/T&P"TB_)VL;'K2O)SFBBZ[A('ZVB43YLJ$>25LU*SJ MUL PC]PZ'678@['3;=:X-FO\2UI0(;6O,S)AKDR8-SYM0J?VHN[1Z=9=B7E]3I-)\T?\,[WAW.QLK>G,FF>5)HOB];V]+!8 MHXM7:WZRY113>U=EJ*M'C#E'POF#$<%YL!@KQ^YP/X[VN,V7XG#U#_(S+['U!+ P04 " "-@JA: M4G["XM@( "G1P &0 'AL+W=OT;EX#\2W<<2[1=\_UP]O>3LK]=;\?KG;<8^%5 ML.>^^F03"(])]59L^^%><+9.@CRWCPUCU/>8X_?N;I)M"W%W$T32=7R^$"B, M/(^)'_?<#5YO>V;ON.')V>YDO*%_=[-G6[[D\GF_$.I=_T19.Q[W0R?PD>"; MV][,O*;6) Y(]OC=X:]AX36*O\I+$'R+WWQ:W_:,N$7!^]59R]UM;])#:[YAD2N?@M?_\NP+ M#6/>*G##Y"]ZS?8U>F@5A3+PLF#5 L_QT__L>]81A0!ST!" LP!\%H"'#0%6 M%F"US3#( @;G :.&@&$6,&R;890%C)*^3SLKZ6F;279W(X)7).*]%2U^D;7U>VNC=+^_1+ZB/PAT3/$2.CYY]1X8?U$;U^LLNB$+FK\.;OE3M MB[/T5UE;YFE;<$-;+/00^'(7(N*O^;HFGNCC!P,-H*\ZYM0[^-@[]UA+? P. M5\@%V^_!!77?\7':J#Y_M53B>U(67^M(Z M'6E6PALT\)8R6'U#P3XI* <>2L??HCT73E G];T6%M?;ZW#/5ORVIPIJR,6! M]^[^_2]S9/RG3B9]RP;H!V>B[H"U(5M!(&$4"%:2 'YRC5 M]'.B:9V(6DQ7$2%A-B2,0,(H$*PD[/ D[+#%&/WDK[B?E/Z%RWQ5V(LRH]DK M$^L0?8YD*%6=5Z.X3GEMGJ[*I[!A HNG2H<[/!J-IX9AW/0/154ALY*V62E0 MUI)BHY-B(ZUB3ZJ0"FFT!@V0E\Z*\0"MV8_:>0YD MLP@DC +!2F)/3V)/M3U(F2/0@;D11\%&74>?2FV8E-HH*;7Q5+;V:N5>"^^J M];0R-*9C$Y\-QNI.IHGCV7MQ+P+9+@H$*^EC&OG5JZ$_QM5U&:J;M=3IH6=U M%0249H/2""B-0M'*&A<<"O.?3$I5\55U#2U3%^(I3;Q&FT @&LE("69DKFH.1851GJ*!Y2>N\%"IO64.<:XC?5D.T$8&'R/>](]0. M9Z!:@;4-ZBPPKG3TL%9>R*RD958*E;4L;F[LF'K_9+;="KYEDC?I*0/UR8&+ MM%)_C)W@]?$Z\ME?JP_DCB<>6W/M!O6#,EIIW S-6D%!':#6>2E4WK*DN<%C MZAV>Q\A[4;*H60];KY,Y+7/1*E4WG?RLV-Z1:F/F HOBV-VD8]?1U5]0:RBC M%?O5JA^?H+X/*(U"T3XB8?QJXOPKF-TQ\]9DZBULU8BJR7MR% M@+:)0M'*6N6FCZEW?1JGO>@O],"^.U[DU>H":OZ TFQ0&@&E42A:6>W< 3+U M%M#_8?(T;E=/Y_J6=SX&0,TD4!J%HI6/@=QV,B^8.9H1W_IVC#Y'Y_$/2;-! M:0241J%H9>US%\K4VU -X_\IGG';?"6XFD_'M]Y/)2#>X6-6%Q:1B(N C"?A MQULW:K8MT)>=.GB.YW55,Y:SI_I:D#;.-(N3UBO+.J\$D*Z2#4HCH#0*12NO M2,@M+ZRWO$HWXY*:SBYXSA> IM%X_WNN#^VJ*BB-@-(H%*VL:FYRX38F5^O5 M$1=HS2L:YOK(SHJ"VEF@- I%*RN:6UY8;WEA YOGIV95C%>[N%HWV1QZ9M7YWK/ U\*YR5*;PVJ,_6'N$#'9W"V M3>XF7;J5J\_8^4A(:=/B!?*5>785#9J2M$E)H5*6=*_T6[A;.W2VL=[?( M;-1)U9U?DVG3,B.1/,P!+6R0&DV*(UY<^5K!03TR4)H-2B,9K6CR#,X'[5L87S@W MOK#>^-+HJA^TH.N@0&DV*(U#6M*-2*1J&^0OE7$KF_8^GMF$X+ M/O6LSC^3,"KKQT:CRCU4T)RD54X*E;.L2>[.6'H_Y6=7?>KQG672-]9,S!\T M/2[[-">-RSY!VT5 :12*5I8\MV^L"RN6TC/3[, ) G5J/BC48_ MJ \$2K-!:0241JWJ\J^);O3GIH^E-WW>Y*<<^IR=509=U01*(Z T:E5]+7,X MK=.Y7WB^B,?%-GD23(A60>3+]&$:IZWITV;FYK6=/)3E;/O,O)XESU[IYYCT M$38/3&P=/T0NWRBD<356S1+I4V'2-S+8)T\Q>0FD#+SDY8XS50WB'=3GFR"0 MQS=Q@M.S>>[^!E!+ P04 " "-@JA:R3C/0?0" #A!P &0 'AL+W=O MCQ4 M2RNXQ%2#698ETR\3%&H]"N)@NW#'%X5U"^%X6+$%SM#^JE)-L[!AR7B)TG E M06,^"L[BT_,C%^\#[CFNSR7,/.X!X\ $@V0"2SP*Z&T#7&ZV5>5L7S++Q M4*LU:!=-;&[@[\:CR0V7[A5G5M,N)YP=3V_2ZQ^_IU.83&^GEU<_(;T^NYW! M-[AG8LG\39\9>N+*#0U0VL!TEJ9P<(&6<6$.*32)DABF9274"R+,K)H_0;K4 M\X*N%U+!),5\@1!,P32:86A)MSL]G&\T3FJ-R0<:NW"CI"T,3&6&V6M\2'X; MT\G6]"392WC#= >Z\5>GO-^BY_SS\-X>.=WF#;J>K_?1&SQ7E-28@> YP@&7 M\(),F\.VF]K/%'LD=*'T%]9F[3\(7IGK->9Z>QGOE: T$MR^M-FIL7%]TZ[B MK,91IQO!E MDG2Q%6JJ^I SKF%%M0-!Y5!MJX!V8086FDGO8JFY7( M$"K47+7:J4\^WA%[ MTNGV3W9_;^R]1\11Y_CDC<5PIUJ6J!>^B1B8JZ6T=0UI5NL^-:$^Y>OYFW7J M7V>^;(?_:.KF1Q5BP:E<"LR),NH<45KHNJ'4$ZLJ7Y,?E:4*[X<%]6#4+H#V M&ULM5;O;]HP$/U7K*R:6HDV(?SN DHW2JU M'8)VTSZZR4&L)G9F&VCWU^_L0 8TC5:I_0*V<_?RWKW8Y^Y:R$<5 6CRE,1< M]9Q(Z_3<=54004+5F4B!XY.YD G5.)4+5Z42:&B3DMCU/:_I)I1QI]^U:Q/9 M[XJECAF'B21JF214/@\A%NN>4W6V"U.VB+19!OP@\%:[8R)4?(@Q*.97(4]QS.$((9 &P2*?RL801P; M(*3Q>X/IY*\TB;OC+?JEU8Y:'JB"D8A_LE!'/:?MD!#F=!GKJ5A_@XV>AL$+ M1*SL+UEO8CV'!$NE1;))1@8)X]D_?=K482R" M'!^=D"/".+F+Q%)1'JJNJY&F>9D;;"@-,TK^*Y1JY$9P'2DRYB&$^_DNRLLU M^EN-0[\4\(;*,U*K5HCO^8T"/J/_3Z^7T*GE):]9O/HK>+.(2C@=XK>'Q:3/ MN"4T&4A)^0+,N$+&3[A'%115+D-N6F2S05?]9J/3[+JK73D%0=6JEP?MD:[G MI.NEI#.[[9>P KZ$0E]+(VH; MN=K&AUF4(3=VJE^MU?T#BPJ"\-PMMJB9DVZ6DIYB&:@,(H+;CER@3;%(#=LB MDJ5(;W7JG<#V1+=RT:T/ 3EZ SH>YUGEQNOGM6N/ M8*@ MEM<^<,W=:9L)R(6]32@2B"7767?)5[,+RQ O++:Q'ZSC169@^[?[#R:[!6'O M6#"N2 QSA/3.6O@AR>QFD4VT2&US?A :6[T=1G@9 VD"\/E<"+V=F!?DU[O^ M7U!+ P04 " "-@JA:L%-HD6H# #7# &0 'AL+W=OEZVL#LN">P$94QTB@/C#WJR==X8#E:$:002>T"J\<:+B%-M2>EXW?AU"IC M:L/J>.O]RL KF K;SI@3D;8ZUH"-77.)- DTL.99-$CNJ-$"C32%T#D7_3^$TA,4O%!61W8^_YV=F?> MOT4V$@GF(+8/0M&/A*T$IK'HVU(A:6%V5,@?Y_*] _)]=,VH3 2:T!CB_^UM M=13E>7C;\QA[C0ZO,6\AWSU#GN.%>_1OZJ!8 M<'2/T]5>YCQ@M\+L^RVWGDF-LDZ$[I70O1<7@M>0YE%G MW/4?@NL\?4"=EY:#US 445RW"M%KA?7*T:SFQ MS*^V">T3Q>!6PNPOL.ZV@ M_J5J%G0JL/<$[!V5F'FM>15X'E!?9/4_L5/G;M1U++==:1$SX O3.0L4L165 M>7=4KN;=^5AWY[K%K*VKKGUD>E7[R4W>\JO>9T&H0"G,E4NGU5'EEN===#Z1 M;&D:T0&PO=V]R:W-H965T,_Q0K (FV24S%P%E)N>ZYK@A7D&N@ZLF"\01+=%['33"ASK!OQA[YL,]2&1,*CQR)-$DP_W<,,=L,'-_9#3R1 MY4KJ 7?87^,E/(-\73]R=><65B*2 !6$4<1A,7!&?F_J!UI@9OP@L!&E:Z13 MF3/V4]_<1P/'TQ%!#*'4)K#Z>X,)Q+&VI.+X)S?J%#ZUL'R]L_[-)*^2F6,! M$Q;_12*Y&CBW#HI@@=-8/K'-'Y GU-;V0A8+\XLV^5S/06$J)$MRL8H@(33[ MQ]L<1$F@[-@%02X(W@M:1P3-7-#\K*"5"UJ&3):*X3#%$@_[G&T0U[.5-7UA M8!JU2I]0_=Z?)5=/B=+)X?WWR9\/,_0R^GOVC+ZB[YASK-\$NIJ"Q"06UVKT M]7F*KKYU!A\P;Z"F?X,"+VA;XIE\7MZRR*?U\BF$Q^0'V32+=]$T]IJ? M>!<]&]U,WK++]0[1$VLSJ6M>I&F8)H!>\!6NI9D8[QJC>'=^&7WW/Z[MO94BUGD^% M="%C!Y#:!:3V1Y!R&FBV58>&QC4&"@LBKVUTVA4ZS@0> I4V#O4NKOQ&X/UJ M SCY0-CJ-CR[G4169SV2FY/,!R6V"Y/0\+DBLL MU:=-&D>()"I*B: H.SU1G:9@(Y/Y:Y?"#)H5,+5!G0K&XM$_QN6NX')W)A=" M]]5B%I]^6M2*J9Q]&84A3T$/H)@IA1I.D%J<<[5"CU76736;:F'5!G\JOPL9 M.^#L>_O/-._H_6[S*OPZE9PU8=P*J]+63L$5OJN]3\/3._\XUUIWE,T MA05PGC\8"0'2_C7K5ZCY+0NWVDA.YG8A:X?<@CVWH):;!S8 M[TU,V_=N7/6Y(]/=N7LS69.LVHDEH0+%L% FO497%0[/^L[L1K*UZ<3F3*J^ MSERN5*\.7$]0SQ>,R=V-=E!T_\/_ 5!+ P04 " "-@JA:N0\KM]\" !V M" &0 'AL+W=OJDM4/0;I_=Y"!6'9O9#G3_?K8#64 N0].^0&S?^^:Y<^++ M8,/%J\P!%'HK*)-#+U=JU?=]F>908-GB*V!Z9<%%@94>BJ4O5P)P9D4%]<,@ MZ/D%)LQ+!G9N*I(!+Q4E#*8"R;(HL/@U LHW0Z_M[29F9)DK,^$G@Q5>PAS4 M\VHJ],BO73)2 ).$,R1@,?1NV_UQ;.)MP'<"&]FX1B:3%\Y?S>!+-O0" P04 M4F4"\%#0 M>4<0;0613;0BLVG=8863@> ;)$RT=C,7MC96K;,AS.SB7 F]2K1.)8^3)_3U MVWR.II,9FM_?SB;H"HTQ34N*;9WY DVP8(0M)9J"0/,<"T#G=Z PH?)"1S_/ M[]#YV04Z0SZ29E4BPM S(TI>-B:>;8W'OA*)V)P_'0+/:J@PW>@ M(_3 F"3ZX,_Y/97KZ=.M_. M,??D49]6E$OGDU I>U9ICJ1UQ! AO :A#[7=D^T/AÐ^O?C%#F[M7_KLFO_UYQ%U,EBYO;&[2"0R9W5-O-%-=,\2G5=%'% M)U&YHPZI_,817H!8VLXF4Z+J=J-S WJ#\U MDM]02P,$% @ C8*H6L.S#KH& P ^ D !D !X;"]W;W)K&ULM59A;]HP$/TK5B9-F[0V$""4#I" ,;72VB+2;I]-NR?;-]QQ\2AC (6>$LKDR(F52B]=5X8Q M)%B>\Q28_K+F(L%*3\7&E:D '-FDA+I>J^6["2;,&0_MVD*,ASQ3E#!8""2S M),'B>0J4[T9.V]DO+,DF5F;!'0]3O($ U$.Z$'KFEB@128!)PAD2L!XYD_;E M;&#B;_:?5KK6LL(09IW](I.*1<^&@"-8XHVK)=U=0Z.D9O)!3:9]H5\2V'!1F M4O&D2-8,$L+R-WXJZG"0H''J$[PBP3M.Z+Z2T"D2.E9HSLS*^H$5'@\%WR%A MHC6:&=C:V&RMAC#C8J"$_DITGAK?SN_1K[L@0(OY$@57D^4)%&+J/>28QB^3059J9P7?#@L4T9^&] MPJ*#;CA3L41S%D%4S7>UHE*6MYQ;:;,KMN.W[6M3V4$]- M4-_SRZ *ZV[)NMO(^I:SLRU(I?DM]4N0T P#Q<-'],"(JC6Z$=*<29O[@R+/3H$Z_WC&_Y.PW MM4(]1;G7HGL(KJ?JFZ_W%.]4],\/I'/IV&5#9@ MA?-%R?FBD7.0'YO74F9X14'OIP@$FB7: )B8WL+B4*>,95?/.5JWKY, M=?MBK_FC==W63.QM[K[ Y#V1OE8VA$E$8:TA6^=]34CD?48^43RU5_6**WWQ MVV&L6S,0)D!_7W.N]A/S@[+9&_\#4$L#!!0 ( (V"J%J7H+Q'VP( ,8' M 9 >&PO=V]R:W-H965T\!6;"_=72#]]]U=&Y> @ZJJ7^P]YKU];]:>:>\H M>^4QHH"W+,UYQXB%6+=,DXIA2G<=PS;V"[-D%0NU8 ;M-5GA',7S M>LKDS*Q8HB3#G"N [PGN^,$8E),72E_59!AU#$L)PA1# MH1B(?&VQCVFJB*2,GR6G41VI@(?C/?N#]BZ]O!".?9K^2"(1=XQ; R)3QYGW>G3L _#\<-D-NHNAI,Q7,,<5_+F!,QPB_D&K^"143Z RXLO< %)#HN8;KC$\+8I MI 4EQ Q+N;U"KO.!7!=&-!."/'K:[#U7SNOU]'JRYK!6NCGE55@A9?DQ [AOS5.;(M&L'G3W;3 M^EIG^3^1O4M HTI XQQ[L*""I+(\Z.^L]@,I\$V-5S5J&S1\W[]MF]M##S51 MMFM;5=0[<5XESCLKKD^YX$"79_45%-[!R;9SYWE'^FJB7,^YJ]?7K/0US^H[ M_"OKI#5/#G4;MXY[).TTRI'YM>NE^94T_ZRTD_)0I\\_N;1KUW*=(WUU47?N MD3SSH"1FR%:Z4W (Z287176H5HMFU)/-2!?MHW79I+JZ-IM_:(H.)__]59)S M2'$I*:T;7Z:,%5VCF BZUH7WA0I9QO4PEHT6F0J0^TM*Q7ZB#JA:=_ ;4$L# M!!0 ( (V"J%KDQ=?2@@0 .T? 9 >&PO=V]R:W-H965TI]:KC MNBI8LIBJ"[%BW'PS%S*FVMS*A:M6DM%9&A1'+FXT6FY,0^[TN^FS!]GOBK6. M0LX>)%+K.*;RQY!%8MMS/&?_8!HNECIYX/:[*[I@CTQ_73U(<^?FE%D8,ZY" MP9%D\YXS\#H$^TE VN);R+;JX!HE0WD2XCFY&<]Z3B/)B$4LT F"FH\-&[$H M2D@FCW\SJ)/WF00>7N_I']/!F\$\4<5&(OH>SO2RYUP[:,;F=!WIJ=A^9MF M+A->("*5_D7;K&W#0<%::1%GP2:#..2[3_J2"7$08#CU 3@+P-6 YI$ /POP MJP&M(P'-+*"9*K,;2JH#H9KVNU)LD4Q:&UIRD8J91IOAASQY[X]:FF]#$Z?[ MHZ^/7^XG-U,TN"/HT\W]I^G@X?-XA,9W'^^GD\&7\?T=^H"F;,/XFJ$')@/& MM9D0Z.D'FM!_A$2C-$DF%7I'F*9AI-Z;B/U3-!(\"9$T?PQ: :Q3+9<-[V8;82IQ0>8%\[P^$ M&_BR)J'1SX&HV?3P(_Y36/\/:O=\AXL#3V?T;_%2]P4/>^ MK+QDK>JH%0U8SS&+D6)RPYS^[[]YK<:?=5I!P@@0K*1C,]>QF=)]NXX*S:6( MT"+#[=FL9NA@5),*_37K>&@L6:Q^KM.[":DV) P @0K MB7V9BWUIG;2/X8*'\S"@7&<+I9FL06FU>;?*UZOW=<+N.FBG'20_D)M^X\(S M=MX<"E;7".-R(V)-]8U"M'(A6F]W[[!NW%;>J1,*$D: 8"4=KW(=K\[AWBM( ML2%A! A6$OLZ%_OZ5[OWNLZ][8I[?Z81L:;Z1B':N1#MM[MW5#=N*^_4"04) M(T"PDHY>H]C)-L[AWZQ7(+U!:02*5E;\H';P?K6)LQXJ!JV8V)[&R:(!T4 M1J!H9<6+(L>S;NM!7-^LVU3[5=N#UBKU?19+35F-H@KQ[&7(*W:NW7_;D2=/ M+D@:@:*5Y2QJ&:]U%CN#ECR@- )%*RM>5#V>=9\/8F?0&@>41C):98/A'[%] M4;YX]OKE%=O7;MSMR)-E@J01*%I9SJ((\MIGL3UHK01*(U"T\O^OBVH)6VL# M"-MG/52L=57Y%;?G<:IJ]7T>^17'126#[97,*W:^J1T^9%4R J41*%I9SJ+& MP?@<=L:@91 HC4#1RHH791"V'^% V!FTY &ED8Q6L3VNV-X]. G>WE3W=GUD.O,TJ/=BO/!UYGD)[@N@5F=Q ^H7(10GIY9+1&9-) _/]7 B]OTDZR$_X^_\#4$L#!!0 ( M (V"J%KA7W75@@0 'X7 9 >&PO=V]R:W-H965T;?3TG,M@,+6L\/9M$RE.D#>]A?X26Y)?)^=%?. !1FS^%L4R'!@]2P0D 5>QW+&ME])45 GQ9NS6&1_ MP;:(=2PP7PO)DB)9,4@BFO_'3X40M02%HT] 10+:3?#V)+A%@IL5FC/+RCK# M$@_[G&T!3Z,56GJ1:9-EJVHBFGZ-MY*K3R.5)X?C^]N[Z^GY#(RNSL#%^?7% M;'3S=3(&DZLOU[/IZ&YR?04^@QG9$+HF CQ\!Q>$+3E>A=$,+C]?JB8/P$@((@7XYU+A@(DDB?A7)VJ^J*=? M-'TAG(@5GI.!I1PO"-\0:_C[;[#K_*E3I"6PACY>J8]G0A_>,:GDX(5*NE+S M_&Z6G[ZJ-D//]_U>W][4:]!$01(1 M_/]L%G!*Z#Q4[\9''7_C$H=^52V!-=3HEFITWZ.5NVWJTQ)80Q^_U,?_Q5;V M7]7*FJC]K=PKR?6,Y&X(3_M7[=> +G9/(ZF:[%9BJ:_#N.2A?=426$,=Z%0[M_,>SBM6;4FBMM":&M6F&_B+[BL MZL:"/81V[:<+\WW7U;UXL*OQ5_J3HLE3&^7OH5F-$M \2[S%A>,PHEA;B7&M M@SNL);2F,M4< WOOXD+C^'2P1BVA-36JQBEHGJ=>X<+C%_;J.;7-HRCC9937 MZ^S98E USB#C*'" !PN@IKN@OT-3'X7VT*PF"F2>*-[BP1D1,BU*A@1\8SP. MM%49USVTU]I":ZI4C34(O88+R,J0$P6"M(Y\M5,P?/#WOQ& MLE5V7OK I&K6[#(D." \#5"?+QB3SS?I N61^_ '4$L#!!0 ( (V"J%H[ MV;T[_0( ,,* 9 >&PO=V]R:W-H965T( IXCJ.$=[5 B/1"U[D?8$SX.4TQD4^6E,5$R"E; MZ3QE2!89*(YTRS 1VZ%E&8X)@!7\?S9]'-U?3:#W,(";J]'-I#>^'?9A^' ]FMSW'H>C!SB#.YJLSB*9 M]P)ZG*/@,'^!&Z0K1M(@]*$G&PB.!RA(&/$3"9A-!W!\= )'$";P&- U)\F" M=W0A):N%=7\G[S*79WT@[YZP<[#-4[ ,JUD![Q^&#] OX(U]N"Z#*M*RBK2L MC,_^@&^"&TS6R&'): Q7SP)90B+H9_N$C(-TF8=U5P[KUYWD@:' F/^NRB!? MM%&]J'J/+WA*?.QJ\D7ER#:H>=^_F8[QHRJ1FLCV\K&+?.Q#[%ZI3TAF_102 M%%66**KF1=E&U)[)1B&P<%#E+0B$%3@41/ MS9,J?09KD9'==QWK3L M^ZJFVW*MZI9M%2);!T5.D N@2Q !PA-ET:)*WT&*SVY)361[;MW"K?L5+>O6 MF4]-9'OYM(M\VC6U;/O=]].T&^:;CJTH:CCFFX;52T<,=;R3?\RK,.$0X5+" MC/.6['B6'YGRB:!I=NJ84R%W+1L&\I2)3!7(YTM*Q>M$'62*HU]*3.XYW'-/8XYIK[EXD@L A7XG<2H[WD*IY97OR\D"$BIK M? FIOC/C(J%*+\7!!(9DE" MQ9]KB/FZXV'O^8TAFR^4>(H$S#I>#U_U M<60 ><4/!FNYOG]GO6@*,YK%:LC7?T,AJ&'X)CR6^5^T+FH# M#TTRJ7A2@'4'"4LWK_1W,8@= X/ $@!(&\%U M /1>ZZ2R7=4,5[;8%7R-A MJC6;N"V-QH/;P>W]]]'Z +U MI 0ET0"HS 1,D9DY&L(D$X*E'I;D"!6X'4_ M?<#-X(O-BA.1[:D,2Y7ANQBS86WL&D,(B5X84ZUJ!8T@M!O3*%MNO,68NM48 M)_188TY$MJ>R6:ILOHLQS3FICK7I1&1[JJ-2=>14W:=R@>!7QK0OD"JKV*CZK$2X_L*2 M:E&S27:J]KIKE=VU_ILGZ!_DW-^ M(S3@;6K [MAPA&>6I&#SK%KF\FR;%; [+/2Y;D\H]A@#NN<*3/@&O168]1FQ M&W72#'$JMGW]VQ2!W3'BGJ<7YK1A_E]I'BFLDM^4&JQ5AV(#WN8&[ X.KUBT M?:[LB<_-?K1=[Q$F\#9-8'><>*-=4>7 8[/+5E6QR]\Y]IK?''18F+-4HAAF M&A;4+K7=8G.,WRP47^8GX4>N]+DZOUP G8(P!?K^C&L/BX4Y7)<_IG3_!5!+ M P04 " "-@JA:#2G&:5X" !'!0 &0 'AL+W=O*B'-,"B)ZILP-'F)%3,=5:.T M)RNE*T8VU.O0U!I9X4&5".,HN@HKQF60)G[O4:>)VI#@$A\UF$U5,?UKA$+M MAD$W>-V8\75);B-,DYJM<8ZTJ!^UC<*6I> 52L.5!(VK89!U;T8#E^\3GCCN MS,$:G).E4L\NF!3#('*"4&!.CH'9UQ9O40A'9&7\W',&;4D'/%R_LM][[];+ MDAF\5>('+Z@P'D&T.JVH.M@HK+ MYLU>]GTX ,3Q&X!X#XB][J:05WG'B*6)5CO0+MNRN86WZM%6')?NH\Q)VU-N M<93>9Y,9/&5?%V.8CK/Y8C:>CA^^S^$2LJ+@KG%,P$0V7]^U\?P.B7%A+N , MN(0I%\)NFR0DJ\9QAOF^\JBI'+]1N0M3):DT,)8%%G_C0^NBM1*_6AG%)PFS MS;H#O>X'B*.X#XOY'9R?79S@[;4MZGG>_AN\MTIN41-?"@2I"*UM0HV&0#/" M8\8;OD^>STW%-HTZT2 )MT=4]%L5_9,JOE&)&AZ4O,PW6J,DR(Q!.MKXDTQN MS&],S7(HM!NG[=]VKZ/.);@U:G8/_ZY;&'/F6V?B8U(;LZJ!5\3]] M"@]^[@KUVH^P@5QM)#7_>;O;WA)9,QQ_TILK9LKTFDL# E<6&G6N;77=C&T3 MD*K]J"P5V<'SR]+>=*A=@CU?*>MH'[@"[=V9_@902P,$% @ C8*H6D4+ M;DAE @ X04 !D !X;"]W;W)K&ULG91M;YLP M$,>_RHE54R=5@9"';AU!:AZVY472J$G7UPXP-^ MN/O?[P[NHH.0+RI'U/!:,*Y&7JYU>>?[*LFQ(*HC2N3F)A.R(-ILY"^6$0#/V"4.[%D3M;R3@2E6:4XTJ"JHJ"R+5WO=/!(=[FV!WX< ME62':]1/Y4J:G=^HI+1 KJC@(#$;>??=N_'0VCN#GQ0/ZFP--I.M$"]V,T]' M7F"!D&&BK0(QKSU.D#$K9#!^'36])J1U/%^?U+^YW$TN6Z)P(M@S374^\CY[ MD&)&*J8?Q>$''O,96+U$,.6><*AM!WT/DDII41R=#4%!>?TFK\J\#1SE]J.LM32WU/CI>/*P6,PWB]ER MLX;[Y10F#\O-?/E]MIS,9VNXGJ(FE*E/< 64PX(R9DJI(E^;T%; 3XYAQG68 M\$*8'BP$U[F"&4\Q_=O?-\@-=WCB'H>M@@LB.]#KWD 8A -X6D_A^NI3BVZO MJ4?/Z?8OZ,X-7\%I1A.B+Z7:JF"[Z$Z5),&19]I$H=RC%W_\T!T&7UOX^@U? MOY5O@[( D<%*BK1*-#P3*0G7;^]QMBM]"2 E;ZJ%:= P#5J55I5,KQ;U!+ P04 " "-@JA:'E--*]D# "C M#P &0 'AL+W=O[,KB"*U9XZ0X7;>G/U''%WYWY,X:F9 G&3H.U_?PD@IUW*U!GZ0R4AW^]+ M/@](WOC(^)/8(4IX3N)43(R=E/M;TQ3A#A,B.FR/J;JS83PA4C7YUA1[CB3* M14ELVI8U,!-"4V,ZSON6?#IFF8QIBDL.(DL2PE_N,&;'B=$U3ATKNMU)W6%. MQWNRQ0#EM_V2JY99N40TP510E@+'S<1PN[?^2(_/!WRG>!1GUZ!7\LC8DV[, MHXEAZ0EAC*'4#D3]''"&<:R-U#1^EIY&%5(+SZ]/[G_F:U=K>20"9RS^02.Y MFQA# R+@_.()-,Q9T?@>K1RTQ-%4/R>!Y.HN53HY#=8K=^U_G<]@Z:[6"W\5W,^7X'Y=^?Z#OUC#C_GZ M'ESON[M8^\$:W(4'*_]O)?%RP;^@](O G:WG_RP"^.BA)#06G^ +N-&!I!*% M!#=!3D/R&>9IV%%WO@4>?/SP"3X 3>&!QK%Z8L38E&HY>E)F6$[]KIBZ_<;4 MN_# 4KD3X*<11C7Z6;.^UZ W%<:*I7UB>6HP[37&8S-PSGCFD%V9W0YR&]I6A?LG(J=T@YZK9 +'1[UJ(SJ]\G,[P%<0V(_HU$8>=GG7^UZWB7R =5$@'C4@###-. M)44!RXR'.[6W@[OEB.K,(>N(-MI=2[1-,Z]-,[\ELXN'EG+_9/6LPTIO%^8,Y:XQY+>LVS?R6S"Y8#RO6 MPT;62\Y"Q$C AK,$YHHR24,$MH$R"X'.0AWWX:_OYL#IV*^H-T:_EGJ;9GY+ M9A?41Q7U42/U-?)$,PYCED5?=$$1J8KH482<[O,Z115:X#_+LNXAIS,+"+:1 M1_5"U"6D.:0#+TAXW:EGUBB\-D=MFODMF14Y,L^J$77RW^9EH("09:DL#M-5 M;U%ISKJW7EZ1O>I7%:B;%U[F_S9%^:K.NEN:"HAQHRRMSHWZ+/&B)"P:DNWS MFN>1255!Y9<[544CUP/4_0UC\M30 :JZ?/H?4$L#!!0 ( (V"J%IO6O_7 MX0( *@( 9 >&PO=V]R:W-H965T4[5TQ2XW$XKM;$? MW&1S#](Z< MD:^ET8:*C(D5F<'"D.,9&,JX/B%'A ERMY:EQG$]=@UZM5HW;3Q,:P_! 0]? MJ#HG _^4!%X0D?O;&3D^.GEIQD7HECQHR8/*[J"'_+(+IY:%W3);Y9>ZH"E, M'"QC#6H#3O+VC1][[WJ@!BW4H,]Z<@L7)+R;T&'>Z#Q*([B;M!1"SKJ MW4W74JS.C*W>:OO/H4!&)*2ZNVA1+WIS>E4J!9@N2V@/=LPI;^G; M5'=17^QE+@C" W7G>[]/4*^7Y_IUSALK+]8M#OT#Z^;O'.#^?R^QQF7\AQIS M=^X=>X?C4;]B0A,.2]1YYT,,5M778MTQLJBNHH4T>+%5S37^2H"R$W!\*:5Y M[MC;K?TY27X!4$L#!!0 ( (V"J%J4]BZ1Q04 "&PO=V]R M:W-H965TV,DJ9G26#0H#FSA. MWPZI'UF34?;9?3P9\;4(_(C=QRA9AR&-?UZS@&_'%K9>/WCP%TN1?F!/1BNZ M8(],?%O=Q_+(+E5F?LBBQ.<1BME\;%WARQNOEP[(?O&WS[9)Y3U*4WGF_$=Z M\'DVMIPT(A:PJ4@EJ'S9L!L6!*F2C.._0M0JYTP'5M^_JM]ER^_9,5"64!3GF09'_1MOBM8Z'I.A$\+ ;+"$(_RE_I M2U&(R@!"]@P@Q0!R[ "W&.!FB>:196G=4D$GHYAO49S^6JJE;[+:9*-E-GZ4 M_AL?12R_]>4X,;G]=/V$/J('MN'!QH\6Z"9F,U^@.SKU U_\1&>W3% _2-ZC M=\B/T-.2KQ,:S9*1+>3TJ8@]+::ZSJZ;Z2N-SY P^(.*0'OKV>(O.WKUO MD+DY0L;%D(PMBU!6@I25()FNNT?WBSQ&?/ZF /]D7WP6+$S^;4HZ5_6:55,7 M7B8K.F5C2]HL8?&&69/??\-]YX^FU#6)U0K@E@5P(?6)ZH%I7H)Y48*FK$&I MMEGG8OU,+#WO;"9>SW&'W MRO![8/C?Y9DMD5T8+SCZ]=J45XN8,7D2%4TY@7IM<](D5DN]7Z;>-^+$OLX" M:!*K%6!0%F"@SXF# ^;)TP$G[)C.L$QGV-V)PP/FR<,')^@8_D49_@48_E44 MK6F ICP,?9&:#\T9:THEE\&DDHMS[CB]G5S V3KF@AUUO7=..*_(C[[ZD1^N MP\;K.RC=UF&ZU.J%J( /-G*6*61U%4&36KT(BGDP2!236_8L9&=O6$0CD7Q M<_^%S3Y.E[(]6/9Y+%D>Q50B=V,M9PR].7 MO2VO%71TJ=4+H8@(>V9:7BLNZ5*K%T%Q%8;!:K?E!1?R[![)%7/ #O9[+MVK MM+N[V^LFR DK=,(@F!SN]?TKO5_HCLUD 0)TMY8+//1I/F?9(AL]4-%XP8-C M:=T7)I +*^;" S/FT(1611%,@!I6I(9A5).+ZX4?R1;P(\'D!"+U0O/_?G@< M[< 3=DU(L1N&X>TD/Q0H)-\]_G7WT%@%33!7U,H$&A*%AL0QLP.B%0MUJ=6+ MH+"0@,35P@&%T$7= 'BG_^'INJ93V=2" 4]3_U\%LAB1+ 2ZIDE^04!GT.6B M:6/O&HZU=:.8H$JBJ)*X9MRBE2AUJ=6+H(B2P)ML+=SB'>46$VQ(%!N24S;= M3G-+>@EI=H76C3M=:O4**OXD9O;NB%:4U*56+X)"20+OW[5PQ:#)%637%2:@ MD"@H)# 4GN:*?&VM[QJBB2>+RIJ@4Z+HE%R8<8M6[-2E5K_KI+#3A71@=4''%OKWC!!JJXB M5;=GQB!:85.76KT("C9=>+.SA4'ZQZP^X.FZIJ.PT86Q4:<[]E\FM&Y7ZE*K M5TR1J3LTXP*M$*E+K5X$!9$NO,79P@47QZPVX.DZIN,I'/1.O$%="K[('FY^Y$#S,WBX9E6?\] ?R^SGG MXO4@?5:Z?#9^\C]02P,$% @ C8*H6JW<+*ML @ N@8 !D !X;"]W M;W)K&ULE95=;]HP%(;_BI554RNM30C-!PPBC;)J MNYB$2KM=FW!"K#IQ9CO0_OL=.]1B:@KB)O'7>Y[W./;)9"?DLRH!-'FI>*VF M7JEU,_9]E9=0474C&JAQIA"RHAJ[NUFO@:+9A ?K['S3I<^ 'N%Y4W9#CX0L(@C,C3 M'FD%<@M>]OG3 M( Z^'C$U=*:&QZ)G)L<^3YTJMBIS:;;9($UPY;:'=>M8MZ=8<1^K4T4'K# * M@GY6Y%C1*5;2QXK.8,6.%9]BI7VL^ Q6XEC)*=:HCY6'8^1@HZ.P[BH7W1UO)*MSUN! XVY[0;BH-]<:9(4E;:7[G(W>G=HD M"-YM@W]0BDQ5QPN_8;4B' K4!3<)IB:[2MEUM&AL=5H)C;7.-DO\N8 T"W"^ M$$*_=4S!<[^K[!]02P,$% @ C8*H6DM8[K1H P _ T !D !X;"]W M;W)K&ULO9==;],P%(;_BA40 @F6S[;K:".M#1.5 MV)CH!A>("SH3O,&%9/!+T.0&"2\#>R]W$9H-(L=R!FWK^0>Y:Y^4!]WR ,)*[G5$XU;/Q-5^[JEGDG/9PSFZ#G_E MA!.=(-\_R3ZT$)#R'RU+G!667KNEVCVN^!:',#7D]L"![<#P7[VPA];[-EQ] MF@4]F350>A5*K\O=GU.Y0T6@WF7)4%"YSTBD#-"J9/P697)SI6L48AX?[D9M M@#LG.A=P83;49FIKWOFV,Q[9EQ-S5T?7TYP-=(,*W: 3W1+"G,$WPJ&-1J?V M7!I]F@4]F368#2MFP_XS=]@GRC[-@I[,&BA'% M<]'U9-9 =UFAN^Q$]\!PQG%15X64B[9_Z%EA,:A!&;A'2#KG.1=)3V8-).,* MR;@323T?-1($3[)TYNTO3*?7N1DY/GK[/.\YZ.!XT+@VIA&R;?TM[:S.H&\P M86B'DQQ4FAPR1#9"FF<2 8,0R ZODM8=OC2OK\D]3IKN)9S[BO3E5@ S:V5Q M"FRCCQ<B+VK+J+8XP)"T*TNOE=4R%)>-V-Y/ .F!LC[:TK%X4)-4!WX_#]02P,$% M @ C8*H6G>L5S[< P Q@\ !D !X;"]W;W)K&ULM5==;]LV%/TKA%8,+;!&$FW+=F8+L)-E,]"F09RTS[1T;1&A1)6D[&2_ MOJ3D2%XM,8.PO=CZ.O><2UZ>2\X.7#S)!$"AYY1E<%;DIHYH2S\MF="&>\4(QF<">0+-*4B)[A)E'KCA+"<[6(-ZS.^$OG/K*#%-(9.49TC =NXL_,LE'AA M^<57"@=Y@"&7R@XZPAJ@0\(U*0.\0S=!# MP@NI@7+F*JW;L+O14>.RTH@[-'XFX@)YX]\0]O (/:ZOT?MW'_X9QM5IU[GC M.G=B5($'MPPE]_\0/O=XNJ0:UJ8(L> M7A&9M&FJ4$&),FMM'_K><#IS]RU[)AT$9=!1F= M4 ^\P:2=>E13CZS4=P)R0JM:XBH!@4CG=(S.^+M3#VK^P,I_0Y]-)7=R!N>< MHRENYQS7G.-_-]PY>3%C?9*\7BP",H58LZS:5(W/5'TC,_#&08>0:2UD:AZY)WVMLTNOI%4?@?RSLQ+]]>QT;I]Z_.C7-%,EVM*RM;L7^F94$@>>USYW? MN*EOM<5P]1,W(BD7BOY=%A'*05 >M\JQAQVA%R!"V@:KL5;_#6\M&ZI>;O? M2EDRH7G[&%D#]9W5QI?]8=]RLSIZ7V&-:_MVV^Y3;J.S]-0;NVQV\ M=[W9P_J#MPNN,7S?[OC7L-<;WUQWF@>(DHPSOGMIU60-TW=6FP;@3_J6F[5U M]!76- 3?WA'ZE-OT?*/D=]H;;CH MAIY[W)[(^SXS6K#32_ ]E[P)^?Q@3+6 M*L,*[3F1^&2KW7NO_7]LMG'3$K"])?2H,'R^%9_XP23XJ<+'J8\R. M9A(QV&J<=S'6OBBJ0V-UHWA>'M0V7.DN55XF^J -PGR@WV\Y5Z\WYNQ7']W# M'U!+ P04 " "-@JA:$VW#VDH# #.% #0 'AL+W-T>6QE+M[_G!?Z]EW@[FWN_$+"UR2T"MZ8L>*9B0$94\+'BP,IHSL72A3L0F!2B4($VI6I2 MM2%2_79PV_6@BFN=G,M"V=PN@_L]KH?O *L>&.1"- 8[Q 6&_9)JS92\,QT[ MV 9?0$'=?ER6QN%4T66[V1V33=,8JIM.QG5 ?U/- M:6_*7K]*-RCY"9*C_5[^]A-WIR"R?@43)Y$3?:.WV24 M'+_'^LQWY":[;_;-OM=D6)^$-HY;6X>M)AK H79 OL/Q6*R3!N,Y%YK+NC?C M:9XTH^YA(>I1Z_97F%X[ M;D[4)A>7*5NP=%1WU71LFX%IF*SU!81=Y,Y>?@3C.,R/ (;EP1Q@',?"\OQ/ M\^FA\W$8YJWG17HHIX=R',N'C.P'R^/G).;RSS1)HBB.L14=C;P.1MBZQ3'\ M^-4P;\# \D"FOUMK?+?Q"ME?!]B>[JL0;*9X)6(SQ=<:$/^Z 2-)_+N-Y0$& MM@M8[4!^?QZH*3\GBF!7,6_8$XPC28(A4(O^&HUC9'5B^/CW!WM*HBA)_ A@ M?@=1A"'P-.((Y@ \8$@4V??@SOLH7+VGPO5_,(=_ %!+ P04 " "-@JA: MEXJ[', 3 @ "P %]R96QS+RYR96QSG9*Y;L,P#$!_Q=">, ?0(8@S M9?$6!/D!5J(/V!(%BD6=OZ_:I7&0"QEY/3P2W!YI0.TXI+:+J1C]$%)I6M6X M 4BV)8]ISI%"KM0L'C6'TD!$VV-#L%HL/D N&6:WO606IW.D5XA-/E_G;@2=&A(E@6FD7) MTZ(=I7\=Q_:0T^FO8R*T>EOH^7%H5 J.W&,EC'%BM/XU@LD/['X 4$L#!!0 M ( (V"J%HPWB+[#@8 (8O / >&PO=V]R:V)O;VLN>&ULQ9I;<]HX M%(#_BH:7[3YT"<9VVD[3&0.">!9LKVTRVZ<=!0OBJ9$869!M?_W*)C1R V?V MY21/X OF\]'E.[I\?I3JV[V4W\B_VTK4-[T'K7>?^OUZ]<"WK/Y#[K@P5]92 M;9DVAVK3KW>*LZ)^X%QOJ[YS=>7WMZP4O2^?3\]*5-\^D)JO="F%.=FNWWBO?(MA3EMOS!BYO>58_4#_+Q5JKRAQ2:5=E* MR:JZZ0V.%^ZXTN7JQ>FL@T>P^90;DIN=?F0>N2U7K]H[V^9>YLW-7\=%L>WU@;7 MBJ'Z5)H+*BQ:<#S(<1Q-:)31"3'?LG@>3H+<'(R">1"-*;$@'0#2>4/(?QP+ M<@A #M\$,LO-QX)&%J0+0+IO"-F)I = >F\).;0@?0#2QX41O/)S3-?B/TKV68?[790&,@ M*X,NDGG\E5(RHA&=ACE)3+EV(@>I8H#LBC R-8N2//B[6YJ0&0;(:HA,?9_' M6482FIKJ'Z1VBQQ .AA@^V!I:MK"4#4=UXS&LS1(;L,Q":-IG'9ZL0$DA &R M$:9!F)*[8+ZD9&':Z3)MC-KI.0:0"@;(+C U;A'F+5(;2*.M/(QF-!J'W4H( MJ6" [((L3XT_9Z9PDR#-(].QW(8)"68I;8-I8T*2&"!;8D)''19("0-D)XR6 M61A1TVY- 8_"J%6\G1%#AG"0#9&P[^10DX2K]N=BQ5K/>*VY"0*AQD M582B+@NN2*Y8889A)%"*B0UO?E7;C.#8 ED863B+PFDX#J*/V[S049Q$$VR*6L[@G4QH0,XB ;Y)C>G8T> M9 X'V1SGRH# MLLL0V2Z-A<\5\1"RR1#9)N=T?!82TLD062?@O$!WK@J*%TT0N=B_Q(3\,GR=>:HVFK6NB98DOC?UTI2Z(M.]C0DY M9HCLF&?,H"C*YC*KK"E]&Q-RS!![V'(Q)6L;NST3#3G&17;,1<>J?1<3 MDHZ'+)V+F$%5R97M1@]6SN5"E^+0F<+P(.EXR-*Q%P)_ULCRP%]FP1XD M'>_UI]9,#\JJU;[Z94SA0=+QD*5S%C,0NGQ?E-6^TX0@!WG(#H)G 3M;1R ' M^<@.@C%=&Q-RD(^].0S$]&Q,R$(^]O8P$-.W,2$+^<@6NC3U:]I177.["?F0 MA7QD"P&8S:2'C0E9R$??) :LN9-W-B:X2PS90N"J>VQCHLM* MU23P-B9DH>O60OWVYOK+YX*O2\&+R/Q%;PN5ZS]62]KZHF M&8O%7++BM(W\M 7^RW]02P,$% @ C8*H6JQM4%<\ @ KRH !H !X M;"]?;]LAZ:K MV71;>@.2GGS0)(K'H>W=3T@7R2.SF$WQ6SER\?O7Y?R9VF\U^G7]WZS_'?!K_,;C^Z(;WLLMYK!:O[;#-XZJJ/P_7 MW:6^;-+=>7*U>'Y;5I@_*"U1QB5!T@1K JT3@ MWD*@MZ#>0J"WH-Y"H+>@WD*@MZ#>0J"WH-Y"H+>BWDJ@MZ+>2J"WHMY*H+=. M7I80Z*VHMQ+HK:BW$NBMJ+<2Z*VHMQ+HK:BW$NBMJ+<2Z&VHMQ'H;:BW$>AM MJ+<1Z&VHMQ'H;9.7W01Z&^IM!'H;ZFT$>AOJ;01Z&^IM!'H;ZFT$>COJ[01Z M.^KM!'H[ZNT$>COJ[01Z.^KM!'K[Y&,E@=Z.>CN!WHYZ.X'>CGH[@=Z.>CN! MWH%Z!X'>@7H'@=Z!>@>!WH%Z!X'>@7H'@=Z!>@>!WC'YV81 [T"]@T#O0+V# M0.] O8- [P;U;@CT;E#OAD#O!O5N?E+O,GX=?H+4$L#!!0 ( (V"J%I :Q>Z ( ,8I 3 6T-O M;G1E;G1?5'EP97-=+GAM;,W:34[#,! %X*M4V:+&]6\!43; %EAP 9-,VZA) M;-D&RNUQ4D "004J$F_3J+4];^*1OE7/[IX]Q>KSRM*%SJ;\-:R8M]7&KHB)V6NZ)'^Y-3OF':??*#\\1#*>G/A>BD)K]K_B> MF$L?_'XT3+NF^H?9^7J?7-B,\XAL?!Q^QQ]G_%[_EWT(D#XD2!\*I \-TH?X"4$L! A0#% @ MC8*H6D;'34B5 S0 ! ( ! &1O8U!R;W!S+V%P M<"YX;6Q02P$"% ,4 " "-@JA:4+&DV/ K @ $0 M@ '# 9&]C4')O<',O8V]R92YX;6Q02P$"% ,4 " "-@JA:F5R<(Q & M "<)P $P @ 'B 0 >&PO=&AE;64O=&AE;64Q+GAM;%!+ M 0(4 Q0 ( (V"J%I7!,8+V04 /X> 8 " @2,( !X M;"]W;W)K&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H6ODZ!D $ P EPH !@ ("! MKA4 'AL+W=O@8 !X;"]W;W)K&PO=V]R:W-H965T&UL4$L! A0#% @ MC8*H6ME]X.>+"0 =BP !@ ("!ZB< 'AL+W=O&UL4$L! A0#% @ C8*H6@+G>]?I M @ 9@< !D ("!LF$ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H6M *\4*G! 90T !D M ("!MG0 'AL+W=O0 >&PO=V]R M:W-H965TN !X;"]W;W)K&UL M4$L! A0#% @ C8*H6H*'C%SF!0 APX !D ("!28@ M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MC8*H6AL?&0S^!P O!0 !D ("!LYL 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H6BN-"^\W( M('4 !D ("!XZ@ 'AL+W=OY9!F($ \#P &0 @(%1 MR0 >&PO=V]R:W-H965TK- !X;"]W;W)K&UL4$L! A0#% @ C8*H6@"TV_=Y! 20P !D M ("!B]< 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ C8*H6E 8S/&M! 6P\ !D ("!?^0 'AL M+W=O@$ M P#P &0 @(%CZ0 >&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H M6OV[?_Q4 P ^0< !D ("!\?$ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H6E!,(/&/ @ _ < M !D ("!-_L 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H6K%.;K7B P _ \ !D M ("!500! 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ C8*H6N_M!P04 P F0@ !D ("!PP\! 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H6M7= MS6^(!P +CD !D ("!AQH! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H6B92*(0] P DPD !D M ("!:"@! 'AL+W=O&PO M=V]R:W-H965TR*E7P, M & * 9 " @1TO 0!X;"]W;W)K&UL4$L! A0#% @ C8*H6L_?D*:B @ < !D ("! MLS(! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ C8*H6E)^PN+8" IT< !D ("!:#T! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H6L.S#KH& P ^ D !D M ("!UE&PO=V]R M:W-H965T 0!X;"]W;W)K&UL M4$L! A0#% @ C8*H6N%?==6"! ?A< !D ("!WF(! M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MC8*H6@TIQFE> @ 1P4 !D ("!V6X! 'AL+W=OP$ >&PO=V]R:W-H965T&UL4$L! A0#% @ C8*H6DM8[K1H P _ T !D M ("!T8,! 'AL+W=O&PO=V]R:W-H M965TZ ( ,8I 3 " 9"8 0!;0V]N E=&5N=%]4>7!E&UL4$L%!@ !0 % YQ4 ,&: 0 $! end XML 85 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 86 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 88 FilingSummary.xml IDEA: XBRL DOCUMENT 3.25.1 html 202 370 1 false 78 0 false 4 false false R1.htm 995200090 - Document - Document And Entity Information Sheet http://www.pdf.com/role/DocumentDocumentAndEntityInformation Document And Entity Information Cover 1 false false R2.htm 995200100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS Sheet http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets CONDENSED CONSOLIDATED BALANCE SHEETS Statements 2 false false R3.htm 995200105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals) Sheet http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals) Statements 3 false false R4.htm 995200200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS) Sheet http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS) Statements 4 false false R5.htm 995200300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY Sheet http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY Statements 5 false false R6.htm 995200400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS Sheet http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS Statements 6 false false R7.htm 995210101 - Disclosure - BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES Sheet http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPolicies BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES Notes 7 false false R8.htm 995210201 - Disclosure - REVENUE Sheet http://www.pdf.com/role/DisclosureRevenue REVENUE Notes 8 false false R9.htm 995210301 - Disclosure - BALANCE SHEET COMPONENTS Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponents BALANCE SHEET COMPONENTS Notes 9 false false R10.htm 995210401 - Disclosure - LEASES Sheet http://www.pdf.com/role/DisclosureLeases LEASES Notes 10 false false R11.htm 995210501 - Disclosure - STOCKHOLDERS' EQUITY Sheet http://www.pdf.com/role/DisclosureStockholdersEquity STOCKHOLDERS' EQUITY Notes 11 false false R12.htm 995210601 - Disclosure - EMPLOYEE BENEFIT PLANS Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlans EMPLOYEE BENEFIT PLANS Notes 12 false false R13.htm 995210701 - Disclosure - INCOME TAXES Sheet http://www.pdf.com/role/DisclosureIncomeTaxes INCOME TAXES Notes 13 false false R14.htm 995210801 - Disclosure - NET LOSS PER SHARE Sheet http://www.pdf.com/role/DisclosureNetLossPerShare NET LOSS PER SHARE Notes 14 false false R15.htm 995210901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation CUSTOMER AND GEOGRAPHIC INFORMATION Notes 15 false false R16.htm 995211001 - Disclosure - FAIR VALUE MEASUREMENTS Sheet http://www.pdf.com/role/DisclosureFairValueMeasurements FAIR VALUE MEASUREMENTS Notes 16 false false R17.htm 995211101 - Disclosure - COMMITMENTS AND CONTINGENCIES Sheet http://www.pdf.com/role/DisclosureCommitmentsAndContingencies COMMITMENTS AND CONTINGENCIES Notes 17 false false R18.htm 995211201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS Sheet http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS Notes 18 false false R19.htm 995211301 - Disclosure - DEBT Sheet http://www.pdf.com/role/DisclosureDebt DEBT Notes 19 false false R20.htm 995211401 - Disclosure - BUSINESS COMBINATION Sheet http://www.pdf.com/role/DisclosureBusinessCombination BUSINESS COMBINATION Notes 20 false false R21.htm 995410 - Disclosure - Pay vs Performance Disclosure Sheet http://xbrl.sec.gov/ecd/role/PvpDisclosure Pay vs Performance Disclosure Notes 21 false false R22.htm 995445 - Disclosure - Insider Trading Arrangements Sheet http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements Insider Trading Arrangements Notes 22 false false R23.htm 99920102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies) Sheet http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies SIGNIFICANT ACCOUNTING POLICIES (Policies) Policies 23 false false R24.htm 99930203 - Disclosure - REVENUE (Tables) Sheet http://www.pdf.com/role/DisclosureRevenueTables REVENUE (Tables) Tables http://www.pdf.com/role/DisclosureRevenue 24 false false R25.htm 99930303 - Disclosure - BALANCE SHEET COMPONENTS (Tables) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables BALANCE SHEET COMPONENTS (Tables) Tables http://www.pdf.com/role/DisclosureBalanceSheetComponents 25 false false R26.htm 99930403 - Disclosure - LEASES (Tables) Sheet http://www.pdf.com/role/DisclosureLeasesTables LEASES (Tables) Tables http://www.pdf.com/role/DisclosureLeases 26 false false R27.htm 99930603 - Disclosure - EMPLOYEE BENEFIT PLANS (Tables) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables EMPLOYEE BENEFIT PLANS (Tables) Tables http://www.pdf.com/role/DisclosureEmployeeBenefitPlans 27 false false R28.htm 99930803 - Disclosure - NET LOSS PER SHARE (Tables) Sheet http://www.pdf.com/role/DisclosureNetLossPerShareTables NET LOSS PER SHARE (Tables) Tables http://www.pdf.com/role/DisclosureNetLossPerShare 28 false false R29.htm 99930903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) Tables http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation 29 false false R30.htm 99931003 - Disclosure - FAIR VALUE MEASUREMENTS (Tables) Sheet http://www.pdf.com/role/DisclosureFairValueMeasurementsTables FAIR VALUE MEASUREMENTS (Tables) Tables http://www.pdf.com/role/DisclosureFairValueMeasurements 30 false false R31.htm 99931303 - Disclosure - DEBT (Tables) Sheet http://www.pdf.com/role/DisclosureDebtTables DEBT (Tables) Tables http://www.pdf.com/role/DisclosureDebt 31 false false R32.htm 99931403 - Disclosure - BUSINESS COMBINATION (Tables) Sheet http://www.pdf.com/role/DisclosureBusinessCombinationTables BUSINESS COMBINATION (Tables) Tables http://www.pdf.com/role/DisclosureBusinessCombination 32 false false R33.htm 99940101 - Disclosure - BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) Details http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPolicies 33 false false R34.htm 99940201 - Disclosure - REVENUE (Details) Sheet http://www.pdf.com/role/DisclosureRevenueDetails REVENUE (Details) Details http://www.pdf.com/role/DisclosureRevenueTables 34 false false R35.htm 99940202 - Disclosure - REVENUE - Disaggregation of Revenue (Details) Sheet http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails REVENUE - Disaggregation of Revenue (Details) Details 35 false false R36.htm 99940203 - Disclosure - REVENUE - Contract Balances (Details) Sheet http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails REVENUE - Contract Balances (Details) Details 36 false false R37.htm 99940204 - Disclosure - REVENUE - Deferred Revenues (Details) Sheet http://www.pdf.com/role/DisclosureRevenueDeferredRevenuesDetails REVENUE - Deferred Revenues (Details) Details 37 false false R38.htm 99940205 - Disclosure - REVENUE - Costs to Obtain or Fulfill a Contract (Details) Sheet http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails REVENUE - Costs to Obtain or Fulfill a Contract (Details) Details 38 false false R39.htm 99940206 - Disclosure - REVENUE - Additional Information (Details) Sheet http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails REVENUE - Additional Information (Details) Details 39 false false R40.htm 99940301 - Disclosure - BALANCE SHEET COMPONENTS (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails BALANCE SHEET COMPONENTS (Details) Details http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables 40 false false R41.htm 99940302 - Disclosure - BALANCE SHEET COMPONENTS - Prepaid Expense and Other Current Assets (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails BALANCE SHEET COMPONENTS - Prepaid Expense and Other Current Assets (Details) Details 41 false false R42.htm 99940303 - Disclosure - BALANCE SHEET COMPONENTS - Property and Equipment (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails BALANCE SHEET COMPONENTS - Property and Equipment (Details) Details 42 false false R43.htm 99940304 - Disclosure - BALANCE SHEET COMPONENTS - Goodwill and Intangible Assets, Net (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsGoodwillAndIntangibleAssetsNetDetails BALANCE SHEET COMPONENTS - Goodwill and Intangible Assets, Net (Details) Details 43 false false R44.htm 99940305 - Disclosure - BALANCE SHEET COMPONENTS - Intangible Assets (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails BALANCE SHEET COMPONENTS - Intangible Assets (Details) Details 44 false false R45.htm 99940306 - Disclosure - BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details) Details 45 false false R46.htm 99940307 - Disclosure - BALANCE SHEET COMPONENTS - Other Non-current Assets (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails BALANCE SHEET COMPONENTS - Other Non-current Assets (Details) Details 46 false false R47.htm 99940308 - Disclosure - BALANCE SHEET COMPONENTS - Net Investment in Sales-Type Lease (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails BALANCE SHEET COMPONENTS - Net Investment in Sales-Type Lease (Details) Details 47 false false R48.htm 99940309 - Disclosure - BALANCE SHEET COMPONENTS - Maturities of Lease Payments Under Sales-type Leases (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails BALANCE SHEET COMPONENTS - Maturities of Lease Payments Under Sales-type Leases (Details) Details 48 false false R49.htm 99940401 - Disclosure - LEASES (Details) Sheet http://www.pdf.com/role/DisclosureLeasesDetails LEASES (Details) Details http://www.pdf.com/role/DisclosureLeasesTables 49 false false R50.htm 99940402 - Disclosure - LEASES - Components of Operating Lease Expense (Details) Sheet http://www.pdf.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails LEASES - Components of Operating Lease Expense (Details) Details 50 false false R51.htm 99940403 - Disclosure - LEASES - Maturity of Operating Lease Liabilities (Details) Sheet http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails LEASES - Maturity of Operating Lease Liabilities (Details) Details 51 false false R52.htm 99940501 - Disclosure - STOCKHOLDERS EQUITY (Details) Sheet http://www.pdf.com/role/DisclosureStockholdersEquityDetails STOCKHOLDERS EQUITY (Details) Details 52 false false R53.htm 99940601 - Disclosure - EMPLOYEE BENEFIT PLANS - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails EMPLOYEE BENEFIT PLANS - Narrative (Details) Details 53 false false R54.htm 99940602 - Disclosure - EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) Details 54 false false R55.htm 99940603 - Disclosure - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) Details 55 false false R56.htm 99940604 - Disclosure - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) Details 56 false false R57.htm 99940701 - Disclosure - INCOME TAXES - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails INCOME TAXES - Narrative (Details) Details 57 false false R58.htm 99940801 - Disclosure - NET LOSS PER SHARE - Calculation of Earnings Per Share (Details) Sheet http://www.pdf.com/role/DisclosureNetLossPerShareCalculationOfEarningsPerShareDetails NET LOSS PER SHARE - Calculation of Earnings Per Share (Details) Details 58 false false R59.htm 99940802 - Disclosure - NET LOSS PER SHARE - Anti-dilutive Securities (Details) Sheet http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails NET LOSS PER SHARE - Anti-dilutive Securities (Details) Details 59 false false R60.htm 99940901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Segment Revenue, Gross Profit, and Net Income (Loss) (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationSegmentRevenueGrossProfitAndNetIncomeLossDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Segment Revenue, Gross Profit, and Net Income (Loss) (Details) Details 60 false false R61.htm 99940902 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) Details 61 false false R62.htm 99940903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) Details 62 false false R63.htm 99940904 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) Details 63 false false R64.htm 99941001 - Disclosure - FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details) Sheet http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details) Details 64 false false R65.htm 99941002 - Disclosure - FAIR VALUE MEASUREMENTS - Additional Information (Details) Sheet http://www.pdf.com/role/DisclosureFairValueMeasurementsAdditionalInformationDetails FAIR VALUE MEASUREMENTS - Additional Information (Details) Details 65 false false R66.htm 99941101 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details) Sheet http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails COMMITMENTS AND CONTINGENCIES (Details) Details http://www.pdf.com/role/DisclosureCommitmentsAndContingencies 66 false false R67.htm 99941201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) Sheet http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) Details http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions 67 false false R68.htm 99941301 - Disclosure - DEBT - Outstanding Debt (Details) Sheet http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails DEBT - Outstanding Debt (Details) Details 68 false false R69.htm 99941302 - Disclosure - DEBT - Revolving Credit Facility (Details) Sheet http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails DEBT - Revolving Credit Facility (Details) Details 69 false false R70.htm 99941303 - Disclosure - DEBT - Future Payments on Total Debt (Details) Sheet http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails DEBT - Future Payments on Total Debt (Details) Details 70 false false R71.htm 99941401 - Disclosure - BUSINESS COMBINATION - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails BUSINESS COMBINATION - Narrative (Details) Details 71 false false R72.htm 99941402 - Disclosure - BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details) Sheet http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details) Details 72 false false All Reports Book All Reports pdfs-20250331.xsd pdfs-20250331_cal.xml pdfs-20250331_def.xml pdfs-20250331_lab.xml pdfs-20250331_pre.xml pdfs-20250331x10q.htm http://fasb.org/srt/2024 http://fasb.org/us-gaap/2024 http://xbrl.sec.gov/dei/2024 http://xbrl.sec.gov/ecd/2024 true true JSON 91 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "pdfs-20250331x10q.htm": { "nsprefix": "pdfs", "nsuri": "http://www.pdf.com/20250331", "dts": { "schema": { "local": [ "pdfs-20250331.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/2023/calculation-1.1.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd", "https://xbrl.sec.gov/country/2024/country-2024.xsd", "https://xbrl.sec.gov/dei/2024/dei-2024.xsd", "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd", "https://xbrl.sec.gov/ecd/2024/ecd-sub-2024.xsd", "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd" ] }, "calculationLink": { "local": [ "pdfs-20250331_cal.xml" ] }, "definitionLink": { "local": [ "pdfs-20250331_def.xml" ] }, "labelLink": { "local": [ "pdfs-20250331_lab.xml" ] }, "presentationLink": { "local": [ "pdfs-20250331_pre.xml" ] }, "inline": { "local": [ "pdfs-20250331x10q.htm" ] } }, "keyStandard": 328, "keyCustom": 42, "axisStandard": 27, "axisCustom": 0, "memberStandard": 48, "memberCustom": 27, "hidden": { "total": 21, "http://xbrl.sec.gov/dei/2024": 5, "http://fasb.org/us-gaap/2024": 14, "http://www.pdf.com/20250331": 2 }, "contextCount": 202, "entityCount": 1, "segmentCount": 78, "elementCount": 647, "unitCount": 4, "baseTaxonomies": { "http://fasb.org/us-gaap/2024": 690, "http://xbrl.sec.gov/dei/2024": 29, "http://xbrl.sec.gov/ecd/2024": 4, "http://fasb.org/srt/2024": 2 }, "report": { "R1": { "role": "http://www.pdf.com/role/DocumentDocumentAndEntityInformation", "longName": "995200090 - Document - Document And Entity Information", "shortName": "Document And Entity Information", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R2": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets", "longName": "995200100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS", "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R3": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals", "longName": "995200105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)", "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "unitRef": "Unit_Divide_USD_shares_MQUIhyaqcEKaMHd_-9YMfQ", "xsiNil": "false", "lang": null, "decimals": "5", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "unitRef": "Unit_Divide_USD_shares_MQUIhyaqcEKaMHd_-9YMfQ", "xsiNil": "false", "lang": null, "decimals": "5", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R4": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss", "longName": "995200200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS)", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ResearchAndDevelopmentExpense", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R5": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity", "longName": "995200300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "5", "firstAnchor": { "contextRef": "As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_lHAT50hC10iD2uOSIljFmg", "name": "us-gaap:StockholdersEquity", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_lHAT50hC10iD2uOSIljFmg", "name": "us-gaap:StockholdersEquity", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R6": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows", "longName": "995200400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ProfitLoss", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ProfitLoss", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R7": { "role": "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPolicies", "longName": "995210101 - Disclosure - BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "shortName": "BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "7", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R8": { "role": "http://www.pdf.com/role/DisclosureRevenue", "longName": "995210201 - Disclosure - REVENUE", "shortName": "REVENUE", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "8", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R9": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponents", "longName": "995210301 - Disclosure - BALANCE SHEET COMPONENTS", "shortName": "BALANCE SHEET COMPONENTS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R10": { "role": "http://www.pdf.com/role/DisclosureLeases", "longName": "995210401 - Disclosure - LEASES", "shortName": "LEASES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R11": { "role": "http://www.pdf.com/role/DisclosureStockholdersEquity", "longName": "995210501 - Disclosure - STOCKHOLDERS' EQUITY", "shortName": "STOCKHOLDERS' EQUITY", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R12": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlans", "longName": "995210601 - Disclosure - EMPLOYEE BENEFIT PLANS", "shortName": "EMPLOYEE BENEFIT PLANS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R13": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxes", "longName": "995210701 - Disclosure - INCOME TAXES", "shortName": "INCOME TAXES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R14": { "role": "http://www.pdf.com/role/DisclosureNetLossPerShare", "longName": "995210801 - Disclosure - NET LOSS PER SHARE", "shortName": "NET LOSS PER SHARE", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R15": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation", "longName": "995210901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R16": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurements", "longName": "995211001 - Disclosure - FAIR VALUE MEASUREMENTS", "shortName": "FAIR VALUE MEASUREMENTS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R17": { "role": "http://www.pdf.com/role/DisclosureCommitmentsAndContingencies", "longName": "995211101 - Disclosure - COMMITMENTS AND CONTINGENCIES", "shortName": "COMMITMENTS AND CONTINGENCIES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R18": { "role": "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions", "longName": "995211201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "shortName": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R19": { "role": "http://www.pdf.com/role/DisclosureDebt", "longName": "995211301 - Disclosure - DEBT", "shortName": "DEBT", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R20": { "role": "http://www.pdf.com/role/DisclosureBusinessCombination", "longName": "995211401 - Disclosure - BUSINESS COMBINATION", "shortName": "BUSINESS COMBINATION", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "20", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R21": { "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure", "longName": "995410 - Disclosure - Pay vs Performance Disclosure", "shortName": "Pay vs Performance Disclosure", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "21", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:NetIncomeLoss", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": null }, "R22": { "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "longName": "995445 - Disclosure - Insider Trading Arrangements", "shortName": "Insider Trading Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "22", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R23": { "role": "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies", "longName": "99920102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies)", "shortName": "SIGNIFICANT ACCOUNTING POLICIES (Policies)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "policies", "menuCat": "Policies", "order": "23", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ConsolidationPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ConsolidationPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R24": { "role": "http://www.pdf.com/role/DisclosureRevenueTables", "longName": "99930203 - Disclosure - REVENUE (Tables)", "shortName": "REVENUE (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "24", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerPolicyTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerPolicyTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R25": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables", "longName": "99930303 - Disclosure - BALANCE SHEET COMPONENTS (Tables)", "shortName": "BALANCE SHEET COMPONENTS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "25", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfOtherCurrentAssetsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfOtherCurrentAssetsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R26": { "role": "http://www.pdf.com/role/DisclosureLeasesTables", "longName": "99930403 - Disclosure - LEASES (Tables)", "shortName": "LEASES (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "26", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R27": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables", "longName": "99930603 - Disclosure - EMPLOYEE BENEFIT PLANS (Tables)", "shortName": "EMPLOYEE BENEFIT PLANS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "27", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R28": { "role": "http://www.pdf.com/role/DisclosureNetLossPerShareTables", "longName": "99930803 - Disclosure - NET LOSS PER SHARE (Tables)", "shortName": "NET LOSS PER SHARE (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "28", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R29": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables", "longName": "99930903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "29", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R30": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurementsTables", "longName": "99931003 - Disclosure - FAIR VALUE MEASUREMENTS (Tables)", "shortName": "FAIR VALUE MEASUREMENTS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "30", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R31": { "role": "http://www.pdf.com/role/DisclosureDebtTables", "longName": "99931303 - Disclosure - DEBT (Tables)", "shortName": "DEBT (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "31", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R32": { "role": "http://www.pdf.com/role/DisclosureBusinessCombinationTables", "longName": "99931403 - Disclosure - BUSINESS COMBINATION (Tables)", "shortName": "BUSINESS COMBINATION (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "32", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R33": { "role": "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "longName": "99940101 - Disclosure - BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details)", "shortName": "BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "33", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": null }, "R34": { "role": "http://www.pdf.com/role/DisclosureRevenueDetails", "longName": "99940201 - Disclosure - REVENUE (Details)", "shortName": "REVENUE (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "34", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "pdfs:NumberOfRevenueSources", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "p", "us-gaap:RevenueRecognitionPolicyTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "pdfs:NumberOfRevenueSources", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "p", "us-gaap:RevenueRecognitionPolicyTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R35": { "role": "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails", "longName": "99940202 - Disclosure - REVENUE - Disaggregation of Revenue (Details)", "shortName": "REVENUE - Disaggregation of Revenue (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "35", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "pdfs:PercentOfRevenue", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "us-gaap:RevenueFromContractWithCustomerPolicyTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "pdfs:PercentOfRevenue", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "us-gaap:RevenueFromContractWithCustomerPolicyTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R36": { "role": "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails", "longName": "99940203 - Disclosure - REVENUE - Contract Balances (Details)", "shortName": "REVENUE - Contract Balances (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "36", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:ContractWithCustomerAssetNetCurrent", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfOtherCurrentAssetsTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:ContractWithCustomerAssetNet", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "pdfs:ContractBalancesPolicyTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R37": { "role": "http://www.pdf.com/role/DisclosureRevenueDeferredRevenuesDetails", "longName": "99940204 - Disclosure - REVENUE - Deferred Revenues (Details)", "shortName": "REVENUE - Deferred Revenues (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:DeferredRevenueCurrent", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:DeferredRevenueNoncurrent", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:DeferredRevenueByArrangementDisclosureTextBlock", "pdfs:ContractBalancesPolicyTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R38": { "role": "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails", "longName": "99940205 - Disclosure - REVENUE - Costs to Obtain or Fulfill a Contract (Details)", "shortName": "REVENUE - Costs to Obtain or Fulfill a Contract (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:CapitalizedContractCostNetCurrent", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfOtherCurrentAssetsTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:CapitalizedContractCostNet", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:CapitalizedContractCostTableTextBlock", "pdfs:CostsToObtainOfFulfillContractPolicyTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R39": { "role": "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "longName": "99940206 - Disclosure - REVENUE - Additional Information (Details)", "shortName": "REVENUE - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": { "contextRef": "As_Of_3_31_2025_srt_MajorCustomersAxis_pdfs_AdvantestAmericaIncMember_srt_ProductOrServiceAxis_pdfs_SoftwareLicenseAndRelatedServicesAgreementMember_38CONKPEj0241fzaDOElmQ", "name": "us-gaap:RevenueRemainingPerformanceObligation", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_srt_MajorCustomersAxis_pdfs_AdvantestAmericaIncMember_srt_ProductOrServiceAxis_pdfs_SoftwareLicenseAndRelatedServicesAgreementMember_38CONKPEj0241fzaDOElmQ", "name": "us-gaap:RevenueRemainingPerformanceObligation", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R40": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "longName": "99940301 - Disclosure - BALANCE SHEET COMPONENTS (Details)", "shortName": "BALANCE SHEET COMPONENTS (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:UnbilledReceivablesNotBillableAtBalanceSheetDateAmountExpectedToBeCollectedAfterOneYear", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R41": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails", "longName": "99940302 - Disclosure - BALANCE SHEET COMPONENTS - Prepaid Expense and Other Current Assets (Details)", "shortName": "BALANCE SHEET COMPONENTS - Prepaid Expense and Other Current Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:PrepaidExpenseCurrent", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfOtherCurrentAssetsTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:PrepaidExpenseCurrent", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfOtherCurrentAssetsTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R42": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails", "longName": "99940303 - Disclosure - BALANCE SHEET COMPONENTS - Property and Equipment (Details)", "shortName": "BALANCE SHEET COMPONENTS - Property and Equipment (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R43": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsGoodwillAndIntangibleAssetsNetDetails", "longName": "99940304 - Disclosure - BALANCE SHEET COMPONENTS - Goodwill and Intangible Assets, Net (Details)", "shortName": "BALANCE SHEET COMPONENTS - Goodwill and Intangible Assets, Net (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "As_Of_12_31_2024_hY2IhWxQbUKdtFg0D9wSng", "name": "us-gaap:Goodwill", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:GoodwillAcquiredDuringPeriod", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R44": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "longName": "99940305 - Disclosure - BALANCE SHEET COMPONENTS - Intangible Assets (Details)", "shortName": "BALANCE SHEET COMPONENTS - Intangible Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R45": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails", "longName": "99940306 - Disclosure - BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details)", "shortName": "BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R46": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails", "longName": "99940307 - Disclosure - BALANCE SHEET COMPONENTS - Other Non-current Assets (Details)", "shortName": "BALANCE SHEET COMPONENTS - Other Non-current Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:SalesTypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossNoncurrent", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:PrepaidExpenseOtherNoncurrent", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R47": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails", "longName": "99940308 - Disclosure - BALANCE SHEET COMPONENTS - Net Investment in Sales-Type Lease (Details)", "shortName": "BALANCE SHEET COMPONENTS - Net Investment in Sales-Type Lease (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:SalesTypeAndDirectFinancingLeasesLeaseReceivable", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2024_hY2IhWxQbUKdtFg0D9wSng", "name": "pdfs:SalesTypeLeasesLeaseReceivable", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R48": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails", "longName": "99940309 - Disclosure - BALANCE SHEET COMPONENTS - Maturities of Lease Payments Under Sales-type Leases (Details)", "shortName": "BALANCE SHEET COMPONENTS - Maturities of Lease Payments Under Sales-type Leases (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedNextTwelveMonths", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "us-gaap:SalesTypeAndDirectFinancingLeasesLeaseReceivableMaturityTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedNextTwelveMonths", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "us-gaap:SalesTypeAndDirectFinancingLeasesLeaseReceivableMaturityTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R49": { "role": "http://www.pdf.com/role/DisclosureLeasesDetails", "longName": "99940401 - Disclosure - LEASES (Details)", "shortName": "LEASES (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "49", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "pdfs:NumberOfFinanceLeases", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "p", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "pdfs:NumberOfFinanceLeases", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "p", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R50": { "role": "http://www.pdf.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails", "longName": "99940402 - Disclosure - LEASES - Components of Operating Lease Expense (Details)", "shortName": "LEASES - Components of Operating Lease Expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "50", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:OperatingLeaseCost", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:OperatingLeaseCost", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R51": { "role": "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails", "longName": "99940403 - Disclosure - LEASES - Maturity of Operating Lease Liabilities (Details)", "shortName": "LEASES - Maturity of Operating Lease Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "51", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R52": { "role": "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "longName": "99940501 - Disclosure - STOCKHOLDERS EQUITY (Details)", "shortName": "STOCKHOLDERS EQUITY (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "52", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_3_31_2024_Aw1FKnuAQk22RObk2rG2LA", "name": "us-gaap:PaymentsForRepurchaseOfCommonStock", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_4_11_2022_srt_ShareRepurchaseProgramAxis_pdfs_StockRepurchaseProgram2022Member_NSkPHEUZ70ysjRu_Jsd7zA", "name": "srt:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R53": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "longName": "99940601 - Disclosure - EMPLOYEE BENEFIT PLANS - Narrative (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "53", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_yNskU-mSBkKaAtojiRS6pg", "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R54": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails", "longName": "99940602 - Disclosure - EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "54", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_us-gaap_PlanNameAxis_pdfs_PurchasePlanYear2021Member_yXljU85380mdgrlGmtsBUw", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_us-gaap_PlanNameAxis_pdfs_PurchasePlanYear2021Member_yXljU85380mdgrlGmtsBUw", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R55": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "longName": "99940603 - Disclosure - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "55", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R56": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "longName": "99940604 - Disclosure - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "56", "firstAnchor": { "contextRef": "As_Of_12_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_ZifgSpb0cU6oQtEkjQNAxw", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "unitRef": "Unit_Standard_shares_J0AryqeP106ENcP92iDVIQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2024_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_ZifgSpb0cU6oQtEkjQNAxw", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "unitRef": "Unit_Standard_shares_J0AryqeP106ENcP92iDVIQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R57": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails", "longName": "99940701 - Disclosure - INCOME TAXES - Narrative (Details)", "shortName": "INCOME TAXES - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "57", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:IncreaseDecreaseInIncomeTaxes", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:IncreaseDecreaseInIncomeTaxes", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R58": { "role": "http://www.pdf.com/role/DisclosureNetLossPerShareCalculationOfEarningsPerShareDetails", "longName": "99940801 - Disclosure - NET LOSS PER SHARE - Calculation of Earnings Per Share (Details)", "shortName": "NET LOSS PER SHARE - Calculation of Earnings Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "58", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:NetIncomeLoss", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": null }, "R59": { "role": "http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails", "longName": "99940802 - Disclosure - NET LOSS PER SHARE - Anti-dilutive Securities (Details)", "shortName": "NET LOSS PER SHARE - Anti-dilutive Securities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "59", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Unit_Standard_shares_J0AryqeP106ENcP92iDVIQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Unit_Standard_shares_J0AryqeP106ENcP92iDVIQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R60": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationSegmentRevenueGrossProfitAndNetIncomeLossDetails", "longName": "99940901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Segment Revenue, Gross Profit, and Net Income (Loss) (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Segment Revenue, Gross Profit, and Net Income (Loss) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "60", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:GrossProfit", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R61": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "longName": "99940902 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "61", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_srt_MajorCustomersAxis_pdfs_CustomerAMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_qmedzrTStUqkmFCb4V241Q", "name": "us-gaap:ConcentrationRiskPercentage1", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_srt_MajorCustomersAxis_pdfs_CustomerAMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_qmedzrTStUqkmFCb4V241Q", "name": "us-gaap:ConcentrationRiskPercentage1", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R62": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "longName": "99940903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "62", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_GeographicConcentrationRiskMember_wBSaw6ED60S6EjufGSIDdQ", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R63": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "longName": "99940904 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "63", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:NoncurrentAssets", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:NoncurrentAssets", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R64": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails", "longName": "99941001 - Disclosure - FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details)", "shortName": "FAIR VALUE MEASUREMENTS - Assets Measured on a Recurring Basis (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "64", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:OtherAssetsFairValueDisclosure", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:OtherAssetsFairValueDisclosure", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R65": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurementsAdditionalInformationDetails", "longName": "99941002 - Disclosure - FAIR VALUE MEASUREMENTS - Additional Information (Details)", "shortName": "FAIR VALUE MEASUREMENTS - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "65", "firstAnchor": { "contextRef": "Duration_8_1_2024_To_8_31_2024_AGgenTDUOUqDNv8TAu1Uvw", "name": "us-gaap:ReceivableWithImputedInterestEffectiveYieldInterestRate", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_8_1_2024_To_8_31_2024_AGgenTDUOUqDNv8TAu1Uvw", "name": "us-gaap:ReceivableWithImputedInterestEffectiveYieldInterestRate", "unitRef": "Unit_Standard_pure_30b6dEMOKk6H9vV6I612tQ", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "span", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R66": { "role": "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "longName": "99941101 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details)", "shortName": "COMMITMENTS AND CONTINGENCIES (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "66", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_srt_StatementScenarioAxis_pdfs_IndemnificationsMember_V-QGBAbYIEu6VkQkhSR54Q", "name": "pdfs:TermOfProductWarranty", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_srt_StatementScenarioAxis_pdfs_IndemnificationsMember_V-QGBAbYIEu6VkQkhSR54Q", "name": "pdfs:TermOfProductWarranty", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R67": { "role": "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "longName": "99941201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details)", "shortName": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "67", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_srt_ProductOrServiceAxis_pdfs_AnalyticsMember_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_srt_AffiliatedEntityMember_pJsV75TETUeplEV5K6p89w", "name": "pdfs:AdvantestAnalyticsRevenue", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_srt_ProductOrServiceAxis_pdfs_AnalyticsMember_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_srt_AffiliatedEntityMember_pJsV75TETUeplEV5K6p89w", "name": "pdfs:AdvantestAnalyticsRevenue", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R68": { "role": "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails", "longName": "99941301 - Disclosure - DEBT - Outstanding Debt (Details)", "shortName": "DEBT - Outstanding Debt (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "68", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:SecuredDebt", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:DebtInstrumentCarryingAmount", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R69": { "role": "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails", "longName": "99941302 - Disclosure - DEBT - Revolving Credit Facility (Details)", "shortName": "DEBT - Revolving Credit Facility (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "69", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:LineOfCredit", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_3_7_2025_us-gaap_CreditFacilityAxis_us-gaap_RevolvingCreditFacilityMember_us-gaap_LineOfCreditFacilityAxis_pdfs_LineOfCreditFacilityLenderMember_aWHOdosym06c540iRIIvOA", "name": "us-gaap:LineOfCredit", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R70": { "role": "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails", "longName": "99941303 - Disclosure - DEBT - Future Payments on Total Debt (Details)", "shortName": "DEBT - Future Payments on Total Debt (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "70", "firstAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_31_2025_zK-lzivc5Uq9Dh_RvJB95A", "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } }, "R71": { "role": "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails", "longName": "99941401 - Disclosure - BUSINESS COMBINATION - Narrative (Details)", "shortName": "BUSINESS COMBINATION - Narrative (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "71", "firstAnchor": { "contextRef": "Duration_1_1_2025_To_3_31_2025_0xNkZfQyPUKO-3Xnj_8_Pg", "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_3_7_2025_To_3_7_2025_us-gaap_BusinessAcquisitionAxis_pdfs_SecureWiseMember_dRxyaF5e_0istUeClRYaBw", "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "unique": true } }, "R72": { "role": "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "longName": "99941402 - Disclosure - BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details)", "shortName": "BUSINESS COMBINATION - Fair Value of Assets Acquired and Liabilities Assumed (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "72", "firstAnchor": { "contextRef": "As_Of_3_7_2025_us-gaap_BusinessAcquisitionAxis_pdfs_SecureWiseMember_KY_iCUS8h0eUHTXDNx9ajA", "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_3_7_2025_us-gaap_BusinessAcquisitionAxis_pdfs_SecureWiseMember_KY_iCUS8h0eUHTXDNx9ajA", "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "unitRef": "Unit_Standard_USD_q2BvIrfHUkCHntMVg9aOQQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20250331x10q.htm", "first": true, "unique": true } } }, "tag": { "us-gaap_AccountingPoliciesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountingPoliciesAbstract", "lang": { "en-us": { "role": { "label": "BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES:" } } }, "auth_ref": [] }, "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsPayableCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accounts Payable, Current", "terseLabel": "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": [ "r61", "r762" ] }, "us-gaap_AccountsReceivableMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable [Member]", "terseLabel": "Accounts Receivable Benchmark", "verboseLabel": "Accounts Receivable", "documentation": "Due from customers or clients for goods or services that have been delivered or sold." } } }, "auth_ref": [ "r695" ] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, after Allowance for Credit Loss, Current", "verboseLabel": "Accounts receivable, net of allowance for credit losses", "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": [ "r911" ] }, "us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccretionAmortizationOfDiscountsAndPremiumsInvestments", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Accretion (Amortization) of Discounts and Premiums, Investments", "negatedLabel": "Net accretion of discounts on short-term investments", "documentation": "The sum of the periodic adjustments of the differences between securities' face values and purchase prices that are charged against earnings. This is called accretion if the security was purchased at a discount and amortization if it was purchased at premium. As a noncash item, this element is an adjustment to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r92" ] }, "us-gaap_AccruedIncomeTaxesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedIncomeTaxesNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accrued Income Taxes, Noncurrent", "terseLabel": "Long-term income taxes", "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent." } } }, "auth_ref": [ "r68", "r115" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accrued Liabilities, Current", "terseLabel": "Accrued and other current 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": [ "r64" ] }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment", "negatedLabel": "Less: 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": [ "r40", "r176", "r583" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "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": [ "r13", "r14", "r78", "r184", "r579", "r608", "r609" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "AOCI Attributable to Parent [Member]", "verboseLabel": "Accumulated Other Comprehensive Loss", "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", "r9", "r14", "r470", "r473", "r522", "r604", "r605", "r891", "r892", "r893", "r900", "r901", "r902", "r904" ] }, "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life", "terseLabel": "Intangible assets, amortization period", "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r287", "r709" ] }, "ecd_Additional402vDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Additional402vDisclosureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Additional 402(v) Disclosure [Text Block]", "terseLabel": "Additional 402(v) Disclosure" } } }, "auth_ref": [ "r826" ] }, "pdfs_AdditionalCommonStockCapitalSharesReservedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AdditionalCommonStockCapitalSharesReservedForFutureIssuance", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Number of additional common stock capital shares reserved for future issuance.", "label": "Additional Common Stock Capital Shares Reserved For Future Issuance", "terseLabel": "Number of additional common stock capital shares reserved for future issuance" } } }, "auth_ref": [] }, "us-gaap_AdditionalPaidInCapital": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapital", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Additional Paid in Capital", "terseLabel": "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": [ "r73", "r762", "r1047" ] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Additional Paid-in Capital [Member]", "verboseLabel": "Additional Paid-in Capital", "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": [ "r620", "r900", "r901", "r902", "r904", "r984", "r1048" ] }, "ecd_AdjToCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation Amount", "terseLabel": "Adjustment to Compensation, Amount" } } }, "auth_ref": [ "r839" ] }, "ecd_AdjToCompAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToCompAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation [Axis]", "terseLabel": "Adjustment to Compensation:" } } }, "auth_ref": [ "r839" ] }, "ecd_AdjToNonPeoNeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToNonPeoNeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]", "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote" } } }, "auth_ref": [ "r839" ] }, "ecd_AdjToPeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToPeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment To PEO Compensation, Footnote [Text Block]", "terseLabel": "Adjustment To PEO Compensation, Footnote" } } }, "auth_ref": [ "r839" ] }, "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Adjustments, Noncash Items, to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "APIC, Share-Based Payment Arrangement, Option, Increase for Cost Recognition", "verboseLabel": "Stock-based compensation expense", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement." } } }, "auth_ref": [] }, "pdfs_AdvancesForPurchaseOfFixedAssetsTransferredFromPrepaidAssetsToPropertyAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AdvancesForPurchaseOfFixedAssetsTransferredFromPrepaidAssetsToPropertyAndEquipment", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Represents advances for purchase of fixed assets transferred from prepaid assets to property and equipment.", "label": "Advances For Purchase Of Fixed Assets Transferred From Prepaid Assets To Property And Equipment", "verboseLabel": "Prepayments for purchase of property and equipment transferred from prepaid assets to property and equipment" } } }, "auth_ref": [] }, "pdfs_AdvantestAmericaIncMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AdvantestAmericaIncMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Advantest America, Inc.", "label": "Advantest America, Inc. [Member]", "verboseLabel": "Advantest America, Inc." } } }, "auth_ref": [] }, "pdfs_AdvantestAnalyticsRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AdvantestAnalyticsRevenue", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized from the strategic partnership with Advantest.", "label": "Advantest Analytics Revenue", "terseLabel": "Related party revenue" } } }, "auth_ref": [] }, "srt_AffiliatedEntityMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "AffiliatedEntityMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Affiliated Entity [Member]", "terseLabel": "Advantest America, Inc.", "documentation": "An affiliate is a party that, directly or indirectly through one or more intermediaries, controls, is controlled by, or is under common control with the entity." } } }, "auth_ref": [ "r158", "r654", "r701", "r782", "r954", "r997", "r998", "r999" ] }, "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]", "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table" } } }, "auth_ref": [ "r872" ] }, "ecd_AggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Amount", "terseLabel": "Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r798", "r808", "r818", "r850" ] }, "ecd_AggtErrCompNotYetDeterminedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtErrCompNotYetDeterminedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]", "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined" } } }, "auth_ref": [ "r801", "r811", "r821", "r853" ] }, "ecd_AggtPnsnAdjsSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtPnsnAdjsSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Pension Adjustments Service Cost [Member]", "terseLabel": "Aggregate Pension Adjustments Service Cost" } } }, "auth_ref": [ "r873" ] }, "ecd_AllAdjToCompMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllAdjToCompMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Adjustments to Compensation [Member]", "terseLabel": "All Adjustments to Compensation" } } }, "auth_ref": [ "r839" ] }, "ecd_AllExecutiveCategoriesMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllExecutiveCategoriesMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Executive Categories [Member]", "terseLabel": "All Executive Categories" } } }, "auth_ref": [ "r846" ] }, "ecd_AllIndividualsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllIndividualsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Individuals [Member]", "terseLabel": "All Individuals" } } }, "auth_ref": [ "r802", "r812", "r822", "r846", "r854", "r858", "r866" ] }, "ecd_AllTradingArrangementsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllTradingArrangementsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "All Trading Arrangements [Member]", "terseLabel": "All Trading Arrangements" } } }, "auth_ref": [ "r864" ] }, "us-gaap_AllocatedShareBasedCompensationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllocatedShareBasedCompensationExpense", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expense", "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized." } } }, "auth_ref": [ "r420", "r426" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllowanceForDoubtfulAccountsReceivable", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Allowance for Credit Loss", "terseLabel": "Allowance for credit losses", "documentation": "Amount of allowance for credit loss on accounts receivable." } } }, "auth_ref": [ "r185", "r262", "r267", "r268", "r269", "r1013" ] }, "pdfs_AlternateBaseRateFederalFundsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AlternateBaseRateFederalFundsMember", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "documentation": "Alternate base interest rate determined by the Federal Funds Effective Rate.", "label": "Alternate Base Rate Federal Funds [Member]", "terseLabel": "Alternate Base Rate (Federal Funds Effective Rate)" } } }, "auth_ref": [] }, "pdfs_AlternateBaseRateSecuredOvernightFinancingRateMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AlternateBaseRateSecuredOvernightFinancingRateMember", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "documentation": "Alternate base interest rate determined by SOFR.", "label": "Alternate Base Rate Secured Overnight Financing Rate [Member]", "terseLabel": "Alternate Base Rate (SOFR)" } } }, "auth_ref": [] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "AmendmentFlag", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [] }, "pdfs_AmortizationOfAcquiredIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AmortizationOfAcquiredIntangibleAssetsNet", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "The total expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization of acquired intangible assets, net", "totalLabel": "Total amortization of acquired intangible assets" } } }, "auth_ref": [] }, "pdfs_AmortizationOfAcquiredIntangibleAssetsPresentedInIncomeStatement": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AmortizationOfAcquiredIntangibleAssetsPresentedInIncomeStatement", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets.", "label": "Amortization of acquired intangible assets presented in the income statement", "terseLabel": "Amortization of acquired intangible assets presented separately under costs and expenses" } } }, "auth_ref": [] }, "pdfs_AmortizationOfAcquiredIntangibleAssetsTechnology": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AmortizationOfAcquiredIntangibleAssetsTechnology", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of technology-based intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization of acquired intangible assets, technology", "terseLabel": "Amortization of acquired technology included under Costs of revenues" } } }, "auth_ref": [] }, "us-gaap_AmortizationOfAcquisitionCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AmortizationOfAcquisitionCosts", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Amortization of Acquisition Costs", "verboseLabel": "Amortization of acquired intangible assets", "documentation": "The amount of expense recognized in the current period that reflects the allocation of capitalized costs associated with acquisition of business. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r6" ] }, "us-gaap_AmortizationOfIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AmortizationOfIntangibleAssets", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Amortization of Intangible Assets", "terseLabel": "Amortization of acquired intangible assets", "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r6", "r284", "r291", "r730" ] }, "pdfs_AmortizationPeriodOfIntangibleAssets": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AmortizationPeriodOfIntangibleAssets", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Amortization Period of Intangible Assets", "terseLabel": "Amortization Period (Year)" } } }, "auth_ref": [] }, "pdfs_AnalyticsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AnalyticsMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to analytics.", "label": "Analytics [Member]", "verboseLabel": "Analytics" } } }, "auth_ref": [] }, "pdfs_AnalyticsRevenuePolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "AnalyticsRevenuePolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for revenue recognition for licensing fees, which is consideration paid to the entity (licensor) by another party for the right to use, but not own, certain of the entity's intangible assets. Licensing arrangements include, but are not limited to, rights to use a patent, copyright, technology, manufacturing process, or trademark.", "label": "Analytics Revenue [Policy Text Block]", "terseLabel": "Analytics Revenue, Policy" } } }, "auth_ref": [] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Antidilutive securities excluded from EPS", "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": [ "r230" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities [Axis]", "documentation": "Information by type of antidilutive security." } } }, "auth_ref": [ "r24" ] }, "us-gaap_AntidilutiveSecuritiesNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AntidilutiveSecuritiesNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities, Name [Domain]", "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented." } } }, "auth_ref": [ "r24" ] }, "us-gaap_ArrangementsAndNonarrangementTransactionsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ArrangementsAndNonarrangementTransactionsMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]", "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations." } } }, "auth_ref": [ "r461" ] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Assets", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets", "totalLabel": "Total assets", "documentation": "Amount of asset recognized for present right to economic benefit." } } }, "auth_ref": [ "r114", "r125", "r180", "r204", "r235", "r241", "r250", "r253", "r264", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r463", "r467", "r494", "r575", "r647", "r723", "r724", "r762", "r789", "r945", "r946", "r1000" ] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets, Current", "totalLabel": "Total current assets", "documentation": "Amount of asset recognized for present right to economic benefit, classified as current." } } }, "auth_ref": [ "r171", "r187", "r204", "r264", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r463", "r467", "r494", "r762", "r945", "r946", "r1000" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrentAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets, Current [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AvailableForSaleSecuritiesDebtSecuritiesCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails": { "parentTag": "us-gaap_OtherAssetsFairValueDisclosure", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Debt Securities, Available-for-Sale, Current", "terseLabel": "Short-term investments", "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current." } } }, "auth_ref": [ "r263", "r272" ] }, "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AvailableForSaleSecuritiesDebtSecuritiesNoncurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails": { "parentTag": "us-gaap_OtherAssetsFairValueDisclosure", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Debt Securities, Available-for-Sale, Noncurrent", "terseLabel": "Non-current assets", "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent." } } }, "auth_ref": [ "r174", "r263", "r272" ] }, "ecd_AwardExrcPrice": { "xbrltype": "perShareItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardExrcPrice", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Exercise Price", "terseLabel": "Exercise Price" } } }, "auth_ref": [ "r861" ] }, "ecd_AwardGrantDateFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardGrantDateFairValue", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Grant Date Fair Value", "terseLabel": "Fair Value as of Grant Date" } } }, "auth_ref": [ "r862" ] }, "ecd_AwardTmgDiscLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgDiscLineItems", "lang": { "en-us": { "role": { "label": "Award Timing Disclosures [Line Items]", "terseLabel": "Award Timing Disclosures" } } }, "auth_ref": [ "r857" ] }, "ecd_AwardTmgHowMnpiCnsdrdTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgHowMnpiCnsdrdTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing, How MNPI Considered [Text Block]", "terseLabel": "Award Timing, How MNPI Considered" } } }, "auth_ref": [ "r857" ] }, "ecd_AwardTmgMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Method [Text Block]", "terseLabel": "Award Timing Method" } } }, "auth_ref": [ "r857" ] }, "ecd_AwardTmgMnpiCnsdrdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgMnpiCnsdrdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Considered [Flag]", "terseLabel": "Award Timing MNPI Considered" } } }, "auth_ref": [ "r857" ] }, "ecd_AwardTmgMnpiDiscTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgMnpiDiscTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Disclosure [Text Block]", "terseLabel": "Award Timing MNPI Disclosure" } } }, "auth_ref": [ "r857" ] }, "ecd_AwardTmgPredtrmndFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgPredtrmndFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Predetermined [Flag]", "terseLabel": "Award Timing Predetermined" } } }, "auth_ref": [ "r857" ] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AwardTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Type [Axis]", "terseLabel": "Award Type", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r391", "r392", "r393", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408", "r409", "r410", "r411", "r412", "r415", "r416", "r417", "r418", "r419" ] }, "ecd_AwardUndrlygSecuritiesAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardUndrlygSecuritiesAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Underlying Securities Amount", "terseLabel": "Underlying Securities" } } }, "auth_ref": [ "r860" ] }, "ecd_AwardsCloseToMnpiDiscIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardsCloseToMnpiDiscIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r859" ] }, "ecd_AwardsCloseToMnpiDiscTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardsCloseToMnpiDiscTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table]", "terseLabel": "Awards Close in Time to MNPI Disclosures" } } }, "auth_ref": [ "r858" ] }, "ecd_AwardsCloseToMnpiDiscTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardsCloseToMnpiDiscTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]", "terseLabel": "Awards Close in Time to MNPI Disclosures, Table" } } }, "auth_ref": [ "r858" ] }, "us-gaap_BalanceSheetLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BalanceSheetLocationAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails", "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails" ], "lang": { "en-us": { "role": { "label": "Statement of Financial Position Location, Balance [Axis]", "documentation": "Information by location in statement of financial position where disaggregated cumulative balance has been reported." } } }, "auth_ref": [ "r302", "r1015", "r1016" ] }, "us-gaap_BalanceSheetLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BalanceSheetLocationDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails", "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails" ], "lang": { "en-us": { "role": { "label": "Statement of Financial Position Location, Balance [Domain]", "documentation": "Location in statement of financial position where disaggregated cumulative balance has been reported." } } }, "auth_ref": [ "r57", "r58", "r302", "r1015", "r1016" ] }, "us-gaap_BalanceSheetRelatedDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BalanceSheetRelatedDisclosuresAbstract", "lang": { "en-us": { "role": { "label": "BALANCE SHEET COMPONENTS" } } }, "auth_ref": [] }, "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPolicies" ], "lang": { "en-us": { "role": { "label": "Basis of Presentation and Significant Accounting Policies [Text Block]", "terseLabel": "BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity." } } }, "auth_ref": [ "r93" ] }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessAcquisitionAcquireeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "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": [ "r285", "r286", "r287", "r288", "r289", "r457", "r743", "r744" ] }, "us-gaap_BusinessAcquisitionAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessAcquisitionAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition [Axis]", "documentation": "Information by business combination or series of individually immaterial business combinations." } } }, "auth_ref": [ "r47", "r49", "r285", "r286", "r287", "r288", "r289", "r457", "r743", "r744" ] }, "us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessAcquisitionCostOfAcquiredEntityTransactionCosts", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition, Transaction Costs", "terseLabel": "Transaction costs", "documentation": "Amount of direct costs of the business combination including legal, accounting, and other costs incurred to consummate the business acquisition." } } }, "auth_ref": [] }, "us-gaap_BusinessAcquisitionLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessAcquisitionLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition [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": [ "r457" ] }, "us-gaap_BusinessCombinationAcquiredReceivablesFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationAcquiredReceivablesFairValue", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Acquired Receivable, Fair Value", "terseLabel": "Fair value of acquired accounts receivable", "documentation": "Fair value of acquired receivable from business combination, excluding certain loans and debt securities acquired in transfer." } } }, "auth_ref": [ "r456" ] }, "us-gaap_BusinessCombinationDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombination" ], "lang": { "en-us": { "role": { "label": "Business Combination Disclosure [Text Block]", "terseLabel": "BUSINESS COMBINATION", "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable)." } } }, "auth_ref": [ "r110", "r458" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets [Abstract]", "terseLabel": "Assets" } } }, "auth_ref": [] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents", "verboseLabel": "Cash", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r51" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Prepaid Expense and Other Assets", "terseLabel": "Prepaid and other 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, acquired at the acquisition date." } } }, "auth_ref": [ "r51" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables", "terseLabel": "Accounts receivable", "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date." } } }, "auth_ref": [ "r51" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable", "negatedLabel": "Accounts payable and other current liabilities", "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date." } } }, "auth_ref": [ "r51" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles", "terseLabel": "Fair value of intangible assets", "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date." } } }, "auth_ref": [ "r50", "r51" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment", "terseLabel": "Fixed assets", "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date." } } }, "auth_ref": [ "r50", "r51" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net", "totalLabel": "Total purchase price allocation", "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed." } } }, "auth_ref": [ "r51" ] }, "us-gaap_BusinessCombinationSeparatelyRecognizedTransactionsExpensesAndLossesRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationSeparatelyRecognizedTransactionsExpensesAndLossesRecognized", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Separately Recognized Transactions, Expenses and Losses Recognized", "terseLabel": "Acquisition costs expensed", "documentation": "The expenses and losses recorded for each transaction with the acquiree that was recognized separately from the acquisition of assets and assumptions of liabilities in the business combination." } } }, "auth_ref": [ "r48" ] }, "us-gaap_BusinessCombinationsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationsAbstract", "lang": { "en-us": { "role": { "label": "BUSINESS COMBINATION:" } } }, "auth_ref": [] }, "country_CN": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2024", "localname": "CN", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "CHINA", "verboseLabel": "China" } } }, "auth_ref": [] }, "us-gaap_CapitalExpendituresIncurredButNotYetPaid": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CapitalExpendituresIncurredButNotYetPaid", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Capital Expenditures Incurred but Not yet Paid", "verboseLabel": "Property and equipment received and accrued in accounts payable and accrued and other liabilities", "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred." } } }, "auth_ref": [ "r21", "r22", "r23" ] }, "us-gaap_CapitalizedContractCostAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CapitalizedContractCostAmortization", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Capitalized Contract Cost, Amortization", "terseLabel": "Amortization of capitalized direct sales commission costs", "verboseLabel": "Amortization of costs capitalized to obtain revenue contracts", "documentation": "Amount of amortization expense for asset recognized from cost incurred to obtain or fulfill contract with customer." } } }, "auth_ref": [ "r276" ] }, "us-gaap_CapitalizedContractCostImpairmentLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CapitalizedContractCostImpairmentLoss", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails" ], "lang": { "en-us": { "role": { "label": "Capitalized Contract Cost, Impairment Loss", "terseLabel": "Impairment losses related to capitalized contract costs", "documentation": "Amount of impairment loss for asset recognized from cost incurred to obtain or fulfill contract with customer." } } }, "auth_ref": [ "r276" ] }, "us-gaap_CapitalizedContractCostNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CapitalizedContractCostNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails" ], "lang": { "en-us": { "role": { "label": "Capitalized Contract Cost, Net", "totalLabel": "Total capitalized direct sales commission costs", "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer." } } }, "auth_ref": [ "r275" ] }, "us-gaap_CapitalizedContractCostNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CapitalizedContractCostNetCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails": { "parentTag": "us-gaap_CapitalizedContractCostNet", "weight": 1.0, "order": 1.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails", "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails" ], "lang": { "en-us": { "role": { "label": "Costs capitalized to obtain revenue contracts", "verboseLabel": "Current (included in Prepaid expenses and other current assets)", "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer; classified as current." } } }, "auth_ref": [ "r275" ] }, "us-gaap_CapitalizedContractCostNetNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CapitalizedContractCostNetNoncurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails": { "parentTag": "us-gaap_CapitalizedContractCostNet", "weight": 1.0, "order": 2.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails": { "parentTag": "us-gaap_OtherAssetsNoncurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails", "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails" ], "lang": { "en-us": { "role": { "label": "Capitalized Contract Cost, Net, Noncurrent", "terseLabel": "Costs capitalized to obtain revenue contracts (1)", "verboseLabel": "Non-current (included in Other non-current assets)", "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer; classified as noncurrent." } } }, "auth_ref": [ "r275" ] }, "us-gaap_CapitalizedContractCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CapitalizedContractCostTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueTables" ], "lang": { "en-us": { "role": { "label": "Capitalized Contract Cost [Table Text Block]", "terseLabel": "Summary of Capitalized Direct Sales Commission Costs and Amounts Amortized During Period (In Thousands)", "documentation": "Tabular disclosure of cost capitalized in obtaining or fulfilling contract with customer." } } }, "auth_ref": [ "r919" ] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, at Carrying Value", "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": [ "r19", "r173", "r713" ] }, "us-gaap_CashAndCashEquivalentsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsFairValueDisclosure", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails": { "parentTag": "us-gaap_OtherAssetsFairValueDisclosure", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, Fair Value Disclosure", "verboseLabel": "Cash equivalents", "documentation": "Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r985", "r986" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations", "periodEndLabel": "Cash and cash equivalents at end of period", "periodStartLabel": "Cash and cash equivalents at beginning of period", "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r19", "r89", "r201" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "totalLabel": "Net change in cash and cash equivalents", "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r1", "r89" ] }, "ecd_ChangedPeerGroupFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ChangedPeerGroupFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Changed Peer Group, Footnote [Text Block]", "terseLabel": "Changed Peer Group, Footnote" } } }, "auth_ref": [ "r837" ] }, "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]", "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year" } } }, "auth_ref": [ "r834" ] }, "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]", "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested" } } }, "auth_ref": [ "r832" ] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CityAreaCode", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "ecd_CoSelectedMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CoSelectedMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Amount", "terseLabel": "Company Selected Measure Amount" } } }, "auth_ref": [ "r838" ] }, "ecd_CoSelectedMeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CoSelectedMeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Name", "terseLabel": "Company Selected Measure Name" } } }, "auth_ref": [ "r838" ] }, "us-gaap_CollaborativeArrangementMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CollaborativeArrangementMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement [Member]", "terseLabel": "Securities Purchase Agreement", "documentation": "Contractual arrangement that involves two or more parties that both: (i) actively participate in a joint operating activity and (ii) are exposed to significant risks and rewards that depend on the commercial success of the joint operating activity." } } }, "auth_ref": [ "r461" ] }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingenciesDisclosureAbstract", "lang": { "en-us": { "role": { "label": "COMMITMENTS AND CONTINGENCIES:" } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingencies" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "COMMITMENTS AND CONTINGENCIES", "documentation": "The entire disclosure for commitments and contingencies." } } }, "auth_ref": [ "r99", "r304", "r305", "r696", "r935", "r940" ] }, "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockCapitalSharesReservedForFutureIssuance", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Common Stock, Capital Shares Reserved for Future Issuance", "terseLabel": "ESPP, Shares Reserved for Future Issuance", "documentation": "Aggregate number of common shares reserved for future issuance." } } }, "auth_ref": [ "r72" ] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Common Stock [Member]", "verboseLabel": "Common Stock", "documentation": "Stock that is subordinate to all other stock of the issuer." } } }, "auth_ref": [ "r779", "r780", "r781", "r783", "r784", "r785", "r786", "r900", "r901", "r904", "r984", "r1046", "r1048" ] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common Stock, Par or Stated Value Per Share", "verboseLabel": "Common stock, par value", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r72" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares Authorized", "terseLabel": "Common stock, shares authorized", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r72", "r634" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesIssued", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares, Issued", "terseLabel": "Common stock, shares issued", "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": [ "r72" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares, Outstanding", "terseLabel": "Common stock, shares outstanding", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r10", "r72", "r634", "r653", "r1048", "r1049" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockValue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Common Stock, Value, Issued", "terseLabel": "Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 51,170 and 50,717, respectively; shares outstanding 39,130 and 38,801, respectively", "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r72", "r578", "r762" ] }, "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Company Selected Measure" } } }, "auth_ref": [ "r843" ] }, "ecd_CompActuallyPaidVsNetIncomeTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsNetIncomeTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Net Income [Text Block]", "terseLabel": "Compensation Actually Paid vs. Net Income" } } }, "auth_ref": [ "r842" ] }, "ecd_CompActuallyPaidVsOtherMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsOtherMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Other Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Other Measure" } } }, "auth_ref": [ "r844" ] }, "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]", "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return" } } }, "auth_ref": [ "r841" ] }, "us-gaap_CompensationAndEmployeeBenefitPlansTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CompensationAndEmployeeBenefitPlansTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlans" ], "lang": { "en-us": { "role": { "label": "Compensation and Employee Benefit Plans [Text Block]", "terseLabel": "EMPLOYEE BENEFIT PLANS", "documentation": "The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans." } } }, "auth_ref": [ "r103", "r104", "r105", "r106" ] }, "us-gaap_CompensationAndRetirementDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CompensationAndRetirementDisclosureAbstract", "lang": { "en-us": { "role": { "label": "EMPLOYEE BENEFIT PLANS:" } } }, "auth_ref": [] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "terseLabel": "Comprehensive income (loss)", "totalLabel": "Comprehensive loss", "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": [ "r15", "r190", "r192", "r196", "r571", "r589", "r590" ] }, "us-gaap_ComputerEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComputerEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Computer Equipment [Member]", "verboseLabel": "Computer Equipment", "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems." } } }, "auth_ref": [] }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskBenchmarkDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Domain]", "documentation": "The denominator in a calculation of a disclosed concentration risk percentage." } } }, "auth_ref": [ "r27", "r29", "r59", "r60", "r260", "r695" ] }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskByBenchmarkAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Axis]", "documentation": "Information by benchmark of concentration risk." } } }, "auth_ref": [ "r27", "r29", "r59", "r60", "r260", "r611", "r695" ] }, "us-gaap_ConcentrationRiskByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskByTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Axis]", "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender." } } }, "auth_ref": [ "r27", "r29", "r59", "r60", "r260", "r695", "r881" ] }, "us-gaap_ConcentrationRiskPercentage1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskPercentage1", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk, Percentage", "terseLabel": "Significant customer concentration (percentage)", "verboseLabel": "Percentage of Revenues", "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division." } } }, "auth_ref": [ "r27", "r29", "r59", "r60", "r260" ] }, "us-gaap_ConcentrationRiskTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskTypeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Domain]", "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration." } } }, "auth_ref": [ "r27", "r29", "r59", "r60", "r260", "r695" ] }, "us-gaap_ConsolidationPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConsolidationPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Consolidation, Policy [Policy Text Block]", "terseLabel": "Basis of Presentation, Policy", "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary." } } }, "auth_ref": [ "r56", "r715" ] }, "us-gaap_ConstructionInProgressMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConstructionInProgressMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Construction in Progress [Member]", "verboseLabel": "Property and Equipment in Progress", "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service." } } }, "auth_ref": [] }, "pdfs_ContractBalancesPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "ContractBalancesPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for recognizing unearned income or deferred revenue related to transactions involving the sale of a product or performance of services.", "label": "Contract Balances [Policy Text Block]", "terseLabel": "Contract Balances, Policy" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueTables" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]", "terseLabel": "Summary of Net Contract Assets (In Thousands)", "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability." } } }, "auth_ref": [ "r951" ] }, "us-gaap_ContractWithCustomerAssetNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Asset, after Allowance for Credit Loss", "totalLabel": "Total contract assets", "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time." } } }, "auth_ref": [ "r355", "r357", "r378" ] }, "us-gaap_ContractWithCustomerAssetNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetNetCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails": { "parentTag": "us-gaap_ContractWithCustomerAssetNet", "weight": 1.0, "order": 1.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails", "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Current", "terseLabel": "Contract assets", "verboseLabel": "Current portion included in prepaid expenses and other current assets", "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current." } } }, "auth_ref": [ "r355", "r357", "r378" ] }, "us-gaap_ContractWithCustomerAssetNetNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetNetNoncurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails": { "parentTag": "us-gaap_ContractWithCustomerAssetNet", "weight": 1.0, "order": 2.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails": { "parentTag": "us-gaap_OtherAssetsNoncurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails", "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Noncurrent", "terseLabel": "Non-current portion included in other non-current assets", "verboseLabel": "Contract assets (1)", "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 noncurrent." } } }, "auth_ref": [ "r355", "r357", "r378" ] }, "us-gaap_ContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiability", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Liability", "verboseLabel": "Related party deferred revenue", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r355", "r356", "r378" ] }, "us-gaap_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Performance Obligation Satisfied in Previous Period", "terseLabel": "Revenue performance obligations satisfied in previous period", "documentation": "Amount of revenue recognized from performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction price." } } }, "auth_ref": [ "r364" ] }, "pdfs_ContractsWithMultiplePerformanceObligationsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "ContractsWithMultiplePerformanceObligationsPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for revenue recognition for multiple-deliverable arrangements including, at a minimum (as applicable): (1) the nature of such arrangements, (2) the significant deliverables within the arrangements, (3) the general timing of delivery or performance of service for the deliverables within the arrangements, (4) performance-, cancellation-, termination- or refund-type provisions, (5) a discussion of the significant factors, inputs, assumptions, and methods used to determine selling price (whether vendor-specific objective evidence, third-party evidence, or estimated selling price) for the significant deliverables, (6) whether the significant deliverables in the arrangements qualify as separate units of accounting and the reasons that they do not qualify as separate units of accounting, if applicable, and (7) the general timing of revenue recognition for significant units of accounting. This element is applicable to all multiple-deliverable arrangements, including software arrangements (for example, software products, upgrades or enhancements, postcontract customer support, or services).", "label": "Contracts with Multiple Performance Obligations [Policy Text Block]", "terseLabel": "Contracts with Multiple Performance Obligations, Policy" } } }, "auth_ref": [] }, "us-gaap_CostOfRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostOfRevenue", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 2.0 }, "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationSegmentRevenueGrossProfitAndNetIncomeLossDetails": { "parentTag": "us-gaap_GrossProfit", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationSegmentRevenueGrossProfitAndNetIncomeLossDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Cost of Revenue", "terseLabel": "Costs of revenues", "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period." } } }, "auth_ref": [ "r81", "r204", "r264", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r494", "r723", "r945" ] }, "us-gaap_CostOfSalesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostOfSalesMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Cost of Sales [Member]", "verboseLabel": "Costs of Revenues", "documentation": "Primary financial statement caption encompassing cost of sales." } } }, "auth_ref": [] }, "us-gaap_CostsAndExpensesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostsAndExpensesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Costs and Expenses [Abstract]" } } }, "auth_ref": [] }, "pdfs_CostsAndExpensesMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "CostsAndExpensesMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to costs and expenses\n.", "label": "Costs and Expenses" } } }, "auth_ref": [] }, "pdfs_CostsToObtainOfFulfillContractPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "CostsToObtainOfFulfillContractPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for incremental direct costs incurred related to the acquisition or origination of a customer contract in a transaction that results in revenue deferral (that is, whether such costs are expensed as incurred or deferred and charged to expense in proportion to the revenue recognized.) Also describes the entity's policy for determining which costs are capitalized as contract acquisition or origination costs.", "label": "Costs to Obtain of Fulfill a Contract [Policy Text Block]", "terseLabel": "Costs to Obtain of Fulfill a Contract, Policy" } } }, "auth_ref": [] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "label": "Document and Entity Information", "documentation": "Cover page." } } }, "auth_ref": [] }, "us-gaap_CreditFacilityAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CreditFacilityAxis", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "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": [ "r312", "r943" ] }, "us-gaap_CreditFacilityDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CreditFacilityDomain", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "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": [ "r312", "r943", "r944" ] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "pdfs_CustomerAMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "CustomerAMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer A.", "label": "Customer A [Member]", "terseLabel": "Customer A" } } }, "auth_ref": [] }, "pdfs_CustomerBMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "CustomerBMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer B.", "label": "Customer B [Member]", "terseLabel": "Customer B" } } }, "auth_ref": [] }, "pdfs_CustomerCMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "CustomerCMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer C.", "label": "Customer C [Member]", "terseLabel": "Customer C" } } }, "auth_ref": [] }, "us-gaap_CustomerConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CustomerConcentrationRiskMember", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Customer Concentration Risk [Member]", "verboseLabel": "Customer Concentration Risk", "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": [ "r94", "r260" ] }, "pdfs_CustomerEMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "CustomerEMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer E.", "label": "Customer E" } } }, "auth_ref": [] }, "us-gaap_CustomerRelationshipsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CustomerRelationshipsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Customer Relationships [Member]", "verboseLabel": "Customer Relationships", "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships." } } }, "auth_ref": [ "r55", "r923", "r924", "r925", "r926", "r928", "r930", "r933", "r934" ] }, "pdfs_DebtCovenantsInterestCoverageRatio": { "xbrltype": "pureItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "DebtCovenantsInterestCoverageRatio", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "documentation": "The measure of the company's ability to cover interest expense with funds generated from operations.", "label": "Debt covenants, interest coverage ratio", "terseLabel": "Debt covenants, fixed-charge coverage ratio" } } }, "auth_ref": [] }, "us-gaap_DebtDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtDisclosureAbstract", "lang": { "en-us": { "role": { "label": "DEBT:" } } }, "auth_ref": [] }, "us-gaap_DebtDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureDebt" ], "lang": { "en-us": { "role": { "label": "Debt Disclosure [Text Block]", "terseLabel": "DEBT", "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": [ "r100", "r202", "r297", "r298", "r299", "r300", "r301", "r311", "r312", "r322", "r323", "r324", "r325", "r326", "r327", "r328", "r331", "r334", "r335", "r336", "r502" ] }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument, Basis Spread on Variable Rate", "terseLabel": "Marginal interest rate", "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument." } } }, "auth_ref": [] }, "us-gaap_DebtInstrumentCarryingAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentCarryingAmount", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Gross", "totalLabel": "Total debt (principal amount)", "documentation": "Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt." } } }, "auth_ref": [ "r12", "r116", "r337" ] }, "us-gaap_DebtInstrumentUnamortizedDiscount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentUnamortizedDiscount", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument, Unamortized Discount", "negatedLabel": "Unamortized debt discount and financing costs", "documentation": "Amount, after accumulated amortization, of debt discount." } } }, "auth_ref": [ "r948", "r991", "r992", "r993" ] }, "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedGainLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtSecuritiesAvailableForSaleUnrealizedGainLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Debt Securities, Available-for-Sale, Unrealized Gain (Loss)", "terseLabel": "Change in unrealized gain (loss) related to available-for-sale debt securities, net of tax", "documentation": "Amount of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)." } } }, "auth_ref": [ "r915", "r916" ] }, "us-gaap_DeferredIncomeTaxAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxAssetsNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Deferred Income Tax Assets, Net", "terseLabel": "Deferred tax assets, net", "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": [ "r431", "r432" ] }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Deferred Income Tax Expense (Benefit)", "verboseLabel": "Deferred taxes", "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r6", "r136", "r899" ] }, "us-gaap_DeferredIncomeTaxesAndOtherTaxReceivableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxesAndOtherTaxReceivableCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Income Taxes and Other Tax Receivable, Current", "terseLabel": "Income tax receivable", "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and other tax receivables expected to be realized or consumed within one year or operating cycle, if longer." } } }, "auth_ref": [] }, "us-gaap_DeferredRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredRevenue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureRevenueDeferredRevenuesDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDeferredRevenuesDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Revenue", "totalLabel": "Total deferred revenues", "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r888" ] }, "us-gaap_DeferredRevenueByArrangementDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredRevenueByArrangementDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueTables" ], "lang": { "en-us": { "role": { "label": "Deferred Revenue, by Arrangement, Disclosure [Table Text Block]", "terseLabel": "Summary of Deferred Revenues (In Thousands)", "documentation": "Tabular disclosure of the type of arrangements and the corresponding amounts that comprise the current and noncurrent balance of deferred revenue as of the balance sheet date." } } }, "auth_ref": [] }, "us-gaap_DeferredRevenueCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredRevenueCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureRevenueDeferredRevenuesDetails": { "parentTag": "us-gaap_DeferredRevenue", "weight": 1.0, "order": 1.0 }, "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDeferredRevenuesDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Deferred Revenue, Current", "terseLabel": "Current", "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current." } } }, "auth_ref": [ "r887" ] }, "us-gaap_DeferredRevenueNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredRevenueNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureRevenueDeferredRevenuesDetails": { "parentTag": "us-gaap_DeferredRevenue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDeferredRevenuesDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Revenue, Noncurrent", "terseLabel": "Non-current (included in non-current liabilities)", "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent." } } }, "auth_ref": [ "r888" ] }, "us-gaap_DeferredTaxAssetsValuationAllowance": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredTaxAssetsValuationAllowance", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Tax Assets, Valuation Allowance", "terseLabel": "Deferred Tax Assets, Valuation Allowance", "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized." } } }, "auth_ref": [ "r442" ] }, "us-gaap_DepreciationAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DepreciationAndAmortization", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "label": "Depreciation, Depletion and Amortization, Nonproduction", "terseLabel": "Depreciation and amortization", "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production." } } }, "auth_ref": [ "r6", "r39" ] }, "us-gaap_DepreciationDepletionAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DepreciationDepletionAndAmortization", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Depreciation, Depletion and Amortization", "verboseLabel": "Depreciation and amortization", "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets." } } }, "auth_ref": [ "r6", "r235", "r244", "r253", "r723", "r724" ] }, "us-gaap_DevelopedTechnologyRightsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DevelopedTechnologyRightsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Developed Technology Rights [Member]", "verboseLabel": "Developed Technology", "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property." } } }, "auth_ref": [ "r111", "r923", "r924", "r925", "r926", "r928", "r930", "r933", "r934" ] }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisaggregationOfRevenueTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueTables" ], "lang": { "en-us": { "role": { "label": "Disaggregation of Revenue [Table Text Block]", "terseLabel": "Summary of Contract Revenues Disaggregated by Timing of Revenue", "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": [ "r952" ] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Period Focus", "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY." } } }, "auth_ref": [] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Year Focus", "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentQuarterlyReport", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [ "r793" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentTransitionReport", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [ "r825" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentType", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [] }, "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]", "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year" } } }, "auth_ref": [ "r836" ] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareAbstract", "lang": { "en-us": { "role": { "label": "NET LOSS PER SHARE:" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareBasic", "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic", "terseLabel": "Basic", "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": [ "r197", "r212", "r213", "r214", "r215", "r216", "r217", "r223", "r225", "r227", "r228", "r229", "r234", "r454", "r460", "r477", "r478", "r572", "r591", "r717" ] }, "us-gaap_EarningsPerShareBasicAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareBasicAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic [Abstract]", "terseLabel": "Net income (loss) per share:" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareDiluted", "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Diluted", "terseLabel": "Diluted", "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": [ "r197", "r212", "r213", "r214", "r215", "r216", "r217", "r225", "r227", "r228", "r229", "r234", "r454", "r460", "r477", "r478", "r572", "r591", "r717" ] }, "us-gaap_EarningsPerSharePolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerSharePolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Policy [Policy Text Block]", "terseLabel": "Net Income (Loss) Per Share, Policy", "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements." } } }, "auth_ref": [ "r24", "r25", "r231" ] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShare" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Text Block]", "terseLabel": "NET LOSS PER SHARE", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r222", "r230", "r232", "r233" ] }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations", "verboseLabel": "Effect of exchange rate changes on cash and cash equivalents", "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r990" ] }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectiveIncomeTaxRateContinuingOperations", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "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": [ "r434", "r749" ] }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeRelatedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Employee-related Liabilities, Current", "terseLabel": "Accrued compensation and related benefits", "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": [ "r64" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount", "terseLabel": "Unrecognized Compensation", "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement." } } }, "auth_ref": [ "r421" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition", "terseLabel": "Unrecognized Compensation Recognition Period", "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": [ "r421" ] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeStockOptionMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "verboseLabel": "Outstanding Stock Options", "label": "Employee Stock Option [Member]", "terseLabel": "Employee Stock Option", "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_EmployeeStockOwnershipPlanESOPSharesInESOP": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeStockOwnershipPlanESOPSharesInESOP", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Employee Stock Ownership Plan (ESOP), Shares in ESOP", "terseLabel": "Shares Available for Future Issuance", "documentation": "Sum of the allocated, committed-to-be-released and suspense shares of the entity held by the plan." } } }, "auth_ref": [ "r46" ] }, "pdfs_EmployeeStockPlansMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "EmployeeStockPlansMember", "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Employee Stock Plans [Member]", "verboseLabel": "Shares Issuable Under Employee Stock Purchase Plan" } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [ "r791" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Common Stock, Shares Outstanding", "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument." } } }, "auth_ref": [] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Current Reporting Status", "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r791" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFileNumber", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Securities Act File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFilerCategory", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [ "r791" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [ "r875" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityRegistrantName", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [ "r791" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityShellCompany", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [ "r791" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntitySmallBusiness", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r791" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "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": [ "r791" ] }, "ecd_EqtyAwrdsAdjFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsAdjFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Awards Adjustments, Footnote [Text Block]", "terseLabel": "Equity Awards Adjustments, Footnote" } } }, "auth_ref": [ "r830" ] }, "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]", "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table" } } }, "auth_ref": [ "r871" ] }, "ecd_EqtyAwrdsAdjsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsAdjsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Awards Adjustments [Member]", "terseLabel": "Equity Awards Adjustments" } } }, "auth_ref": [ "r871" ] }, "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]", "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table" } } }, "auth_ref": [ "r871" ] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityComponentDomain", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Component [Domain]", "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc." } } }, "auth_ref": [ "r10", "r169", "r193", "r194", "r195", "r207", "r208", "r209", "r211", "r216", "r218", "r220", "r236", "r265", "r266", "r295", "r353", "r444", "r445", "r451", "r452", "r453", "r455", "r459", "r460", "r469", "r470", "r471", "r472", "r473", "r474", "r476", "r495", "r496", "r497", "r498", "r499", "r500", "r504", "r506", "r522", "r588", "r604", "r605", "r606", "r620", "r675" ] }, "ecd_EquityValuationAssumptionDifferenceFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EquityValuationAssumptionDifferenceFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Valuation Assumption Difference, Footnote [Text Block]", "terseLabel": "Equity Valuation Assumption Difference, Footnote" } } }, "auth_ref": [ "r840" ] }, "ecd_ErrCompAnalysisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ErrCompAnalysisTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneous Compensation Analysis [Text Block]", "terseLabel": "Erroneous Compensation Analysis" } } }, "auth_ref": [ "r798", "r808", "r818", "r850" ] }, "ecd_ErrCompRecoveryTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ErrCompRecoveryTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneously Awarded Compensation Recovery [Table]", "terseLabel": "Erroneously Awarded Compensation Recovery" } } }, "auth_ref": [ "r795", "r805", "r815", "r847" ] }, "ecd_ExecutiveCategoryAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ExecutiveCategoryAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Executive Category [Axis]", "terseLabel": "Executive Category:" } } }, "auth_ref": [ "r846" ] }, "pdfs_ExpiredStockIncentivePlansCommonSharesRetainedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "ExpiredStockIncentivePlansCommonSharesRetainedForFutureIssuance", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Aggregate number of common shares retained for future issuance under expired stock incentive plans.", "label": "Expired Stock Incentive Plans, Common Shares Retained for Future Issuance", "terseLabel": "Stock Incentive Plans, Common Shares Reserved for Future Issuance from Expired Incentive Plans" } } }, "auth_ref": [] }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsTables" ], "lang": { "en-us": { "role": { "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]", "terseLabel": "Summary of Assets Measured at Fair Value on a Recurring Basis (In Thousands)", "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)." } } }, "auth_ref": [ "r985", "r986" ] }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Asset Class [Domain]", "documentation": "Class of asset." } } }, "auth_ref": [ "r484", "r485", "r486", "r487", "r488", "r489", "r492", "r754" ] }, "us-gaap_FairValueByAssetClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueByAssetClassAxis", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Asset Class [Axis]", "documentation": "Information by class of asset." } } }, "auth_ref": [ "r484", "r485", "r486", "r487", "r488", "r489", "r492", "r754" ] }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueByFairValueHierarchyLevelAxis", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value Hierarchy and NAV [Axis]", "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient." } } }, "auth_ref": [ "r330", "r381", "r382", "r383", "r384", "r385", "r386", "r479", "r480", "r481", "r482", "r483", "r490", "r491", "r493", "r530", "r531", "r532", "r731", "r732", "r740", "r741", "r742", "r752", "r756" ] }, "us-gaap_FairValueDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueDisclosuresAbstract", "lang": { "en-us": { "role": { "label": "FAIR VALUE MEASUREMENTS:" } } }, "auth_ref": [] }, "us-gaap_FairValueInputsLevel1Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueInputsLevel1Member", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value, Inputs, Level 1 [Member]", "verboseLabel": "(Level 1)", "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date." } } }, "auth_ref": [ "r330", "r381", "r386", "r480", "r491", "r530", "r740", "r741", "r742", "r752" ] }, "us-gaap_FairValueInputsLevel3Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueInputsLevel3Member", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value, Inputs, Level 3 [Member]", "verboseLabel": "(Level 3)", "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing." } } }, "auth_ref": [ "r330", "r381", "r382", "r383", "r384", "r385", "r386", "r480", "r481", "r482", "r483", "r491", "r532", "r731", "r732", "r740", "r741", "r742", "r752", "r756" ] }, "us-gaap_FairValueMeasurementPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueMeasurementPolicyPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Fair Value Measurement, Policy [Policy Text Block]", "terseLabel": "Fair Value Measurements, Policy", "documentation": "Disclosure of accounting policy for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities." } } }, "auth_ref": [] }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueMeasurementsFairValueHierarchyDomain", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value Hierarchy and NAV [Domain]", "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value." } } }, "auth_ref": [ "r330", "r381", "r382", "r383", "r384", "r385", "r386", "r479", "r480", "r481", "r482", "r483", "r490", "r491", "r493", "r530", "r531", "r532", "r731", "r732", "r740", "r741", "r742", "r752", "r756" ] }, "us-gaap_FederalFundsEffectiveSwapRateMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FederalFundsEffectiveSwapRateMember", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Fed Funds Effective Rate Overnight Index Swap Rate [Member]", "terseLabel": "Federal Funds Effective Rate", "documentation": "Fixed rate on U.S. dollar, constant-notional interest rate swap having its variable-rate leg referenced to Federal Funds effective rate with no additional spread over Federal Funds effective rate on that variable-rate leg." } } }, "auth_ref": [ "r983" ] }, "us-gaap_FinancialInstrumentsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinancialInstrumentsDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurements" ], "lang": { "en-us": { "role": { "label": "Financial Instruments Disclosure [Text Block]", "terseLabel": "FAIR VALUE MEASUREMENTS", "documentation": "The entire disclosure for financial instruments. This disclosure includes, but is not limited to, fair value measurements of short and long term marketable securities, international currencies forward contracts, and auction rate securities. Financial instruments may include hedging and non-hedging currency exchange instruments, derivatives, securitizations and securities available for sale at fair value. Also included are investment results, realized and unrealized gains and losses as well as impairments and risk management disclosures." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetUsefulLife", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Asset, Useful Life", "terseLabel": "Intangible asset amortization period", "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0, "order": 1.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "negatedLabel": "Intangible assets, accumulated amortization, total", "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r178", "r277", "r290", "r730" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "pdfs_IntangibleAssetsNetAmountToBeAmortized", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One", "terseLabel": "2026", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r292", "r709", "r730" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "pdfs_IntangibleAssetsNetAmountToBeAmortized", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year", "terseLabel": "2025 (remaining three months)", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year." } } }, "auth_ref": [ "r1054" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets Amortization Expense [Table Text Block]", "terseLabel": "Summary of Intangible Assets Amortization Expense (In Thousands)", "documentation": "Tabular disclosure of amortization expense of assets, excluding financial assets, that lack physical substance, having a limited useful life." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "pdfs_IntangibleAssetsNetAmountToBeAmortized", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four", "terseLabel": "2029", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r292", "r709", "r730" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "pdfs_IntangibleAssetsNetAmountToBeAmortized", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three", "terseLabel": "2028", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r292", "r709", "r730" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "pdfs_IntangibleAssetsNetAmountToBeAmortized", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two", "terseLabel": "2027", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r292", "r709", "r730" ] }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "documentation": "Information by major type or class of finite-lived intangible assets." } } }, "auth_ref": [ "r283", "r285", "r286", "r287", "r289", "r290", "r293", "r294", "r538", "r539", "r709" ] }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsGross", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 1.0 }, "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Intangible assets, gross carrying amount, total", "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r277", "r290", "r539", "r730" ] }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company." } } }, "auth_ref": [ "r283", "r285", "r286", "r287", "r289", "r290", "r293", "r294", "r709" ] }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Net", "totalLabel": "Intangible assets, net carrying amount, total", "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r538", "r930" ] }, "pdfs_FinitelivedIntangibleAssetExpectedAmortizationAfterYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "FinitelivedIntangibleAssetExpectedAmortizationAfterYearFour", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "pdfs_IntangibleAssetsNetAmountToBeAmortized", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "pdfs_FinitelivedIntangibleAssetExpectedAmortizationAfterYearFour", "terseLabel": "2030 and thereafter" } } }, "auth_ref": [] }, "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount", "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount" } } }, "auth_ref": [ "r802", "r812", "r822", "r854" ] }, "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Expense of Enforcement, Amount", "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount" } } }, "auth_ref": [ "r802", "r812", "r822", "r854" ] }, "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Violation of Home Country Law, Amount", "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount" } } }, "auth_ref": [ "r802", "r812", "r822", "r854" ] }, "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Explanation of Impracticability [Text Block]", "terseLabel": "Forgone Recovery, Explanation of Impracticability" } } }, "auth_ref": [ "r802", "r812", "r822", "r854" ] }, "ecd_ForgoneRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r802", "r812", "r822", "r854" ] }, "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]", "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year" } } }, "auth_ref": [ "r835" ] }, "us-gaap_FurnitureAndFixturesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FurnitureAndFixturesMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Furniture and Fixtures [Member]", "verboseLabel": "Furniture, Fixtures, and Equipment", "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases." } } }, "auth_ref": [] }, "us-gaap_GeographicConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GeographicConcentrationRiskMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Geographic Concentration Risk [Member]", "verboseLabel": "Geographic Concentration Risk", "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa)." } } }, "auth_ref": [ "r28", "r695" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Goodwill", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsGoodwillAndIntangibleAssetsNetDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Goodwill", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Goodwill", "verboseLabel": "Goodwill, carrying amount", "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r177", "r278", "r570", "r724", "r729", "r753", "r762", "r921", "r922" ] }, "us-gaap_GoodwillAcquiredDuringPeriod": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillAcquiredDuringPeriod", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsGoodwillAndIntangibleAssetsNetDetails" ], "lang": { "en-us": { "role": { "label": "Goodwill, Acquired During Period", "terseLabel": "Addition", "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination." } } }, "auth_ref": [ "r280", "r729" ] }, "us-gaap_GoodwillImpairmentLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillImpairmentLoss", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "label": "Goodwill, Impairment Loss", "verboseLabel": "Impairment of goodwill", "documentation": "Amount of impairment loss from asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r6", "r279", "r281", "r282", "r729", "r753" ] }, "us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillTranslationAndPurchaseAccountingAdjustments", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsGoodwillAndIntangibleAssetsNetDetails" ], "lang": { "en-us": { "role": { "label": "Goodwill, Translation and Measurement Period Adjustments", "terseLabel": "Foreign currency translation adjustment", "documentation": "Amount of increase (decrease) from foreign currency translation and measurement period adjustments of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r0", "r920" ] }, "us-gaap_GrossProfit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GrossProfit", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationSegmentRevenueGrossProfitAndNetIncomeLossDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationSegmentRevenueGrossProfitAndNetIncomeLossDetails" ], "lang": { "en-us": { "role": { "label": "Gross Profit", "totalLabel": "Gross Profit", "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity." } } }, "auth_ref": [ "r79", "r81", "r124", "r204", "r264", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r494", "r719", "r723", "r906", "r907", "r908", "r909", "r910", "r945" ] }, "us-gaap_GuaranteeObligationsMaximumExposure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GuaranteeObligationsMaximumExposure", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Guarantor Obligations, Maximum Exposure, Undiscounted", "terseLabel": "Undiscounted excess amount future minimum payments", "documentation": "Maximum potential amount of future payments (undiscounted) the guarantor could be required to make under the guarantee or each group of similar guarantees before reduction for potential recoveries under recourse or collateralization provisions." } } }, "auth_ref": [ "r310" ] }, "pdfs_InProgressCvSystemAndOtherAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "InProgressCvSystemAndOtherAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "CV system and other assets under construction. Includes recently completed structures or modifications to structures that have not been placed into service.", "label": "In-Progress CV System and Other Assets", "terseLabel": "CV System and Other Assets" } } }, "auth_ref": [] }, "pdfs_InProgressDfiSystemAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "InProgressDfiSystemAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "DFI system assets under construction. Includes recently completed structures or modifications to structures that have not been placed into service.", "label": "In-Progress DFI System Assets", "terseLabel": "DFI System Assets" } } }, "auth_ref": [] }, "pdfs_IncentivePlanYear2011AmendedMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "IncentivePlanYear2011AmendedMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Incentive Plan Year 2011 Amended [Member]", "terseLabel": "Amended 2011 Stock Incentive Plan" } } }, "auth_ref": [] }, "pdfs_IncentivePlanYear2011Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "IncentivePlanYear2011Member", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Incentive Plan Year 2011 [Member]", "terseLabel": "2011 Stock Incentive Plan" } } }, "auth_ref": [] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "totalLabel": "Loss before income tax expense", "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": [ "r80", "r120", "r124", "r573", "r585", "r719", "r723", "r906", "r907", "r908", "r909", "r910" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS" } } }, "auth_ref": [] }, "us-gaap_IncomeStatementLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementLocationAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Statement of Income Location, Balance [Axis]", "documentation": "Information by location in statement of income where disaggregated amount has been reported." } } }, "auth_ref": [ "r296", "r302", "r303", "r485", "r489", "r492", "r601", "r603", "r660", "r709", "r755", "r1017" ] }, "us-gaap_IncomeStatementLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementLocationDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Statement of Income Location, Balance [Domain]", "documentation": "Location in statement of income where disaggregated amount has been reported." } } }, "auth_ref": [ "r302", "r303", "r485", "r489", "r492", "r601", "r603", "r660", "r709", "r755", "r1017" ] }, "us-gaap_IncomeTaxDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxDisclosureAbstract", "lang": { "en-us": { "role": { "label": "INCOME TAXES:" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxes" ], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Text Block]", "terseLabel": "INCOME TAXES", "documentation": "The entire disclosure for income tax." } } }, "auth_ref": [ "r205", "r429", "r434", "r435", "r436", "r437", "r441", "r443", "r446", "r448", "r449", "r450", "r615", "r749" ] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Income Tax Expense (Benefit)", "negatedLabel": "Income tax expense", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r130", "r137", "r219", "r220", "r235", "r245", "r253", "r433", "r434", "r447", "r592", "r749" ] }, "us-gaap_IncomeTaxesPaid": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxesPaid", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Income Taxes Paid", "verboseLabel": "Cash paid during the year for income taxes", "documentation": "Amount, before refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax." } } }, "auth_ref": [ "r20", "r91", "r896", "r981", "r982" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 13.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accounts Payable", "verboseLabel": "Accounts payable", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsReceivable", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 9.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Accounts receivable", "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccruedLiabilities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 15.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accrued Liabilities", "verboseLabel": "Accrued and other liabilities", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInContractWithCustomerLiability", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 16.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Contract with Customer, Liability", "verboseLabel": "Deferred revenues", "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r536", "r894" ] }, "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInEmployeeRelatedLiabilities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 14.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Employee Related Liabilities", "verboseLabel": "Accrued compensation and related benefits", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInIncomeTaxes": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInIncomeTaxes", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Income Taxes", "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, and in deferred and other tax liabilities and assets." } } }, "auth_ref": [ "r894" ] }, "us-gaap_IncreaseDecreaseInOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOperatingLeaseLiability", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 17.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Lease Liability", "verboseLabel": "Operating lease liabilities", "documentation": "Amount of increase (decrease) in obligation for operating lease." } } }, "auth_ref": [ "r882", "r894" ] }, "us-gaap_IncreaseDecreaseInOtherNoncurrentAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherNoncurrentAssets", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 12.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Noncurrent Assets", "negatedLabel": "Other non-current assets", "documentation": "Amount of increase (decrease) in noncurrent assets classified as other." } } }, "auth_ref": [ "r894" ] }, "us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Operating Assets and Liabilities, Net [Abstract]" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 10.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "negatedLabel": "Prepaid expenses and other current assets", "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other." } } }, "auth_ref": [ "r5" ] }, "pdfs_IndemnificationsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "IndemnificationsMember", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "documentation": "Commitments and contingencies pertaining to indemnifications.", "label": "Indemnifications" } } }, "auth_ref": [] }, "ecd_IndividualAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "IndividualAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Individual [Axis]", "terseLabel": "Individual:" } } }, "auth_ref": [ "r802", "r812", "r822", "r846", "r854", "r858", "r866" ] }, "ecd_InsiderTradingArrLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTradingArrLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Arrangements [Line Items]", "terseLabel": "Insider Trading Arrangements:" } } }, "auth_ref": [ "r864" ] }, "ecd_InsiderTradingPoliciesProcLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTradingPoliciesProcLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures [Line Items]", "terseLabel": "Insider Trading Policies and Procedures:" } } }, "auth_ref": [ "r794", "r870" ] }, "ecd_InsiderTrdPoliciesProcAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTrdPoliciesProcAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Adopted [Flag]", "terseLabel": "Insider Trading Policies and Procedures Adopted" } } }, "auth_ref": [ "r794", "r870" ] }, "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]", "terseLabel": "Insider Trading Policies and Procedures Not Adopted" } } }, "auth_ref": [ "r794", "r870" ] }, "pdfs_IntangibleAssetsNetAmountToBeAmortized": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "IntangibleAssetsNetAmountToBeAmortized", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Net carrying amount of intangible assets, which will be amortized over a set period of time.", "label": "Intangible assets, net amount to be amortized", "totalLabel": "Total future amortization expense" } } }, "auth_ref": [] }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IntangibleAssetsNetExcludingGoodwill", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Intangible Assets, Net (Excluding Goodwill)", "terseLabel": "Intangible assets, net", "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges." } } }, "auth_ref": [ "r283", "r930", "r932" ] }, "pdfs_IntegratedYieldRampMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "IntegratedYieldRampMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Integrated yield ramp.", "label": "Integrated Yield Ramp [Member]", "verboseLabel": "Integrated Yield Ramp" } } }, "auth_ref": [] }, "pdfs_IntegratedYieldRampRevenuePolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "IntegratedYieldRampRevenuePolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for revenue recognition for royalty fees, which is consideration or a share of the proceeds paid by another party to the owner of a right (that is, the entity) for its use.", "label": "Integrated Yield Ramp Revenue [Policy Text Block]", "terseLabel": "Integrated Yield Ramp Revenue, Policy" } } }, "auth_ref": [] }, "us-gaap_InterestExpenseDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestExpenseDebt", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Interest Expense, Debt", "negatedLabel": "Interest expense", "documentation": "Amount of the cost of borrowed funds accounted for as interest expense for debt." } } }, "auth_ref": [ "r84", "r333", "r339", "r733", "r734" ] }, "pdfs_InternationalOperationsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "InternationalOperationsMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "Countries excluding the United States of America (US).", "label": "International Operations [Member]", "terseLabel": "International Revenues" } } }, "auth_ref": [] }, "country_JP": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2024", "localname": "JP", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "JAPAN", "verboseLabel": "Japan" } } }, "auth_ref": [] }, "pdfs_LaboratoryAndTestEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "LaboratoryAndTestEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to laboratory and test equipment.", "label": "Laboratory and Other Equipment [Member]", "verboseLabel": "Laboratory and Other Equipment" } } }, "auth_ref": [] }, "us-gaap_LeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Lease, Cost", "totalLabel": "Total lease expense", "documentation": "Amount of lease cost recognized by lessee for lease contract." } } }, "auth_ref": [ "r510", "r761" ] }, "us-gaap_LeaseCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseCostTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lease, Cost [Table Text Block]", "terseLabel": "Summary of Lease Expense (In Thousands)", "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": [ "r995" ] }, "us-gaap_LeaseholdImprovementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseholdImprovementsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Leasehold Improvements [Member]", "verboseLabel": "Leasehold Improvements", "documentation": "Additions or improvements to assets held under a lease arrangement." } } }, "auth_ref": [ "r98", "r518" ] }, "us-gaap_LeasesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeasesAbstract", "lang": { "en-us": { "role": { "label": "LEASES:" } } }, "auth_ref": [] }, "pdfs_LesseeOperatingLeaseInitialTermOfContractThreshold": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "LesseeOperatingLeaseInitialTermOfContractThreshold", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesDetails" ], "lang": { "en-us": { "role": { "documentation": "Initial term of operating leases, threshold for determining whether the lease is recorded on the accompanying condensed consolidated balance sheets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessee, Operating Lease, Initial Term of Contract Threshold", "terseLabel": "Initial lease term, threshold to be recorded in accompanying condensed consolidated balance sheets" } } }, "auth_ref": [] }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]", "terseLabel": "Summary for Maturities of Operating Lease Liabilities (In Thousands)", "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position." } } }, "auth_ref": [ "r996" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid", "totalLabel": "Total future minimum lease payments", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease." } } }, "auth_ref": [ "r517" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Year One", "terseLabel": "2025 (remaining nine months)", "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": [ "r517" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four", "terseLabel": "2028", "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": [ "r517" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three", "terseLabel": "2027", "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": [ "r517" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two", "terseLabel": "2026", "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": [ "r517" ] }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount", "negatedLabel": "Less: Interest (1)", "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease." } } }, "auth_ref": [ "r517" ] }, "us-gaap_LesseeOperatingLeaseRemainingLeaseTerm": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseRemainingLeaseTerm", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Remaining Lease Term", "terseLabel": "Operating lease term (commencing Q2 2025)", "documentation": "Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r519", "r994" ] }, "us-gaap_LesseeOperatingLeasesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeasesTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeases" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Leases [Text Block]", "terseLabel": "LEASES", "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability." } } }, "auth_ref": [ "r505" ] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Liabilities", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities", "totalLabel": "Total liabilities", "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others." } } }, "auth_ref": [ "r12", "r63", "r64", "r65", "r67", "r68", "r69", "r70", "r204", "r264", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r464", "r467", "r468", "r494", "r633", "r718", "r789", "r945", "r1000", "r1001" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities and Equity", "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": [ "r77", "r117", "r581", "r762", "r898", "r917", "r989" ] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities, Current", "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": [ "r65", "r172", "r204", "r264", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r464", "r467", "r468", "r494", "r762", "r945", "r1000", "r1001" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]" } } }, "auth_ref": [] }, "us-gaap_LineOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCredit", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails": { "parentTag": "us-gaap_DebtInstrumentCarryingAmount", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails", "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Line of Credit", "terseLabel": "Revolving credit facility", "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement." } } }, "auth_ref": [ "r12", "r116", "r1011" ] }, "us-gaap_LineOfCreditFacilityAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityAxis", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Lender Name [Axis]", "documentation": "Information by name of lender, which may be a single entity (for example, but not limited to, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit." } } }, "auth_ref": [ "r62", "r66", "r897", "r943", "r944" ] }, "us-gaap_LineOfCreditFacilityCommitmentFeePercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityCommitmentFeePercentage", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit Facility, Commitment Fee Percentage", "terseLabel": "Annual commitment fee", "documentation": "The fee, expressed as a percentage of the line of credit facility, for the line of credit facility regardless of whether the facility has been used." } } }, "auth_ref": [] }, "us-gaap_LineOfCreditFacilityLenderDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityLenderDomain", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit Facility, Lender [Domain]", "documentation": "Identification of the lender, which may be a single entity (for example, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit, including a letter of credit facility." } } }, "auth_ref": [ "r62", "r66", "r897", "r943" ] }, "pdfs_LineOfCreditFacilityLenderMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "LineOfCreditFacilityLenderMember", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "documentation": "Identification of the lender, which may be a single entity (for example, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit, including a letter of credit facility.", "label": "Line of Credit Facility, Lender A [Member]", "terseLabel": "Wells Fargo" } } }, "auth_ref": [] }, "us-gaap_LineOfCreditFacilityLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit Facility [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": [ "r312", "r897", "r943" ] }, "us-gaap_LineOfCreditFacilityTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityTable", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit Facility [Table]", "documentation": "Disclosure of information about short-term and long-term contractual arrangements with lender under which borrowing can occur up to maximum amount. Includes, but is not limited to, letter of credit, standby letter of credit, and revolving credit arrangement." } } }, "auth_ref": [ "r62", "r66", "r312", "r897", "r943" ] }, "us-gaap_LineOfCreditMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditMember", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit [Member]", "terseLabel": "Revolving Credit Facility", "documentation": "A contractual arrangement with a lender under which borrowings can be made up to a specific amount at any point in time, and under which borrowings outstanding may be either short-term or long-term, depending upon the particulars." } } }, "auth_ref": [] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "LocalPhoneNumber", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_LongTermDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebt", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt", "terseLabel": "Total debt, net of unamortized debt discount and financing costs", "totalLabel": "Total debt, net of unamortized debt discount and financing costs", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation." } } }, "auth_ref": [ "r12", "r116", "r329", "r338", "r731", "r732", "r760", "r1011" ] }, "us-gaap_LongTermDebtCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails": { "parentTag": "us-gaap_LongTermDebt", "weight": 1.0, "order": 1.0 }, "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Current Maturities", "verboseLabel": "Current portion of long-term debt, net", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as current. Excludes lease obligation." } } }, "auth_ref": [ "r181" ] }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails": { "parentTag": "pdfs_TotalFuturePrincipalPaymentsOfLongTermDebt", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Maturity, after Year Five", "terseLabel": "2030", "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing 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": [ "r8", "r206", "r949" ] }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails": { "parentTag": "pdfs_TotalFuturePrincipalPaymentsOfLongTermDebt", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Maturity, Year One", "terseLabel": "2025", "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r8", "r206", "r332" ] }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails": { "parentTag": "pdfs_TotalFuturePrincipalPaymentsOfLongTermDebt", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Maturity, Year Five", "terseLabel": "2029", "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in 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": [ "r8", "r206", "r332" ] }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails": { "parentTag": "pdfs_TotalFuturePrincipalPaymentsOfLongTermDebt", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Maturity, Year Four", "terseLabel": "2028", "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r8", "r206", "r332" ] }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails": { "parentTag": "pdfs_TotalFuturePrincipalPaymentsOfLongTermDebt", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Maturity, Year Three", "terseLabel": "2027", "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r8", "r206", "r332" ] }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails": { "parentTag": "pdfs_TotalFuturePrincipalPaymentsOfLongTermDebt", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Maturity, Year Two", "terseLabel": "2026", "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r8", "r206", "r332" ] }, "us-gaap_LongTermDebtNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails": { "parentTag": "us-gaap_LongTermDebt", "weight": 1.0, "order": 2.0 }, "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Excluding Current Maturities", "terseLabel": "Long-term debt, net", "verboseLabel": "Long-term bank loan - net of unamortized debt issuance and debt discount", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation." } } }, "auth_ref": [ "r182" ] }, "us-gaap_LongtermDebtCurrentAndNoncurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongtermDebtCurrentAndNoncurrentAbstract", "presentation": [ "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Current and Noncurrent [Abstract]", "terseLabel": "Long-term Debt Reported as:" } } }, "auth_ref": [] }, "us-gaap_LongtermDebtTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongtermDebtTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Type [Axis]", "documentation": "Information by type of long-term debt." } } }, "auth_ref": [ "r12", "r936", "r937", "r938" ] }, "us-gaap_LongtermDebtTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongtermDebtTypeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "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": [ "r12", "r41", "r936", "r937", "r938" ] }, "us-gaap_LongtermPurchaseCommitmentPeriod": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongtermPurchaseCommitmentPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Long-Term Purchase Commitment, Period", "terseLabel": "Term of cloud-based subscription for Extension analytics software", "documentation": "Period covered by the long-term purchase commitment, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "srt_MajorCustomersAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MajorCustomersAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]", "documentation": "Information by name or description of a single external customer or a group of external customers." } } }, "auth_ref": [ "r260", "r738", "r772", "r776", "r952", "r1014", "r1018", "r1019", "r1021", "r1022", "r1023", "r1024", "r1025", "r1026", "r1027", "r1028", "r1029", "r1030", "r1031", "r1032", "r1033", "r1034", "r1035", "r1036", "r1037", "r1038", "r1039", "r1040", "r1041", "r1042", "r1043", "r1044", "r1045" ] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MaximumMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "verboseLabel": "Maximum", "documentation": "Upper limit of the provided range." } } }, "auth_ref": [ "r139", "r141", "r143", "r144", "r146", "r167", "r168", "r306", "r307", "r308", "r309", "r388", "r427", "r483", "r535", "r600", "r602", "r610", "r625", "r626", "r683", "r685", "r687", "r688", "r690", "r707", "r708", "r728", "r735", "r745", "r756", "r757", "r758", "r759", "r773", "r947", "r1002", "r1003", "r1004", "r1006", "r1007", "r1008" ] }, "ecd_MeasureAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MeasureAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure [Axis]", "terseLabel": "Measure:" } } }, "auth_ref": [ "r838" ] }, "ecd_MeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure Name", "terseLabel": "Name" } } }, "auth_ref": [ "r838" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MinimumMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails", "http://www.pdf.com/role/DisclosureLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "verboseLabel": "Minimum", "documentation": "Lower limit of the provided range." } } }, "auth_ref": [ "r139", "r141", "r143", "r144", "r146", "r167", "r168", "r306", "r307", "r308", "r309", "r388", "r427", "r483", "r535", "r600", "r602", "r610", "r625", "r626", "r683", "r685", "r687", "r688", "r690", "r707", "r708", "r728", "r735", "r745", "r756", "r757", "r758", "r773", "r947", "r1002", "r1003", "r1004", "r1006", "r1007", "r1008" ] }, "ecd_MnpiDiscTimedForCompValFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MnpiDiscTimedForCompValFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "MNPI Disclosure Timed for Compensation Value [Flag]", "terseLabel": "MNPI Disclosure Timed for Compensation Value" } } }, "auth_ref": [ "r857" ] }, "us-gaap_MoneyMarketFundsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "MoneyMarketFundsMember", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Money Market Funds [Member]", "verboseLabel": "Money Market Mutual Funds", "documentation": "Fund that invests in short-term money-market instruments, for example, but not limited to, commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and other highly liquid securities." } } }, "auth_ref": [ "r953" ] }, "pdfs_MoreThanHalfOfRemainingPerformanceObligations": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "MoreThanHalfOfRemainingPerformanceObligations", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "More than half of the remaining performance obligations" } } }, "auth_ref": [] }, "ecd_MtrlTermsOfTrdArrTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MtrlTermsOfTrdArrTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Material Terms of Trading Arrangement [Text Block]", "terseLabel": "Material Terms of Trading Arrangement" } } }, "auth_ref": [ "r865" ] }, "srt_NameOfMajorCustomerDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "NameOfMajorCustomerDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]", "documentation": "Single external customer or group of external customers." } } }, "auth_ref": [ "r260", "r738", "r772", "r776", "r952", "r1014", "r1018", "r1019", "r1021", "r1022", "r1023", "r1024", "r1025", "r1026", "r1027", "r1028", "r1029", "r1030", "r1031", "r1032", "r1033", "r1034", "r1035", "r1036", "r1037", "r1038", "r1039", "r1040", "r1041", "r1042", "r1043", "r1044", "r1045" ] }, "ecd_NamedExecutiveOfficersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NamedExecutiveOfficersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Named Executive Officers, Footnote [Text Block]", "terseLabel": "Named Executive Officers, Footnote" } } }, "auth_ref": [ "r839" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net cash provided by (used in) financing activities", "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit." } } }, "auth_ref": [ "r200" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities", "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": [ "r200" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivities", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities", "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": [ "r89", "r90", "r92" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetIncomeLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationSegmentRevenueGrossProfitAndNetIncomeLossDetails", "http://www.pdf.com/role/DisclosureNetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "totalLabel": "Net loss", "label": "Net Income (Loss)", "terseLabel": "Net Income (Loss)", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r82", "r92", "r121", "r170", "r188", "r191", "r195", "r204", "r210", "r212", "r213", "r214", "r215", "r216", "r219", "r220", "r226", "r264", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r454", "r460", "r478", "r494", "r587", "r655", "r673", "r674", "r787", "r945" ] }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "terseLabel": "Recent Accounting Standards, Policy", "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": [] }, "pdfs_NewSharesReservedForFutureIssuanceUnderStockPlanAmendment": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "NewSharesReservedForFutureIssuanceUnderStockPlanAmendment", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Aggregate number of common shares reserved for future issuance from amendments to existing employee stock purchase plans.", "label": "New Shares Reserved for Future Issuance Under Stock Plan Amendment" } } }, "auth_ref": [] }, "ecd_NonGaapMeasureDescriptionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonGaapMeasureDescriptionTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-GAAP Measure Description [Text Block]", "terseLabel": "Non-GAAP Measure Description" } } }, "auth_ref": [ "r838" ] }, "ecd_NonNeosMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonNeosMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-NEOs [Member]", "terseLabel": "Non-NEOs" } } }, "auth_ref": [ "r802", "r812", "r822", "r846", "r854" ] }, "ecd_NonPeoNeoAvgCompActuallyPaidAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonPeoNeoAvgCompActuallyPaidAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Compensation Actually Paid Amount", "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount" } } }, "auth_ref": [ "r829" ] }, "ecd_NonPeoNeoAvgTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonPeoNeoAvgTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Total Compensation Amount", "terseLabel": "Non-PEO NEO Average Total Compensation Amount" } } }, "auth_ref": [ "r828" ] }, "ecd_NonPeoNeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonPeoNeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO [Member]", "terseLabel": "Non-PEO NEO" } } }, "auth_ref": [ "r846" ] }, "ecd_NonRule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r865" ] }, "ecd_NonRule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r865" ] }, "us-gaap_NonUsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NonUsMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Non-US [Member]", "terseLabel": "Rest of the World", "documentation": "Countries excluding the United States of America (US)." } } }, "auth_ref": [ "r1050", "r1051", "r1052", "r1053" ] }, "pdfs_NoncashDebtFinancingCostsIncludedInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "NoncashDebtFinancingCostsIncludedInAccountsPayable", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Represents the noncash amount of debt financing costs that were included in the balance of accounts payable at period-end.", "label": "Noncash Debt Financing Costs Included in Accounts Payable", "terseLabel": "Debt financing costs included in accounts payable" } } }, "auth_ref": [] }, "pdfs_NoncashFixedAssetsTransferredToSalesTypeLease": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "NoncashFixedAssetsTransferredToSalesTypeLease", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Represents the noncash fixed assets transferred to sales-type lease.", "label": "Noncash Fixed Assets Transferred To Sales Type Lease", "verboseLabel": "Property and equipment transferred to sales-type lease" } } }, "auth_ref": [] }, "us-gaap_NoncashInvestingAndFinancingItemsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NoncashInvestingAndFinancingItemsAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Noncash Investing and Financing Items [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NoncompeteAgreementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NoncompeteAgreementsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Noncompete Agreements [Member]", "verboseLabel": "Noncompetition Agreements", "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party." } } }, "auth_ref": [ "r54", "r923", "r924", "r925", "r926", "r928", "r930", "r933", "r934" ] }, "us-gaap_NoncurrentAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NoncurrentAssets", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Assets", "terseLabel": "Long-lived assets, net", "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets." } } }, "auth_ref": [ "r259" ] }, "us-gaap_NotesReceivableMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NotesReceivableMember", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Notes Receivable [Member]", "terseLabel": "Convertible Note Receivable (2)", "documentation": "An amount representing an agreement for an unconditional promise by the maker to pay the Entity (holder) a definite sum of money at a future date(s) within one year of the balance sheet date. Such amount may include accrued interest receivable in accordance with the terms of the note. The note also may contain provisions including a discount or premium, payable on demand, secured, or unsecured, interest bearing or noninterest bearing, among myriad other features and characteristics." } } }, "auth_ref": [] }, "us-gaap_NotesReceivableNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NotesReceivableNet", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Financing Receivable, after Allowance for Credit Loss", "terseLabel": "Convertible note receivable", "documentation": "Amortized cost, after allowance for credit loss, of financing receivable. Excludes financing receivable covered under loss sharing agreement and net investment in lease." } } }, "auth_ref": [ "r271", "r642", "r911", "r1012" ] }, "pdfs_NumberOfFinanceLeases": { "xbrltype": "integerItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "NumberOfFinanceLeases", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesDetails" ], "lang": { "en-us": { "role": { "documentation": "Number of finance leases as of balance sheet date.", "label": "Number Of Finance Leases", "terseLabel": "Number of finance leases" } } }, "auth_ref": [] }, "pdfs_NumberOfRevenueSources": { "xbrltype": "integerItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "NumberOfRevenueSources", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to number of sources where the company is deriving revenue.", "label": "Number of Revenue Sources", "terseLabel": "Number of revenue sources" } } }, "auth_ref": [] }, "pdfs_NumberOfSixMonthPurchasePeriodsInEachOfferingPeriod": { "xbrltype": "integerItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "NumberOfSixMonthPurchasePeriodsInEachOfferingPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Number of six month purchase periods in each offering period under the employee stock plan.", "label": "Number of six month purchase periods in each offering period", "terseLabel": "ESPP, Share Purchase Periods Within Each Offering Period" } } }, "auth_ref": [] }, "us-gaap_OperatingIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingIncomeLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Operating Income (Loss)", "totalLabel": "Loss from operations", "documentation": "The net result for the period of deducting operating expenses from operating revenues." } } }, "auth_ref": [ "r124", "r719", "r906", "r907", "r908", "r909", "r910" ] }, "us-gaap_OperatingLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Cost", "terseLabel": "Operating lease expense", "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": [ "r511", "r761" ] }, "us-gaap_OperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiability", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 }, "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability", "totalLabel": "Present value of future minimum lease payments under operating lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease." } } }, "auth_ref": [ "r508" ] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0, "order": 1.0 }, "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Current", "terseLabel": "Operating lease liabilities - current portion", "verboseLabel": "Operating lease liabilities - current", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r508" ] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 2.0 }, "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Non-current portion of operating lease liabilities", "verboseLabel": "Operating lease liabilities - non-current", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r508" ] }, "us-gaap_OperatingLeasePayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeasePayments", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Payments", "verboseLabel": "Cash paid for amounts included in the measurement of operating lease liabilities", "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": [ "r509", "r513" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "Operating lease right-of-use assets, net", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r507" ] }, "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 11.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Right-of-Use Asset, Periodic Reduction", "verboseLabel": "Operating lease right-of-use assets", "documentation": "Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease." } } }, "auth_ref": [ "r895" ] }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Weighted Average Discount Rate, Percent", "terseLabel": "Weighted average discount rate for operating lease liabilities", "documentation": "Weighted average discount rate for operating lease calculated at point in time." } } }, "auth_ref": [ "r516", "r761" ] }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Weighted Average Remaining Lease Term", "terseLabel": "Weighted average remaining lease term under operating leases (in years)", "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": [ "r515", "r761" ] }, "us-gaap_OtherAssetsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherAssetsFairValueDisclosure", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Other Assets, Fair Value Disclosure", "totalLabel": "Assets measured at fair value, total", "documentation": "Fair value portion of other assets." } } }, "auth_ref": [ "r985", "r986", "r988" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 7.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Other Assets, Noncurrent", "totalLabel": "Total other non-current assets", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r179" ] }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent", "terseLabel": "Foreign currency translation adjustments, net of tax", "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity." } } }, "auth_ref": [ "r4", "r9", "r112" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxAttributableToParentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossNetOfTaxAttributableToParentAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent, Alternative [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent", "totalLabel": "Total other comprehensive income (loss)", "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity." } } }, "auth_ref": [ "r4", "r9", "r112", "r189", "r192", "r216" ] }, "us-gaap_OtherIntangibleAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherIntangibleAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Other Intangible Assets [Member]", "terseLabel": "Goodwill", "documentation": "Intangible assets classified as other." } } }, "auth_ref": [ "r730", "r923", "r924", "r925", "r926", "r927", "r928", "r930", "r932", "r933", "r934" ] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Other Liabilities, Noncurrent", "terseLabel": "Other non-current liabilities", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r68" ] }, "us-gaap_OtherNoncashIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNoncashIncomeExpense", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 8.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Other Noncash Income (Expense)", "negatedLabel": "Other", "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other." } } }, "auth_ref": [ "r92" ] }, "us-gaap_OtherNoncurrentAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNoncurrentAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails", "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails" ], "lang": { "en-us": { "role": { "label": "Other Noncurrent Assets [Member]", "verboseLabel": "Other Non-current Assets", "documentation": "Primary financial statement caption encompassing other noncurrent assets." } } }, "auth_ref": [] }, "us-gaap_OtherNonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNonoperatingIncomeExpense", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Other Nonoperating Income (Expense)", "terseLabel": "Other income (expense), net", "documentation": "Amount of income (expense) related to nonoperating activities, classified as other." } } }, "auth_ref": [ "r85" ] }, "ecd_OtherPerfMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OtherPerfMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Other Performance Measure, Amount", "terseLabel": "Other Performance Measure, Amount" } } }, "auth_ref": [ "r838" ] }, "ecd_OutstandingAggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OutstandingAggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Aggregate Erroneous Compensation Amount", "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r800", "r810", "r820", "r852" ] }, "ecd_OutstandingRecoveryCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OutstandingRecoveryCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery Compensation Amount", "terseLabel": "Compensation Amount" } } }, "auth_ref": [ "r803", "r813", "r823", "r855" ] }, "ecd_OutstandingRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OutstandingRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r803", "r813", "r823", "r855" ] }, "us-gaap_PatentsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PatentsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Patents [Member]", "verboseLabel": "Patent", "documentation": "Exclusive legal right granted by the government to the owner of the patent to exploit an invention or a process for a period of time specified by law." } } }, "auth_ref": [ "r111", "r923", "r924", "r925", "r926", "r928", "r930", "r933", "r934" ] }, "ecd_PayVsPerformanceDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PayVsPerformanceDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Line Items]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r827" ] }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsForRepurchaseOfCommonStock", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments for Repurchase of Common Stock", "negatedLabel": "Repurchases of common stock", "verboseLabel": "Aggregate cost of shares repurchased", "documentation": "The cash outflow to reacquire common stock during the period." } } }, "auth_ref": [ "r88" ] }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payment, Tax Withholding, Share-Based Payment Arrangement", "negatedLabel": "Payments for taxes related to net share settlement of equity awards", "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [ "r198" ] }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Businesses, Net of Cash Acquired", "negatedLabel": "Payment for business acquisition, net of cash acquired", "terseLabel": "Consideration to acquire business, net of cash acquired", "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase." } } }, "auth_ref": [ "r17" ] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Purchases of property and equipment", "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets." } } }, "auth_ref": [ "r87" ] }, "us-gaap_PaymentsToAcquireShortTermInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsToAcquireShortTermInvestments", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Short-Term Investments", "negatedLabel": "Purchases of short-term investments", "documentation": "The cash outflow for securities or other assets acquired, which qualify for treatment as an investing activity and are to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term." } } }, "auth_ref": [ "r86" ] }, "ecd_PeerGroupIssuersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeerGroupIssuersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Issuers, Footnote [Text Block]", "terseLabel": "Peer Group Issuers, Footnote" } } }, "auth_ref": [ "r837" ] }, "ecd_PeerGroupTotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeerGroupTotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Total Shareholder Return Amount", "terseLabel": "Peer Group Total Shareholder Return Amount" } } }, "auth_ref": [ "r837" ] }, "ecd_PeoActuallyPaidCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoActuallyPaidCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Actually Paid Compensation Amount", "terseLabel": "PEO Actually Paid Compensation Amount" } } }, "auth_ref": [ "r829" ] }, "ecd_PeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO [Member]", "terseLabel": "PEO" } } }, "auth_ref": [ "r846" ] }, "ecd_PeoName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Name", "terseLabel": "PEO Name" } } }, "auth_ref": [ "r839" ] }, "ecd_PeoTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Total Compensation Amount", "terseLabel": "PEO Total Compensation Amount" } } }, "auth_ref": [ "r828" ] }, "pdfs_PercentOfRevenue": { "xbrltype": "percentItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "PercentOfRevenue", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "The percent of revenue.", "label": "Percent of revenues", "terseLabel": "Performance obligations, percentage of revenues" } } }, "auth_ref": [] }, "us-gaap_PlanNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PlanNameAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Plan Name [Axis]", "documentation": "Information by plan name for share-based payment arrangement." } } }, "auth_ref": [ "r955", "r956", "r957", "r958", "r959", "r960", "r961", "r962", "r963", "r964", "r965", "r966", "r967", "r968", "r969", "r970", "r971", "r972", "r973", "r974", "r975", "r976", "r977", "r978", "r979", "r980" ] }, "us-gaap_PlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PlanNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Plan Name [Domain]", "documentation": "Plan name for share-based payment arrangement." } } }, "auth_ref": [ "r955", "r956", "r957", "r958", "r959", "r960", "r961", "r962", "r963", "r964", "r965", "r966", "r967", "r968", "r969", "r970", "r971", "r972", "r973", "r974", "r975", "r976", "r977", "r978", "r979", "r980" ] }, "ecd_PnsnAdjsPrrSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PnsnAdjsPrrSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pension Adjustments Prior Service Cost [Member]", "terseLabel": "Pension Adjustments Prior Service Cost" } } }, "auth_ref": [ "r830" ] }, "ecd_PnsnAdjsSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PnsnAdjsSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pension Adjustments Service Cost [Member]", "terseLabel": "Pension Adjustments Service Cost" } } }, "auth_ref": [ "r874" ] }, "ecd_PnsnBnftsAdjFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PnsnBnftsAdjFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pension Benefits Adjustments, Footnote [Text Block]", "terseLabel": "Pension Benefits Adjustments, Footnote" } } }, "auth_ref": [ "r829" ] }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockParOrStatedValuePerShare", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Par or Stated Value Per Share", "terseLabel": "Preferred stock, par value", "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer." } } }, "auth_ref": [ "r71", "r341" ] }, "us-gaap_PreferredStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockSharesAuthorized", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Shares Authorized", "terseLabel": "Preferred stock, shares authorized", "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r71", "r634" ] }, "us-gaap_PreferredStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockSharesIssued", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Shares Issued", "terseLabel": "Preferred stock, shares issued", "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt." } } }, "auth_ref": [ "r71", "r341" ] }, "us-gaap_PreferredStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockSharesOutstanding", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Shares Outstanding", "terseLabel": "Preferred stock, shares outstanding", "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased." } } }, "auth_ref": [ "r71", "r634", "r653", "r1048", "r1049" ] }, "us-gaap_PreferredStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockValue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Value, Issued", "terseLabel": "Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding", "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r71", "r577", "r762" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 4.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Prepaid Expense and Other Assets, Current", "terseLabel": "Prepaid expenses and other current assets", "totalLabel": "Total 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": [ "r890" ] }, "us-gaap_PrepaidExpenseCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpenseCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Prepaid Expense, Current", "terseLabel": "Prepaid expense", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r186", "r273", "r274", "r714" ] }, "us-gaap_PrepaidExpenseOtherNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpenseOtherNoncurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails": { "parentTag": "us-gaap_OtherAssetsNoncurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Prepaid Expense Other, Noncurrent", "terseLabel": "Other", "documentation": "Carrying amount as of the balance sheet date of amounts paid in advance which will be charged against earnings in periods after one year or beyond the operating cycle, if longer." } } }, "auth_ref": [ "r886" ] }, "us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpensesAndOtherCurrentAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails", "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails" ], "lang": { "en-us": { "role": { "label": "Prepaid Expenses and Other Current Assets [Member]", "verboseLabel": "Prepaid Expenses and Other Current Assets", "documentation": "Primary financial statement caption encompassing prepaid expenses and other current assets." } } }, "auth_ref": [] }, "pdfs_PrepaymentsForPurchasesOfPropertyAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "PrepaymentsForPurchasesOfPropertyAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with pre-payments for the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Prepayments for purchases of property and equipment", "negatedLabel": "Prepayment for the purchase of property and equipment" } } }, "auth_ref": [] }, "us-gaap_PriorPeriodReclassificationAdjustmentDescription": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PriorPeriodReclassificationAdjustmentDescription", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Reclassification, Comparability Adjustment [Policy Text Block]", "terseLabel": "Reclassification of Prior Period Amount, Policy", "documentation": "Disclosure of accounting policy for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error." } } }, "auth_ref": [ "r884" ] }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromIssuanceOfCommonStock", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Proceeds from Issuance of Common Stock", "terseLabel": "Proceeds from Issuance of Common Stock", "documentation": "The cash inflow from the additional capital contribution to the entity." } } }, "auth_ref": [ "r3" ] }, "us-gaap_ProceedsFromIssuanceOfLongTermDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromIssuanceOfLongTermDebt", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Issuance of Long-Term Debt", "terseLabel": "Proceeds from long-term debt, net of payment of debt financing costs", "documentation": "The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer." } } }, "auth_ref": [ "r18", "r613" ] }, "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Maturities, Prepayments and Calls of Short-Term Investments", "verboseLabel": "Proceeds from maturities and sales of short-term investments", "documentation": "The cash inflow from maturities, prepayments, calls and collections of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term." } } }, "auth_ref": [ "r16", "r86" ] }, "us-gaap_ProceedsFromStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromStockOptionsExercised", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Stock Options Exercised", "verboseLabel": "Proceeds from exercise of stock options", "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement." } } }, "auth_ref": [ "r3", "r11" ] }, "us-gaap_ProceedsFromStockPlans": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromStockPlans", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Stock Plans", "verboseLabel": "Proceeds from employee stock purchase plan", "documentation": "The cash inflow associated with the amount received from the stock plan during the period." } } }, "auth_ref": [ "r3" ] }, "srt_ProductOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ProductOrServiceAxis", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]", "documentation": "Information by product and service, or group of similar products and similar services." } } }, "auth_ref": [ "r148", "r149", "r150", "r151", "r152", "r153", "r165", "r256", "r537", "r593", "r594", "r595", "r596", "r597", "r598", "r599", "r711", "r736", "r771", "r773", "r774", "r777", "r778", "r883", "r941", "r942", "r952", "r1014", "r1018", "r1019", "r1020", "r1021", "r1022", "r1023", "r1024", "r1025", "r1026", "r1027", "r1028", "r1029", "r1030", "r1031", "r1032", "r1033", "r1034", "r1035", "r1036", "r1037", "r1038", "r1039", "r1040", "r1041", "r1042", "r1043", "r1044", "r1045" ] }, "srt_ProductsAndServicesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ProductsAndServicesDomain", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]", "documentation": "Product or service, or a group of similar products or similar services." } } }, "auth_ref": [ "r148", "r149", "r150", "r151", "r152", "r153", "r165", "r256", "r537", "r593", "r594", "r595", "r596", "r597", "r598", "r599", "r711", "r736", "r771", "r773", "r774", "r777", "r778", "r883", "r941", "r942", "r952", "r1014", "r1018", "r1019", "r1020", "r1021", "r1022", "r1023", "r1024", "r1025", "r1026", "r1027", "r1028", "r1029", "r1030", "r1031", "r1032", "r1033", "r1034", "r1035", "r1036", "r1037", "r1038", "r1039", "r1040", "r1041", "r1042", "r1043", "r1044", "r1045" ] }, "us-gaap_ProfitLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProfitLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest", "verboseLabel": "Net income (loss)", "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest." } } }, "auth_ref": [ "r170", "r188", "r191", "r199", "r204", "r210", "r216", "r219", "r220", "r264", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r454", "r460", "r462", "r465", "r466", "r478", "r494", "r573", "r586", "r619", "r655", "r673", "r674", "r750", "r751", "r788", "r893", "r945" ] }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentByTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "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": [ "r7", "r518" ] }, "us-gaap_PropertyPlantAndEquipmentGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentGross", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment, Gross", "terseLabel": "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": [ "r98", "r175", "r584" ] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 2.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment, Net", "terseLabel": "Property and equipment, net", "totalLabel": "Total 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": [ "r7", "r518", "r574", "r584", "r762" ] }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Table Text Block]", "terseLabel": "Summary of Property and Equipment (In Thousands)", "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation." } } }, "auth_ref": [ "r7" ] }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentTypeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "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": [ "r98", "r518" ] }, "us-gaap_PurchaseObligation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PurchaseObligation", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "label": "Purchase Obligation", "terseLabel": "Purchase Obligation, Total", "documentation": "Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier." } } }, "auth_ref": [] }, "pdfs_PurchaseObligationsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "PurchaseObligationsMember", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "documentation": "Commitments and contingencies pertaining to purchase obligations.", "label": "Purchase Obligations" } } }, "auth_ref": [] }, "pdfs_PurchasePlanYear2021AmendedMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "PurchasePlanYear2021AmendedMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Purchase Plan Year 2021 Amended [Member]", "terseLabel": "Amended 2021 Stock Purchase Plan" } } }, "auth_ref": [] }, "pdfs_PurchasePlanYear2021Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "PurchasePlanYear2021Member", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Purchase Plan Year 2021 [Member]", "terseLabel": "2021 Employee Stock Purchase Plan" } } }, "auth_ref": [] }, "ecd_PvpTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PvpTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Table]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r827" ] }, "ecd_PvpTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PvpTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance [Table Text Block]", "terseLabel": "Pay vs Performance Disclosure, Table" } } }, "auth_ref": [ "r827" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]", "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median." } } }, "auth_ref": [ "r139", "r141", "r143", "r144", "r146", "r167", "r168", "r306", "r307", "r308", "r309", "r380", "r388", "r416", "r417", "r418", "r427", "r483", "r533", "r534", "r535", "r600", "r602", "r610", "r625", "r626", "r683", "r685", "r687", "r688", "r690", "r707", "r708", "r728", "r735", "r745", "r756", "r757", "r758", "r759", "r773", "r781", "r939", "r947", "r987", "r1003", "r1004", "r1006", "r1007", "r1008" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]", "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median." } } }, "auth_ref": [ "r139", "r141", "r143", "r144", "r146", "r167", "r168", "r306", "r307", "r308", "r309", "r380", "r388", "r416", "r417", "r418", "r427", "r483", "r533", "r534", "r535", "r600", "r602", "r610", "r625", "r626", "r683", "r685", "r687", "r688", "r690", "r707", "r708", "r728", "r735", "r745", "r756", "r757", "r758", "r759", "r773", "r781", "r939", "r947", "r987", "r1003", "r1004", "r1006", "r1007", "r1008" ] }, "us-gaap_RatioOfIndebtednessToNetCapital1": { "xbrltype": "pureItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RatioOfIndebtednessToNetCapital1", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Ratio of Indebtedness to Net Capital", "terseLabel": "Debt covenants, total net leverage ratio", "documentation": "Indebtedness divided by net capital." } } }, "auth_ref": [] }, "us-gaap_ReceivableWithImputedInterestEffectiveYieldInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReceivableWithImputedInterestEffectiveYieldInterestRate", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Receivable with Imputed Interest, Effective Yield (Interest Rate)", "terseLabel": "Convertible note interest rate", "documentation": "Yield on the receivable, on which interest has been imputed, as calculated from its issuance value or purchase price. The calculated effective interest rate considers factors such as the issued face value or price paid for the receivable, the time period between payments, and the time until maturity [full receipt] of the receivable." } } }, "auth_ref": [ "r502", "r503", "r760" ] }, "pdfs_RecognizedRevenueIncludedInDeferredRevenuesAndBillingsInExcessOfDeferredRevenuesAtBeginningOfPeriod": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "RecognizedRevenueIncludedInDeferredRevenuesAndBillingsInExcessOfDeferredRevenuesAtBeginningOfPeriod", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDeferredRevenuesDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized during the period that was included in the deferred revenues and billings in excess of deferred revenues balances at the beginning of the period.", "label": "Recognized Revenue Included in Deferred Revenues and Billings in Excess of Deferred Revenues at Beginning of Period", "terseLabel": "Revenue recognized that was included in the deferred revenues and billings in excess of deferred revenues balances at beginning of period" } } }, "auth_ref": [] }, "ecd_RecoveryOfErrCompDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RecoveryOfErrCompDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]", "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure" } } }, "auth_ref": [ "r795", "r805", "r815", "r847" ] }, "us-gaap_RelatedPartyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyDomain", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Related and Nonrelated Parties [Domain]", "documentation": "Related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest." } } }, "auth_ref": [ "r261", "r387", "r526", "r527", "r576", "r582", "r628", "r629", "r630", "r631", "r632", "r652", "r654", "r682" ] }, "us-gaap_RelatedPartyTransactionsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionsAbstract", "lang": { "en-us": { "role": { "label": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS:" } } }, "auth_ref": [] }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Related and Nonrelated Parties [Axis]", "documentation": "Information by related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest." } } }, "auth_ref": [ "r261", "r387", "r526", "r527", "r576", "r582", "r628", "r629", "r630", "r631", "r632", "r652", "r654", "r682", "r999" ] }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionsDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions" ], "lang": { "en-us": { "role": { "label": "Related Party Transactions Disclosure [Text Block]", "terseLabel": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates." } } }, "auth_ref": [ "r523", "r524", "r525", "r527", "r528", "r616", "r617", "r618", "r658", "r659", "r660", "r679", "r681" ] }, "pdfs_RepurchaseOfCommonStockForTreasury": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "RepurchaseOfCommonStockForTreasury", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "documentation": "Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method.", "label": "Repurchase of common stock for treasury", "negatedLabel": "Repurchase of common stock" } } }, "auth_ref": [] }, "pdfs_RepurchaseOfCommonStockForTreasuryShares": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "RepurchaseOfCommonStockForTreasuryShares", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "documentation": "Number of shares that have been repurchased during the period and are being held in treasury.", "label": "Repurchase of common stock for treasury (shares)", "terseLabel": "Repurchase of common stock (shares)" } } }, "auth_ref": [] }, "us-gaap_ResearchAndDevelopmentExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ResearchAndDevelopmentExpense", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Research and Development Expense", "terseLabel": "Research and development", "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity." } } }, "auth_ref": [ "r428", "r709", "r723", "r1009" ] }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ResearchAndDevelopmentExpenseMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Research and Development Expense [Member]", "terseLabel": "Research and Development", "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included." } } }, "auth_ref": [] }, "ecd_RestatementDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RestatementDateAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date [Axis]", "terseLabel": "Restatement Determination Date:" } } }, "auth_ref": [ "r796", "r806", "r816", "r848" ] }, "ecd_RestatementDeterminationDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RestatementDeterminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date", "terseLabel": "Restatement Determination Date" } } }, "auth_ref": [ "r797", "r807", "r817", "r849" ] }, "ecd_RestatementDoesNotRequireRecoveryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RestatementDoesNotRequireRecoveryTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Does Not Require Recovery [Text Block]", "terseLabel": "Restatement does not require Recovery" } } }, "auth_ref": [ "r804", "r814", "r824", "r856" ] }, "us-gaap_RestrictedStockUnitsRSUMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RestrictedStockUnitsRSUMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Stock Units (RSUs) [Member]", "terseLabel": "Restricted Stock Units (RSUs)", "verboseLabel": "Non-vested Restricted Stock Units", "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met." } } }, "auth_ref": [] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Retained Earnings (Accumulated Deficit)", "terseLabel": "Accumulated deficit", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r74", "r102", "r580", "r607", "r609", "r614", "r635", "r762" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Retained Earnings [Member]", "verboseLabel": "Accumulated Deficit", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r169", "r207", "r208", "r209", "r211", "r216", "r218", "r220", "r265", "r266", "r295", "r444", "r445", "r451", "r452", "r453", "r455", "r459", "r460", "r469", "r471", "r472", "r474", "r476", "r504", "r506", "r604", "r606", "r620", "r1048" ] }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerAbstract", "lang": { "en-us": { "role": { "label": "REVENUE:" } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0, "order": 1.0 }, "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationSegmentRevenueGrossProfitAndNetIncomeLossDetails": { "parentTag": "us-gaap_GrossProfit", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationSegmentRevenueGrossProfitAndNetIncomeLossDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer, Including Assessed Tax", "terseLabel": "Total revenues", "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": [ "r122", "r123", "r235", "r242", "r243", "r249", "r253", "r256", "r258", "r260", "r376", "r377", "r537" ] }, "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Policy Text Block]", "terseLabel": "Disaggregation of Revenue, Policy", "documentation": "Disclosure of accounting policy for revenue from contract with customer." } } }, "auth_ref": [ "r138", "r367", "r368", "r369", "r370", "r371", "r372", "r373", "r374", "r710" ] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenue" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Text Block]", "terseLabel": "REVENUE", "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": [ "r138", "r358", "r359", "r360", "r361", "r362", "r363", "r365", "r366", "r379" ] }, "us-gaap_RevenuePracticalExpedientFinancingComponent": { "xbrltype": "booleanItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenuePracticalExpedientFinancingComponent", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails" ], "lang": { "en-us": { "role": { "label": "Revenue, Practical Expedient, Financing Component [true false]", "terseLabel": "Existence of significant financing component", "documentation": "Indicates (true false) whether practical expedient was elected not to adjust consideration for effect of financing component when transfer and customer payment for product or service occurs within one year or less." } } }, "auth_ref": [ "r375" ] }, "us-gaap_RevenueRecognitionPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRecognitionPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Revenue [Policy Text Block]", "terseLabel": "Revenue Recognition, Policy", "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources." } } }, "auth_ref": [ "r656", "r710", "r716" ] }, "us-gaap_RevenueRemainingPerformanceObligation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligation", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revenue, Remaining Performance Obligation, Amount", "terseLabel": "Revenue, remaining performance obligation", "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue." } } }, "auth_ref": [ "r135" ] }, "us-gaap_RevenueTransactionPriceMeasurementTaxExclusionPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueTransactionPriceMeasurementTaxExclusionPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Revenue, Transaction Price Measurement, Tax Exclusion [Policy Text Block]", "terseLabel": "Practical Expedients, Policy", "documentation": "Disclosure of accounting policy for election to exclude from measurement of transaction price tax assessed by governmental authority that are both imposed on and concurrent with specific revenue-producing transaction, and collected from customer. Includes, but is not limited to, sales, use, value-added and excise tax." } } }, "auth_ref": [ "r354" ] }, "us-gaap_RevenuesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenuesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Revenues [Abstract]" } } }, "auth_ref": [] }, "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Revenues from External Customers and Long-Lived Assets [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_RevolvingCreditFacilityMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevolvingCreditFacilityMember", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Revolving Credit Facility [Member]", "terseLabel": "Credit Agreement", "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount." } } }, "auth_ref": [] }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability", "verboseLabel": "Operating lease liabilities arising from obtaining right-of-use assets", "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability." } } }, "auth_ref": [ "r514", "r761" ] }, "us-gaap_RisksAndUncertaintiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RisksAndUncertaintiesAbstract", "lang": { "en-us": { "role": { "label": "CUSTOMER AND GEOGRAPHIC INFORMATION:" } } }, "auth_ref": [] }, "ecd_Rule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r865" ] }, "ecd_Rule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r865" ] }, "us-gaap_SalesRevenueNetMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesRevenueNetMember", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Revenue Benchmark [Member]", "verboseLabel": "Revenue Benchmark", "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": [ "r260", "r880" ] }, "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeAndDirectFinancingLeasesLeaseReceivable", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails": { "parentTag": "us-gaap_SalesTypeLeaseLeaseReceivable", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails" ], "lang": { "en-us": { "role": { "label": "Sales-type and Direct Financing Leases, Lease Receivable", "terseLabel": "Present value of lease receivables", "totalLabel": "Present value of lease receivables", "documentation": "Present value of lease payments not yet received by lessor and amount expected to be derived from underlying asset, following end of lease term guaranteed by lessee or other third party unrelated to lessor, from sales-type and direct financing leases." } } }, "auth_ref": [ "r520", "r521" ] }, "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivableMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeAndDirectFinancingLeasesLeaseReceivableMaturityTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Sales-Type and Direct Financing Leases, Payment to be Received, Maturity [Table Text Block]", "terseLabel": "Summary for Maturities of Lease Payments Under Sales-type Leases (In Thousands)", "documentation": "Tabular disclosure of maturity of undiscounted cash flows to be received on annual basis for sales-type and direct financing leases receivable. Includes, but is not limited to, reconciliation to lease receivable recognized in statement of financial position." } } }, "auth_ref": [ "r520" ] }, "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceived": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceived", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Sales-Type and Direct Financing Leases, Payment to be Received", "totalLabel": "Total future sales-type lease payments", "documentation": "Amount of undiscounted cash flows to be received by lessor for sales-type and direct financing leases." } } }, "auth_ref": [ "r520" ] }, "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedFourYears": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedFourYears", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails": { "parentTag": "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceived", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Sales-Type and Direct Financing Leases, Payment to be Received, Year Four", "terseLabel": "2028", "documentation": "Amount of undiscounted cash flows to be received by lessor for sales-type and direct financing leases 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": [ "r520" ] }, "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedNextTwelveMonths", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails": { "parentTag": "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceived", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Sales-Type and Direct Financing Leases, Payment to be Received, Year One", "terseLabel": "2025 (remaining nine months)", "documentation": "Amount of undiscounted cash flows to be received by lessor for sales-type and direct financing leases 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": [ "r520" ] }, "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedThreeYears": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedThreeYears", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails": { "parentTag": "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceived", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Sales-Type and Direct Financing Leases, Payment to be Received, Year Three", "terseLabel": "2027", "documentation": "Amount of undiscounted cash flows to be received by lessor for sales-type and direct financing leases 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": [ "r520" ] }, "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedTwoYears": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedTwoYears", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails": { "parentTag": "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceived", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Sales-Type and Direct Financing Leases, Payment to be Received, Year Two", "terseLabel": "2026", "documentation": "Amount of undiscounted cash flows to be received by lessor for sales-type and direct financing leases 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": [ "r520" ] }, "us-gaap_SalesTypeAndDirectFinancingLeasesLeaseReceivableUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeAndDirectFinancingLeasesLeaseReceivableUndiscountedExcessAmount", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsMaturitiesOfLeasePaymentsUnderSalesTypeLeasesDetails" ], "lang": { "en-us": { "role": { "label": "Sales-type and Direct Financing Leases, Lease Receivable, Undiscounted Excess Amount", "negatedLabel": "Less: Present value adjustment (a)", "documentation": "Amount of undiscounted lease receivable in excess of discounted receivable for sales-type and direct financing leases." } } }, "auth_ref": [ "r520" ] }, "us-gaap_SalesTypeLeaseLeaseReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeLeaseLeaseReceivable", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails": { "parentTag": "us-gaap_SalesTypeLeaseNetInvestmentInLease", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails" ], "lang": { "en-us": { "role": { "label": "Sales-type Lease, Lease Receivable", "totalLabel": "Net lease receivables", "documentation": "Present value of lease payments not yet received by lessor and amount expected to be derived from underlying asset, following end of lease term guaranteed by lessee or other third party unrelated to lessor, from sales-type lease." } } }, "auth_ref": [ "r521" ] }, "us-gaap_SalesTypeLeaseNetInvestmentInLease": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeLeaseNetInvestmentInLease", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails" ], "lang": { "en-us": { "role": { "label": "Sales-Type Lease, Net Investment in Lease, before Allowance for Credit Loss", "totalLabel": "Total net investment in sales-type leases", "documentation": "Amount, before allowance for credit loss, of net investment in sales-type lease." } } }, "auth_ref": [ "r129", "r270", "r521", "r918" ] }, "us-gaap_SalesTypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPrepaidExpenseAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Sales-Type Lease, Net Investment in Lease, after Allowance for Credit Loss, Current", "terseLabel": "Net investment in sales-type lease - current portion", "verboseLabel": "Current (included in Prepaid expenses and other current assets)", "documentation": "Amount, after allowance for credit loss, of net investment in sales-type lease, classified as current." } } }, "auth_ref": [ "r878", "r879" ] }, "us-gaap_SalesTypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossNoncurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails": { "parentTag": "us-gaap_OtherAssetsNoncurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Sales-Type Lease, Net Investment in Lease, after Allowance for Credit Loss, Noncurrent", "terseLabel": "Net investment in sales-type leases (3)", "verboseLabel": "Non-current (included in Other non-current assets)", "documentation": "Amount, after allowance for credit loss, of net investment in sales-type lease, classified as noncurrent." } } }, "auth_ref": [ "r878", "r879" ] }, "us-gaap_SalesTypeLeaseNetInvestmentInLeaseAllowanceForCreditLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeLeaseNetInvestmentInLeaseAllowanceForCreditLoss", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "label": "Sales-type Lease, Net Investment in Lease, Allowance for Credit Loss", "terseLabel": "Allowance for credit loss on sales-type lease receivables", "documentation": "Amount of allowance for credit loss on net investment in sales-type lease." } } }, "auth_ref": [ "r267", "r268", "r269" ] }, "us-gaap_SalesTypeLeaseUnguaranteedResidualAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesTypeLeaseUnguaranteedResidualAsset", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails": { "parentTag": "us-gaap_SalesTypeLeaseNetInvestmentInLease", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails" ], "lang": { "en-us": { "role": { "label": "Sales-type Lease, Unguaranteed Residual Asset", "terseLabel": "Unguaranteed residual assets", "documentation": "Present value expected to be derived from underlying asset following end of lease term not guaranteed by lessee or other third party unrelated to lessor." } } }, "auth_ref": [ "r521" ] }, "pdfs_SalesTypeLeasesLeaseReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "SalesTypeLeasesLeaseReceivable", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails": { "parentTag": "us-gaap_SalesTypeLeaseLeaseReceivable", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsNetInvestmentInSalesTypeLeaseDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of contract liability related to excess billings in advance under sales-type lease contracts.", "label": "Sales Type Leases Lease Receivable", "negatedLabel": "Less: Contract liability" } } }, "auth_ref": [] }, "srt_ScenarioUnspecifiedDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ScenarioUnspecifiedDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "label": "Scenario [Domain]", "documentation": "Scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts." } } }, "auth_ref": [ "r166", "r221", "r389", "r876", "r903" ] }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]", "terseLabel": "Summary of Anti-Dilutive Shares Excluded from Computation of Earnings Per Share (In Thousands)", "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities." } } }, "auth_ref": [ "r24" ] }, "us-gaap_ScheduleOfAssumptionsForFairValueAsOfBalanceSheetDateOfInterestsContinuedToBeHeldByTransferorServicingAssetsOrServicingLiabilitiesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfAssumptionsForFairValueAsOfBalanceSheetDateOfInterestsContinuedToBeHeldByTransferorServicingAssetsOrServicingLiabilitiesTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Assumptions for Fair Value as of Balance Sheet Date of Assets or Liabilities that relate to Transferor's Continuing Involvement [Table Text Block]", "terseLabel": "Summary of Supplemental Information Related to Operating Leases", "documentation": "Tabular disclosure of all information related to the key inputs and assumptions (including, at a minimum, but not limited to, and if applicable, quantitative information about discount rates, expected prepayments including the expected weighted-average life of prepayable financial assets, and anticipated credit losses) used in measuring the fair value of assets or liabilities that relate to the transferor's continuing involvement with transferred financial assets, as of the balance sheet date." } } }, "auth_ref": [ "r1005" ] }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Business Acquisitions, by Acquisition [Table]", "documentation": "Disclosure of information about business combination. Includes, but is not limited to, recognized asset and liability." } } }, "auth_ref": [ "r47", "r49", "r457" ] }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]", "terseLabel": "Summary of Purchase Price Allocation for Acquisition of Business as of March 7, 2025 Acquisition Date (In Thousands)", "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts." } } }, "auth_ref": [ "r47", "r49" ] }, "us-gaap_ScheduleOfDebtTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfDebtTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureDebtTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Debt [Table Text Block]", "terseLabel": "Summary of Debt (In Thousands)", "documentation": "Tabular disclosure of information pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Summary of Basic and Diluted Earnings Per Share (In Thousands Except Per Share Amounts)", "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": [ "r905" ] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]", "terseLabel": "Summary of Stock Plans and ESPP Expense Allocation (In Thousands)", "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": [ "r45" ] }, "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]", "terseLabel": "Summary of Net Fixed Assets by Geographic Area (In Thousands)", "documentation": "Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area." } } }, "auth_ref": [ "r96" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "terseLabel": "Summary of Intangible Assets (In Thousands)", "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment." } } }, "auth_ref": [ "r730", "r929" ] }, "us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Indefinite-Lived Intangible Assets Acquired as Part of Business Combination [Table Text Block]", "terseLabel": "Summary of Goodwill and Intangible Assets, Net (In Thousands)", "documentation": "Tabular disclosure of indefinite-lived intangible asset acquired in business combination." } } }, "auth_ref": [ "r38", "r52" ] }, "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureDebtTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Maturities of Long-Term Debt [Table Text Block]", "terseLabel": "Summary of Future Payments on Debt (In Thousands)", "documentation": "Tabular disclosure of maturity and sinking fund requirement for long-term debt." } } }, "auth_ref": [ "r8" ] }, "us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfOtherAssetsNoncurrentTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Other Assets, Noncurrent [Table Text Block]", "terseLabel": "Summary of Other Non-Current Assets (In Thousands)", "documentation": "Tabular disclosure of noncurrent assets." } } }, "auth_ref": [ "r886" ] }, "us-gaap_ScheduleOfOtherCurrentAssetsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfOtherCurrentAssetsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Other Current Assets [Table Text Block]", "terseLabel": "Summary of Prepaid Expenses and Other Current Assets (In Thousands)", "documentation": "Tabular disclosure of the carrying amounts of other current assets." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]", "verboseLabel": "Summary of Revenues from Individual Customers that Equal or Exceed 10% of Consolidated Total Revenues", "documentation": "Tabular disclosure of the extent of the entity's reliance on its major customers, if revenues from transactions with a single external customer amount to 10 percent or more of entity revenues, including the disclosure of that fact, the total amount of revenues from each such customer, and the identity of the reportable segment or segments reporting the revenues. The entity need not disclose the identity of a major customer or the amount of revenues that each segment reports from that customer. For these purposes, a group of companies known to the entity to be under common control is considered a single customer, and the federal government, a state government, a local government such as a county or municipality, or a foreign government is each considered a single customer." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block]", "terseLabel": "Summary of Revenues by Geographic Areas of Customer Work Sites (In Thousands)", "documentation": "Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries." } } }, "auth_ref": [ "r79", "r95" ] }, "pdfs_ScheduleOfRevenueRecognizedAndIncludedInDeferredRevenuesAndBillingsInExcessOfRecognizedRevenuesAtBeginningOfEachReportingPeriodTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "ScheduleOfRevenueRecognizedAndIncludedInDeferredRevenuesAndBillingsInExcessOfRecognizedRevenuesAtBeginningOfEachReportingPeriodTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueTables" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of revenue recognized that was included in the deferred revenues and billings in excess of recognized revenue balances at the beginning of each reporting period.", "label": "Schedule of Revenue Recognized and Included in Deferred Revenues and Billings in Excess of Recognized Revenues at The Beginning of Each Reporting Period [Table Text Block]", "terseLabel": "Schedule of Recognized Revenue Included in Deferred Revenues and Billings in Excess of Recognized Revenues at the Beginning of Each Reporting Period (in Thousands):" } } }, "auth_ref": [] }, "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]", "documentation": "Disclosure of information about revenue from external customer and long-lived asset by geographical area. Long-lived asset excludes financial instrument, customer relationship with financial institution, mortgage and other servicing right, deferred policy acquisition cost, and deferred tax asset." } } }, "auth_ref": [ "r37", "r79" ] }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "terseLabel": "Summary of Segment Revenues, Gross Profit, and Net Income (In Thousands)", "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss." } } }, "auth_ref": [ "r34", "r35", "r36" ] }, "us-gaap_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardRestrictedStockUnitsVestedAndExpectedToVestTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardRestrictedStockUnitsVestedAndExpectedToVestTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Restricted Stock Units, Vested and Expected to Vest [Table Text Block]", "terseLabel": "Summary of Fair Value for Vested Restricted Stock Units (In Thousands)", "documentation": "Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding restricted stock units that are fully vested and expected to vest. Includes, but is not limited to, unvested restricted stock units 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": [ "r108" ] }, "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]", "terseLabel": "Summary of Nonvested Restricted Stock Units Activity", "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year." } } }, "auth_ref": [ "r107" ] }, "us-gaap_ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]", "terseLabel": "Summary of Fair Value Estimates for Purchase Rights Granted Under the 2021 Employee Stock Purchase Plan", "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of employee stock purchase plans, including, but not limited to: (a) expected term, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions." } } }, "auth_ref": [ "r109" ] }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]", "terseLabel": "Summary of Future Amortization Expenses of Acquired Intangible Assets (In Thousands)", "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets." } } }, "auth_ref": [ "r730", "r931" ] }, "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedules of Concentration of Risk, by Risk Factor [Table Text Block]", "terseLabel": "Summary of Accounts Receivable Balances from Individual Customers that Equal or Exceed 10% of Gross Accounts Receivable Balances", "documentation": "Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark." } } }, "auth_ref": [ "r26", "r27", "r29", "r30", "r59", "r113" ] }, "pdfs_SecureWiseMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "SecureWiseMember", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the equity purchase of SecureWise.", "label": "Secure Wise [Member]", "terseLabel": "SecureWise" } } }, "auth_ref": [] }, "us-gaap_SecuredDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SecuredDebt", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails": { "parentTag": "us-gaap_DebtInstrumentCarryingAmount", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtOutstandingDebtDetails", "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Secured Debt", "terseLabel": "Term loan", "documentation": "Carrying value as of the balance sheet date, including the current and noncurrent portions, of collateralized debt obligations (with maturities initially due after one year or beyond the operating cycle, if longer). Such obligations include mortgage loans, chattel loans, and any other borrowings secured by assets of the borrower." } } }, "auth_ref": [ "r12", "r116", "r1011" ] }, "us-gaap_SecuredDebtMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SecuredDebtMember", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Secured Debt [Member]", "terseLabel": "Term Loan", "documentation": "Collateralized debt obligation backed by, for example, but not limited to, pledge, mortgage or other lien on the entity's assets." } } }, "auth_ref": [] }, "us-gaap_SecuredOvernightFinancingRateSofrMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SecuredOvernightFinancingRateSofrMember", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Secured Overnight Financing Rate (SOFR) [Member]", "terseLabel": "SOFR", "documentation": "Interest rate at which bank can borrow U.S. dollar overnight while posting U.S. Treasury bond as collateral." } } }, "auth_ref": [ "r983" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "Security12bTitle", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r790" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "SecurityExchangeName", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r792" ] }, "srt_SegmentGeographicalDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "SegmentGeographicalDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]", "documentation": "Geographical area." } } }, "auth_ref": [ "r140", "r142", "r145", "r147", "r154", "r155", "r156", "r157", "r159", "r160", "r161", "r162", "r163", "r164", "r258", "r259", "r540", "r541", "r542", "r543", "r544", "r545", "r546", "r547", "r548", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r622", "r623", "r624", "r684", "r686", "r689", "r691", "r694", "r697", "r698", "r699", "r700", "r702", "r703", "r704", "r705", "r706", "r712", "r737", "r763", "r764", "r765", "r766", "r767", "r768", "r769", "r770", "r775", "r781", "r952", "r1014", "r1018", "r1019", "r1021", "r1022", "r1023", "r1024", "r1025", "r1026", "r1027", "r1028", "r1029", "r1030", "r1031", "r1032", "r1033", "r1034", "r1035", "r1036", "r1037", "r1038", "r1039", "r1040", "r1041", "r1042", "r1043", "r1044", "r1045" ] }, "us-gaap_SegmentReportingDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SegmentReportingDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation" ], "lang": { "en-us": { "role": { "label": "Segment Reporting Disclosure [Text Block]", "terseLabel": "CUSTOMER AND GEOGRAPHIC INFORMATION", "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": [ "r125", "r235", "r237", "r238", "r239", "r240", "r241", "r246", "r247", "r248", "r251", "r252", "r253", "r254", "r255", "r256", "r257", "r260", "r720", "r721", "r722", "r723", "r725", "r726", "r727" ] }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SellingGeneralAndAdministrativeExpense", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Selling, General and Administrative Expense", "terseLabel": "Selling, general, and administrative", "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc." } } }, "auth_ref": [ "r83" ] }, "us-gaap_SellingGeneralAndAdministrativeExpensesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SellingGeneralAndAdministrativeExpensesMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Selling, General and Administrative Expenses [Member]", "terseLabel": "Selling, General, and Administrative", "documentation": "Primary financial statement caption encompassing selling, general and administrative expense." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensation", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Noncash Expense", "verboseLabel": "Stock-based compensation expense", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r5" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "presentation": [ "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period", "terseLabel": "Stock option vesting period", "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition." } } }, "auth_ref": [ "r746" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period", "negatedTerseLabel": "RSUs Forfeited", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period." } } }, "auth_ref": [ "r408" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value", "verboseLabel": "RSUs Forfeited, Weighted Average Grant Date Fair Value", "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." } } }, "auth_ref": [ "r408" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period", "terseLabel": "RSUs Granted", "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": [ "r406" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value", "verboseLabel": "RSUs Granted, Weighted Average Grant Date Fair Value", "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": [ "r406" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number", "periodEndLabel": "Non-vested RSUs, Ending Balance", "periodStartLabel": "Non-vested RSUs, Opening Balance", "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date." } } }, "auth_ref": [ "r403", "r404" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value", "periodEndLabel": "Non-vested RSUs Ending, Weighted Average Grant Date Fair Value", "periodStartLabel": "Non-vested RSUs Opening, Weighted Average Grant Date Fair Value", "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options." } } }, "auth_ref": [ "r403", "r404" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period", "negatedTerseLabel": "RSUs Vested", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period." } } }, "auth_ref": [ "r407" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value", "verboseLabel": "RSUs Vested, Weighted Average Grant Date Fair Value", "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": [ "r407" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate", "terseLabel": "Expected dividend", "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term." } } }, "auth_ref": [ "r417" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate", "terseLabel": "Volatility", "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period." } } }, "auth_ref": [ "r416" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate", "terseLabel": "Risk-free interest rate", "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares." } } }, "auth_ref": [ "r418" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Maximum Employee Subscription Rate", "terseLabel": "Eligible Employee Contribution Rate, Percentage of Compensation", "documentation": "The highest percentage of annual salary that an employee is permitted to utilize with respect to the plan." } } }, "auth_ref": [ "r44" ] }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Period from grant date that an equity-based award is offered, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Offering Period", "terseLabel": "ESPP, Share Offering Period Duration" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross", "terseLabel": "Stock Incentive Plans, Stock Options and Awards Granted", "documentation": "Gross number of share options (or share units) granted during the period." } } }, "auth_ref": [ "r399" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value", "verboseLabel": "Weighted average fair value of purchase rights granted during the period", "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology." } } }, "auth_ref": [ "r409" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number", "terseLabel": "Stock Incentive Plans, Stock Option Awards Outstanding", "documentation": "Number of options outstanding, including both vested and non-vested options." } } }, "auth_ref": [ "r395", "r396" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPerShareWeightedAveragePriceOfSharesPurchased", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Per Share Weighted Average Price of Shares Purchased", "terseLabel": "ESPP, Weighted Average Purchase Price", "documentation": "Per share weighted-average price paid for shares purchased on open market for issuance under share-based payment arrangement." } } }, "auth_ref": [ "r44" ] }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Length of purchase periods within each offering period under employee stock purchase plans, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "ESPP, Share Purchase Period Duration" } } }, "auth_ref": [] }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "The reduction rate in the number of shares reserved under the option plan attributable to awards other than options or stock appreciation rights.", "label": "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate", "terseLabel": "Stock Incentive Plans, Rate Decrease in Reserved Plan-Shares Pursuant to Awards Other Than Options or SARs" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "All Award Types", "terseLabel": "All Award Types", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r391", "r392", "r393", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408", "r409", "r410", "r411", "r412", "r415", "r416", "r417", "r418", "r419" ] }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement [Policy Text Block]", "terseLabel": "Stock-Based Compensation, Policy", "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost." } } }, "auth_ref": [ "r390", "r394", "r413", "r414", "r415", "r416", "r419", "r422", "r423", "r424", "r425" ] }, "srt_ShareRepurchaseProgramAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ShareRepurchaseProgramAxis", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Axis]", "documentation": "Information by share repurchase program." } } }, "auth_ref": [ "r950" ] }, "srt_ShareRepurchaseProgramDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ShareRepurchaseProgramDomain", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Domain]", "documentation": "Name of share repurchase program." } } }, "auth_ref": [ "r950" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period", "terseLabel": "Stock Option Expiration Period", "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r747" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term", "terseLabel": "Expected life (in years)", "documentation": "Expected term of 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": [ "r415" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested in Period, Fair Value", "terseLabel": "Fair value of restricted stock units vested", "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock." } } }, "auth_ref": [ "r410" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent", "terseLabel": "Eligible Employee Share Purchase Price, Percentage of Fair Market Value", "documentation": "Purchase price of common stock expressed as a percentage of its fair value." } } }, "auth_ref": [] }, "us-gaap_SharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharesOutstanding", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Shares, Outstanding", "periodEndLabel": "Ending Balances (shares)", "periodStartLabel": "Beginning Balances (shares)", "documentation": "Number of shares issued which are neither cancelled nor held in the treasury." } } }, "auth_ref": [] }, "us-gaap_ShortTermInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShortTermInvestments", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Short-Term Investments", "terseLabel": "Short-term investments", "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current." } } }, "auth_ref": [ "r118", "r119", "r889" ] }, "us-gaap_ShortTermLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShortTermLeaseCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Short-Term Lease, Cost", "terseLabel": "Short-term lease and variable lease expense (1)", "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less." } } }, "auth_ref": [ "r512", "r761" ] }, "pdfs_SignificantRevenueJudgementsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "SignificantRevenueJudgementsPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for significant judgements pertaining to revenue recognition.", "label": "Significant Revenue Judgements [Policy Text Block]", "terseLabel": "Significant Judgements, Policy" } } }, "auth_ref": [] }, "us-gaap_SoftwareAndSoftwareDevelopmentCostsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SoftwareAndSoftwareDevelopmentCostsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Software and Software Development Costs [Member]", "verboseLabel": "Software and Capitalized Software Development Cost", "documentation": "Purchased software applications and internally developed software for sale, licensing or long-term internal use." } } }, "auth_ref": [] }, "pdfs_SoftwareLicenseAndRelatedServicesAgreementMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "SoftwareLicenseAndRelatedServicesAgreementMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to software license and related services.", "label": "Software License and Related Services Agreement [Member]", "verboseLabel": "Software License and Related Services Agreement" } } }, "auth_ref": [] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r10", "r72", "r75", "r76", "r169", "r193", "r194", "r195", "r207", "r208", "r209", "r211", "r216", "r218", "r220", "r236", "r265", "r266", "r295", "r353", "r444", "r445", "r451", "r452", "r453", "r455", "r459", "r460", "r469", "r470", "r471", "r472", "r473", "r474", "r476", "r495", "r496", "r497", "r498", "r499", "r500", "r504", "r506", "r522", "r588", "r604", "r605", "r606", "r620", "r675" ] }, "srt_StatementGeographicalAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StatementGeographicalAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]", "documentation": "Information by geographical components." } } }, "auth_ref": [ "r140", "r142", "r145", "r147", "r154", "r155", "r156", "r157", "r159", "r160", "r161", "r162", "r163", "r164", "r258", "r259", "r540", "r541", "r542", "r543", "r544", "r545", "r546", "r547", "r548", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r622", "r623", "r624", "r684", "r686", "r689", "r691", "r694", "r697", "r698", "r699", "r700", "r702", "r703", "r704", "r705", "r706", "r712", "r737", "r763", "r764", "r765", "r766", "r767", "r768", "r769", "r770", "r775", "r781", "r952", "r1014", "r1018", "r1019", "r1021", "r1022", "r1023", "r1024", "r1025", "r1026", "r1027", "r1028", "r1029", "r1030", "r1031", "r1032", "r1033", "r1034", "r1035", "r1036", "r1037", "r1038", "r1039", "r1040", "r1041", "r1042", "r1043", "r1044", "r1045" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails", "http://www.pdf.com/role/DisclosureLeasesDetails", "http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails", "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails", "http://www.pdf.com/role/DisclosureRevenueDetails", "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails", "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "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": [ "r207", "r208", "r209", "r236", "r506", "r537", "r612", "r621", "r627", "r628", "r629", "r630", "r631", "r632", "r634", "r637", "r638", "r639", "r640", "r641", "r643", "r644", "r645", "r646", "r648", "r649", "r650", "r651", "r652", "r654", "r656", "r657", "r661", "r662", "r663", "r664", "r665", "r666", "r667", "r668", "r669", "r670", "r671", "r672", "r675", "r782" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS" } } }, "auth_ref": [] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED BALANCE SHEETS" } } }, "auth_ref": [] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY" } } }, "auth_ref": [] }, "srt_StatementScenarioAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StatementScenarioAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "label": "Scenario [Axis]", "documentation": "Information by scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts." } } }, "auth_ref": [ "r166", "r221", "r389", "r876", "r877", "r903" ] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementTable", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails", "http://www.pdf.com/role/DisclosureLeasesDetails", "http://www.pdf.com/role/DisclosureNetLossPerShareAntiDilutiveSecuritiesDetails", "http://www.pdf.com/role/DisclosureRevenueAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureRevenueContractBalancesDetails", "http://www.pdf.com/role/DisclosureRevenueCostsToObtainOrFulfillContractDetails", "http://www.pdf.com/role/DisclosureRevenueDetails", "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails", "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Statement [Table]", "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity." } } }, "auth_ref": [ "r207", "r208", "r209", "r236", "r261", "r506", "r537", "r612", "r621", "r627", "r628", "r629", "r630", "r631", "r632", "r634", "r637", "r638", "r639", "r640", "r641", "r643", "r644", "r645", "r646", "r648", "r649", "r650", "r651", "r652", "r654", "r656", "r657", "r661", "r662", "r663", "r664", "r665", "r666", "r667", "r668", "r669", "r670", "r671", "r672", "r675", "r782" ] }, "ecd_StkPrcOrTsrEstimationMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "StkPrcOrTsrEstimationMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Price or TSR Estimation Method [Text Block]", "terseLabel": "Stock Price or TSR Estimation Method" } } }, "auth_ref": [ "r799", "r809", "r819", "r851" ] }, "us-gaap_StockAppreciationRightsSARSMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockAppreciationRightsSARSMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Appreciation Rights (SARs) [Member]", "terseLabel": "Stock Appreciation Rights (SARs)", "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period." } } }, "auth_ref": [] }, "pdfs_StockCompensationCapitalizedInPurchaseOfPropertyAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "StockCompensationCapitalizedInPurchaseOfPropertyAndEquipment", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Represents the noncash stock-based compensation capitalized as a part of the cost of property & equipment.", "label": "Stock Compensation Capitalized in Purchase of Property and Equipment", "terseLabel": "Stock-based compensation capitalized as a part of the cost of property and equipment" } } }, "auth_ref": [] }, "pdfs_StockIncentivePlansAggregateSharesReservedToCoverStockBasedAwardsUnderExpiredPlans": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "StockIncentivePlansAggregateSharesReservedToCoverStockBasedAwardsUnderExpiredPlans", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Aggregate common shares reserved to cover stock-based awards under the 2011 Plan.", "label": "Stock Incentive Plans, Aggregate Shares Reserved to Cover Stock-based Awards Under Expired Plans", "terseLabel": "Aggregate Common Shares Reserved to Cover Stock-based Awards Under the 2011 Plan" } } }, "auth_ref": [] }, "pdfs_StockIncentivePlansCommonSharesReservedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "StockIncentivePlansCommonSharesReservedForFutureIssuance", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Aggregate number of common shares reserved for future issuance.", "label": "Stock Incentive Plans, Common Shares Reserved for Future Issuance" } } }, "auth_ref": [] }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans", "terseLabel": "ESPP, Shares Issued During Period", "verboseLabel": "Issuance of common stock in connection with employee stock purchase plan (shares)", "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan." } } }, "auth_ref": [ "r10", "r71", "r72", "r102" ] }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesNewIssues", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, New Issues", "terseLabel": "Common stock shares issued", "documentation": "Number of new stock issued during the period." } } }, "auth_ref": [ "r10", "r71", "r72", "r102", "r613", "r675", "r692" ] }, "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Restricted Stock Award, Gross", "verboseLabel": "Vesting of restricted stock units (shares)", "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards." } } }, "auth_ref": [ "r10", "r102" ] }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period", "verboseLabel": "Issuance of common stock in connection with exercise of options (shares)", "documentation": "Number of share options (or share units) exercised during the current period." } } }, "auth_ref": [ "r10", "r71", "r72", "r102", "r400" ] }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Employee Stock Purchase Plan", "verboseLabel": "Issuance of common stock in connection with employee stock purchase plan", "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan." } } }, "auth_ref": [ "r10", "r71", "r72", "r102" ] }, "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardGross", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Restricted Stock Award, Gross", "verboseLabel": "Vesting of restricted stock units", "documentation": "Aggregate value of stock related to Restricted Stock Awards issued during the period." } } }, "auth_ref": [ "r10", "r71", "r72", "r102" ] }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Stock Options Exercised", "verboseLabel": "Issuance of common stock in connection with exercise of options", "documentation": "Value of stock issued as a result of the exercise of stock options." } } }, "auth_ref": [ "r10", "r72", "r75", "r76", "r102" ] }, "pdfs_StockRepurchaseProgram2022Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "StockRepurchaseProgram2022Member", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "Represent information pertaining to the 2022 Stock repurchase program.", "label": "Stock Repurchase Program 2022 [Member]", "terseLabel": "2022 Stock Repurchase Program" } } }, "auth_ref": [] }, "pdfs_StockRepurchaseProgram2024Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "StockRepurchaseProgram2024Member", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "Represent information pertaining to the 2024 Stock repurchase program.", "label": "Stock Repurchase Program 2024 [Member]", "terseLabel": "2024 Stock Repurchase Program" } } }, "auth_ref": [] }, "srt_StockRepurchaseProgramAuthorizedAmount1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StockRepurchaseProgramAuthorizedAmount1", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program, Authorized, Amount", "terseLabel": "Shares authorized under stock repurchase program", "documentation": "Amount authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership." } } }, "auth_ref": [ "r950" ] }, "us-gaap_StockRepurchaseProgramPeriodInForce1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockRepurchaseProgramPeriodInForce1", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program, Period in Force", "terseLabel": "Stock repurchase program term", "documentation": "Period share may be purchased under authorized share repurchase plan, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, repurchase of stock and unit of ownership." } } }, "auth_ref": [] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquity", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity, Attributable to Parent", "periodEndLabel": "Ending Balances", "periodStartLabel": "Beginning Balances", "totalLabel": "Total stockholders' equity", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r72", "r75", "r76", "r97", "r636", "r653", "r676", "r677", "r762", "r789", "r898", "r917", "r989", "r1048" ] }, "us-gaap_StockholdersEquityNoteAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityNoteAbstract", "lang": { "en-us": { "role": { "label": "STOCKHOLDERS EQUITY:" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityNoteDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity [Text Block]", "terseLabel": "STOCKHOLDERS' EQUITY", "documentation": "The entire disclosure for equity." } } }, "auth_ref": [ "r101", "r203", "r340", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r475", "r678", "r680", "r693" ] }, "us-gaap_StockholdersEquityNumberOfSharesParValueAndOtherDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityNumberOfSharesParValueAndOtherDisclosuresAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity, Number of Shares, Par Value and Other Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_SubsequentEventMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsequentEventMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Subsequent Event [Member]", "terseLabel": "Subsequent Event", "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued." } } }, "auth_ref": [ "r501", "r529" ] }, "us-gaap_SubsequentEventTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsequentEventTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Subsequent Event Type [Axis]", "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued." } } }, "auth_ref": [ "r501", "r529" ] }, "us-gaap_SubsequentEventTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsequentEventTypeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Subsequent Event Type [Domain]", "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued." } } }, "auth_ref": [ "r501", "r529" ] }, "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SupplementalBalanceSheetDisclosuresTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponents" ], "lang": { "en-us": { "role": { "label": "Supplemental Balance Sheet Disclosures [Text Block]", "terseLabel": "BALANCE SHEET COMPONENTS", "documentation": "The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity." } } }, "auth_ref": [ "r885" ] }, "us-gaap_SupplementalCashFlowInformationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SupplementalCashFlowInformationAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information [Abstract]" } } }, "auth_ref": [] }, "us-gaap_TableTextBlock": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationTables" ], "lang": { "en-us": { "role": { "label": "Table Text Block [Abstract]", "terseLabel": "Notes Tables" } } }, "auth_ref": [] }, "ecd_TabularListTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TabularListTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Tabular List [Table Text Block]", "terseLabel": "Tabular List, Table" } } }, "auth_ref": [ "r845" ] }, "pdfs_TermOfProductWarranty": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "TermOfProductWarranty", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to product warranty period following initial delivery.", "label": "Term of Product Warranty", "terseLabel": "Term of Product Warranty" } } }, "auth_ref": [] }, "pdfs_TestEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "TestEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "Test equipment member.", "label": "Test Equipment [Member]", "verboseLabel": "Test Equipment" } } }, "auth_ref": [] }, "us-gaap_TimingOfTransferOfGoodOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TimingOfTransferOfGoodOrServiceAxis", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "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": [ "r739", "r952" ] }, "us-gaap_TimingOfTransferOfGoodOrServiceDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TimingOfTransferOfGoodOrServiceDomain", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "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": [ "r739", "r952" ] }, "pdfs_TotalFuturePrincipalPaymentsOfLongTermDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "TotalFuturePrincipalPaymentsOfLongTermDebt", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureDebtFuturePaymentsOnTotalDebtDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation.", "label": "Total future principal payments of long-term debt", "totalLabel": "Total future principal payments of long-term debt" } } }, "auth_ref": [] }, "ecd_TotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Amount", "terseLabel": "Total Shareholder Return Amount" } } }, "auth_ref": [ "r837" ] }, "ecd_TotalShareholderRtnVsPeerGroupTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TotalShareholderRtnVsPeerGroupTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Vs Peer Group [Text Block]", "terseLabel": "Total Shareholder Return Vs Peer Group" } } }, "auth_ref": [ "r844" ] }, "us-gaap_TradeAndOtherAccountsReceivablePolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TradeAndOtherAccountsReceivablePolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable [Policy Text Block]", "terseLabel": "Accounts Receivable, Policy", "documentation": "Disclosure of accounting policy for accounts receivable." } } }, "auth_ref": [ "r126", "r127", "r128", "r912", "r913", "r914" ] }, "us-gaap_TrademarksAndTradeNamesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TrademarksAndTradeNamesMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Trademarks and Trade Names [Member]", "verboseLabel": "Tradename and Trademarks", "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style, or rights either acquired through registration of a business name to gain or protect exclusive use thereof." } } }, "auth_ref": [ "r53", "r923", "r924", "r925", "r926", "r927", "r928", "r930", "r932", "r933", "r934" ] }, "us-gaap_TrademarksMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TrademarksMember", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValueOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Trademarks [Member]", "terseLabel": "Trademark", "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style." } } }, "auth_ref": [ "r53", "r730", "r923", "r924", "r925", "r926", "r927", "r928", "r930", "r932", "r933", "r934" ] }, "ecd_TradingArrAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TradingArrAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement [Axis]", "terseLabel": "Trading Arrangement:" } } }, "auth_ref": [ "r864" ] }, "ecd_TradingArrByIndTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TradingArrByIndTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangements, by Individual [Table]", "terseLabel": "Trading Arrangements, by Individual" } } }, "auth_ref": [ "r866" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "TradingSymbol", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "us-gaap_TransferredAtPointInTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TransferredAtPointInTimeMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Transferred at Point in Time [Member]", "verboseLabel": "Point-in-time", "documentation": "Contract with customer in which good or service is transferred at point in time." } } }, "auth_ref": [ "r739" ] }, "us-gaap_TransferredOverTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TransferredOverTimeMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Transferred over Time [Member]", "verboseLabel": "Over Time", "documentation": "Contract with customer in which good or service is transferred over time." } } }, "auth_ref": [ "r739" ] }, "ecd_TrdArrAdoptionDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrAdoptionDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Adoption Date", "terseLabel": "Adoption Date" } } }, "auth_ref": [ "r867" ] }, "ecd_TrdArrDuration": { "xbrltype": "durationItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrDuration", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Duration", "terseLabel": "Arrangement Duration" } } }, "auth_ref": [ "r868" ] }, "ecd_TrdArrExpirationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrExpirationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Expiration Date", "terseLabel": "Expiration Date" } } }, "auth_ref": [ "r868" ] }, "ecd_TrdArrIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r866" ] }, "ecd_TrdArrIndTitle": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrIndTitle", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Title", "terseLabel": "Title" } } }, "auth_ref": [ "r866" ] }, "ecd_TrdArrSecuritiesAggAvailAmt": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrSecuritiesAggAvailAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Securities Aggregate Available Amount", "terseLabel": "Aggregate Available" } } }, "auth_ref": [ "r869" ] }, "ecd_TrdArrTerminationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrTerminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Termination Date", "terseLabel": "Termination Date" } } }, "auth_ref": [ "r867" ] }, "us-gaap_TreasuryStockAcquiredAverageCostPerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockAcquiredAverageCostPerShare", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Shares Acquired, Average Cost Per Share", "terseLabel": "Shares repurchased for Treasury, average cost per share", "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased." } } }, "auth_ref": [ "r42" ] }, "us-gaap_TreasuryStockCommonMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockCommonMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Treasury Stock, Common [Member]", "verboseLabel": "Treasury Stock", "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r42" ] }, "us-gaap_TreasuryStockCommonShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockCommonShares", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Treasury Stock, Common, Shares", "periodEndLabel": "Treasury Stock, Shares, Ending Balance", "periodStartLabel": "Treasury Stock, Shares, Beginning Balance", "terseLabel": "Treasury stock, common shares", "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r42" ] }, "us-gaap_TreasuryStockSharesAcquired": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockSharesAcquired", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Treasury Stock, Shares, Acquired", "terseLabel": "Repurchase of common stock (shares)", "verboseLabel": "Purchases of treasury stock in connection with tax withholdings on vesting of restricted stock awards (shares)", "documentation": "Number of shares that have been repurchased during the period and are being held in treasury." } } }, "auth_ref": [ "r10", "r72", "r102" ] }, "us-gaap_TreasuryStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockValue", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Treasury Stock, Value", "negatedLabel": "Treasury stock at cost, 12,040 and 11,916 shares, respectively", "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury." } } }, "auth_ref": [ "r42", "r43", "r72", "r75" ] }, "us-gaap_TreasuryStockValueAcquiredCostMethod": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockValueAcquiredCostMethod", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Treasury Stock, Value, Acquired, Cost Method", "negatedLabel": "Purchases of treasury stock in connection with tax withholdings on restricted stock grants", "documentation": "Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method." } } }, "auth_ref": [ "r10", "r42", "r102" ] }, "us-gaap_TypeOfArrangementAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TypeOfArrangementAxis", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]", "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations." } } }, "auth_ref": [ "r461" ] }, "country_US": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2024", "localname": "US", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "UNITED STATES", "terseLabel": "United States (1)", "verboseLabel": "United States" } } }, "auth_ref": [] }, "us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "USGovernmentCorporationsAndAgenciesSecuritiesMember", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "US Government Corporations and Agencies Securities [Member]", "verboseLabel": "U.S. Government Securities (1)", "documentation": "This category includes information about debt issued by US Government Corporations and Agencies. Investments in such US Government Corporations may include debt securities issued by the Government National Mortgage Association (Ginnie Mae) and by the Federal National Mortgage Association (Fannie Mae) and the Federal Home Loan Mortgage Corporation (Freddie Mac)." } } }, "auth_ref": [ "r1010" ] }, "us-gaap_UnbilledReceivablesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnbilledReceivablesCurrent", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBasisOfPresentationAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Unbilled Receivables, Current", "terseLabel": "Unbilled receivables", "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_UnbilledReceivablesNotBillableAtBalanceSheetDateAmountExpectedToBeCollectedAfterOneYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnbilledReceivablesNotBillableAtBalanceSheetDateAmountExpectedToBeCollectedAfterOneYear", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails": { "parentTag": "us-gaap_OtherAssetsNoncurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsOtherNonCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Unbilled Receivables, Not Billable, Amount Expected to be Collected after Next 12 Months", "terseLabel": "Unbilled accounts receivable (2)", "verboseLabel": "Unbilled receivables - non-current", "documentation": "Amount of receivables under long-term contracts that have not been billed and were not billable that are expected to be collected after the next fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date." } } }, "auth_ref": [ "r183" ] }, "ecd_UndrlygSecurityMktPriceChngPct": { "xbrltype": "pureItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "UndrlygSecurityMktPriceChngPct", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Underlying Security Market Price Change, Percent", "terseLabel": "Underlying Security Market Price Change" } } }, "auth_ref": [ "r863" ] }, "us-gaap_UnrecognizedTaxBenefits": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnrecognizedTaxBenefits", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Unrecognized Tax Benefits", "terseLabel": "Unrecognized tax benefits, excluding interest and penalties", "documentation": "Amount of unrecognized tax benefits." } } }, "auth_ref": [ "r430", "r439", "r748" ] }, "pdfs_UnrecognizedTaxBenefitsInDeferredTaxAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "UnrecognizedTaxBenefitsInDeferredTaxAssets", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Unrecognized tax benefits in deferred tax assets.", "label": "pdfs_UnrecognizedTaxBenefitsInDeferredTaxAssets", "terseLabel": "Unrecognized Tax Benefits In Deferred Tax Assets" } } }, "auth_ref": [] }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued", "terseLabel": "Unrecognized tax benefits, interest accrued", "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return." } } }, "auth_ref": [ "r438", "r748" ] }, "pdfs_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedInLongTermLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20250331", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedInLongTermLiabilities", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return which have been recorded as part of the long-term liabilities in the balance sheet.", "label": "pdfs_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedInLongTermLiabilities", "terseLabel": "Unrecognized tax benefits including income tax penalties and interest accrued in long term liabilities" } } }, "auth_ref": [] }, "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesNarrativeDetails" ], "lang": { "en-us": { "role": { "label": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate", "terseLabel": "Unrecognized tax benefits that would impact effective tax rate", "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate." } } }, "auth_ref": [ "r440", "r748" ] }, "us-gaap_UseOfEstimates": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UseOfEstimates", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of Estimates, Policy", "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles." } } }, "auth_ref": [ "r31", "r32", "r33", "r131", "r132", "r133", "r134" ] }, "us-gaap_VariableRateAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "VariableRateAxis", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Variable Rate [Axis]", "documentation": "Information by type of variable rate." } } }, "auth_ref": [] }, "us-gaap_VariableRateDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "VariableRateDomain", "presentation": [ "http://www.pdf.com/role/DisclosureDebtRevolvingCreditFacilityDetails" ], "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": [] }, "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]", "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year" } } }, "auth_ref": [ "r833" ] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "calculation": { "http://www.pdf.com/role/DisclosureNetLossPerShareCalculationOfEarningsPerShareDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted", "terseLabel": "Diluted", "verboseLabel": "Diluted weighted average shares outstanding", "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": [ "r224", "r229" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "calculation": { "http://www.pdf.com/role/DisclosureNetLossPerShareCalculationOfEarningsPerShareDetails": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Basic", "verboseLabel": "Basic weighted average shares outstanding", "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": [ "r223", "r229" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasicAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingBasicAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncomeLoss" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Basic [Abstract]", "terseLabel": "Weighted average common shares used to calculate net income (loss) per share:" } } }, "auth_ref": [] }, "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]", "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested" } } }, "auth_ref": [ "r831" ] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "16", "SubTopic": "10", "Topic": "805", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479405/805-10-25-16" }, "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/2147477401/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": "14", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14" }, "r4": { "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" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r6": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r7": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r8": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "470", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-1" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r10": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "505", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2A" }, "r12": { "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" }, "r13": { "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" }, "r14": { "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" }, "r15": { "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" }, "r16": { "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" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2" }, "r21": { "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" }, "r22": { "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" }, "r23": { "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" }, "r24": { "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" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "260", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-16" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18" }, "r29": { "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" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-21" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-8" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "30", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r40": { "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" }, "r41": { "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" }, "r42": { "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" }, "r43": { "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" }, "r44": { "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" }, "r45": { "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" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "40", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480489/718-40-50-1" }, "r47": { "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" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r49": { "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" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "55", "Paragraph": "37", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-37" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-2" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "14", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "810", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1" }, "r57": { "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" }, "r58": { "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" }, "r59": { "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" }, "r60": { "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" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r71": { "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" }, "r72": { "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" }, "r73": { "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" }, "r74": { "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" }, "r75": { "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" }, "r76": { "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" }, "r77": { "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" }, "r78": { "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" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r80": { "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" }, "r81": { "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" }, "r82": { "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" }, "r83": { "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" }, "r84": { "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(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r85": { "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" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r87": { "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" }, "r88": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r89": { "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" }, "r90": { "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" }, "r91": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25" }, "r92": { "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" }, "r93": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "235", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/235/tableOfContent" }, "r94": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "275", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18" }, "r95": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "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" }, "r96": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "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" }, "r97": { "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" }, "r98": { "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" }, "r99": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "440", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/440/tableOfContent" }, "r100": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "470", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/470/tableOfContent" }, "r101": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/505/tableOfContent" }, "r102": { "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" }, "r103": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "710", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/710/tableOfContent" }, "r104": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "712", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/712/tableOfContent" }, "r105": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "715", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/715/tableOfContent" }, "r106": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/718/tableOfContent" }, "r107": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r108": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Subparagraph": "(e)(1)", "Name": "Accounting Standards Codification", "Paragraph": "2", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r109": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Subparagraph": "(f)(2)", "Name": "Accounting Standards Codification", "Paragraph": "2", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r110": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "805", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/805/tableOfContent" }, "r111": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38" }, "r112": { "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" }, "r113": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21" }, "r114": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r115": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(15)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r116": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r117": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "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(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/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(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r120": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r121": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r122": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r123": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r124": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r125": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r126": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-11B" }, "r127": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-15" }, "r128": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-6" }, "r129": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-7A" }, "r130": { "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" }, "r131": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1" }, "r132": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1" }, "r133": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-11" }, "r134": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12" }, "r135": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r136": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9" }, "r137": { "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" }, "r138": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/606/tableOfContent" }, "r139": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r140": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12", "Paragraph": "Column C", "Footnote": "5", "Publisher": "SEC" }, "r141": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12A", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r142": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12A", "Paragraph": "Column C", "Footnote": "4", "Publisher": "SEC" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column A", "Subparagraph": "(a)", "Footnote": "4", "Publisher": "SEC" }, "r144": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column A", "Subparagraph": "(b)", "Footnote": "4", "Publisher": "SEC" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column C", "Footnote": "2", "Publisher": "SEC" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "14", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r147": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "14", "Paragraph": "Column F", "Footnote": "7", "Publisher": "SEC" }, "r148": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column A", "Publisher": "SEC" }, "r149": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column B", "Publisher": "SEC" }, "r150": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column C", "Publisher": "SEC" }, "r151": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column D", "Publisher": "SEC" }, "r152": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column E", "Publisher": "SEC" }, "r153": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column F", "Publisher": "SEC" }, "r154": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r155": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column B", "Publisher": "SEC" }, "r156": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column C", "Publisher": "SEC" }, "r157": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column D", "Publisher": "SEC" }, "r158": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column E", "Footnote": "4", "Publisher": "SEC" }, "r159": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column E", "Publisher": "SEC" }, "r160": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column F", "Publisher": "SEC" }, "r161": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column G", "Publisher": "SEC" }, "r162": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column H", "Publisher": "SEC" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column I", "Publisher": "SEC" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "29", "Paragraph": "Column A", "Footnote": "4", "Publisher": "SEC" }, "r165": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 11", "Section": "L", "Publisher": "SEC" }, "r166": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 11", "Section": "M", "Paragraph": "Question 2", "Publisher": "SEC" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 2", "Publisher": "SEC" }, "r168": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 4", "Publisher": "SEC" }, "r169": { "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" }, "r170": { "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" }, "r171": { "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" }, "r172": { "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" }, "r173": { "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" }, "r174": { "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(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r175": { "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" }, "r176": { "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" }, "r177": { "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" }, "r178": { "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(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r179": { "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" }, "r180": { "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" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r182": { "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" }, "r183": { "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(3)(c)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r184": { "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" }, "r185": { "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" }, "r186": { "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(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r187": { "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" }, "r188": { "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" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r190": { "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" }, "r191": { "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" }, "r192": { "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" }, "r193": { "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" }, "r194": { "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" }, "r195": { "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" }, "r196": { "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" }, "r197": { "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" }, "r198": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r199": { "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" }, "r200": { "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" }, "r201": { "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" }, "r202": { "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" }, "r203": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(e)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r204": { "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" }, "r205": { "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" }, "r206": { "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" }, "r207": { "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" }, "r208": { "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" }, "r209": { "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" }, "r210": { "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" }, "r211": { "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" }, "r212": { "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" }, "r213": { "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" }, "r214": { "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" }, "r215": { "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" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r217": { "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" }, "r218": { "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" }, "r219": { "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" }, "r220": { "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" }, "r221": { "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" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/260/tableOfContent" }, "r223": { "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" }, "r224": { "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" }, "r225": { "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" }, "r226": { "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" }, "r227": { "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" }, "r228": { "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" }, "r229": { "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" }, "r230": { "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" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r232": { "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" }, "r233": { "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" }, "r234": { "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" }, "r235": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r236": { "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" }, "r237": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/280/tableOfContent" }, "r238": { "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" }, "r239": { "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" }, "r240": { "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" }, "r241": { "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" }, "r242": { "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" }, "r243": { "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" }, "r244": { "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" }, "r245": { "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" }, "r246": { "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" }, "r247": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B" }, "r248": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C" }, "r249": { "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" }, "r250": { "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" }, "r251": { "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" }, "r252": { "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" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r254": { "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" }, "r255": { "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" }, "r256": { "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" }, "r257": { "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" }, "r258": { "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" }, "r259": { "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" }, "r260": { "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" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13" }, "r262": { "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" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481830/320-10-45-2" }, "r264": { "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" }, "r265": { "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" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-14" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-5" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479130/326-30-45-1" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "05", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482955/340-10-05-5" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483032/340-10-45-1" }, "r275": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479483/340-40-50-3" }, "r276": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479483/340-40-50-3" }, "r277": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480265/350-10-S45-1" }, "r278": { "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" }, "r279": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-2" }, "r280": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r281": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r282": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "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" }, "r283": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r293": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r294": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r295": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1" }, "r296": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r304": { "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" }, "r305": { "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" }, "r306": { "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" }, "r307": { "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" }, "r308": { "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" }, "r309": { "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" }, "r310": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4" }, "r311": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r313": { "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" }, "r314": { "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" }, "r315": { "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" }, "r316": { "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" }, "r317": { "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" }, "r318": { "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" }, "r319": { "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" }, "r320": { "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" }, "r321": { "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" }, "r322": { "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" }, "r323": { "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" }, "r324": { "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" }, "r325": { "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" }, "r326": { "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" }, "r327": { "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" }, "r328": { "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" }, "r329": { "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" }, "r330": { "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" }, "r331": { "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" }, "r332": { "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" }, "r333": { "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" }, "r334": { "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" }, "r335": { "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" }, "r336": { "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" }, "r337": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-4" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-4" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-6" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r341": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r342": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "16", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r353": { "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" }, "r354": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "32", "Paragraph": "2A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479866/606-10-32-2A" }, "r355": { "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" }, "r356": { "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" }, "r357": { "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" }, "r358": { "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" }, "r359": { "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" }, "r360": { "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" }, "r361": { "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" }, "r362": { "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" }, "r363": { "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" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12A" }, "r365": { "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" }, "r366": { "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" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-17" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-18" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-19" }, "r371": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20" }, "r372": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20" }, "r373": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20" }, "r374": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-20" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-22" }, "r376": { "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" }, "r377": { "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" }, "r378": { "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" }, "r379": { "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" }, "r380": { "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" }, "r381": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r382": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(A)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r384": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(B)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r385": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r386": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r387": { "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" }, "r388": { "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" }, "r389": { "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" }, "r390": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/718/tableOfContent" }, "r391": { "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" }, "r392": { "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" }, "r393": { "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" }, "r394": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r395": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r396": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r397": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r398": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r403": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r408": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r409": { "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" }, "r410": { "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" }, "r411": { "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" }, "r412": { "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" }, "r413": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r415": { "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" }, "r416": { "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" }, "r417": { "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" }, "r418": { "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" }, "r419": { "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" }, "r420": { "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" }, "r421": { "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" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.C.Q3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r423": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.1.Q5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.2.Q6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r425": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.3.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r426": { "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" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "720", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "730", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482916/730-10-50-1" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/740/tableOfContent" }, "r430": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-10B" }, "r431": { "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" }, "r432": { "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" }, "r433": { "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" }, "r434": { "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" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C" }, "r437": { "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" }, "r438": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15" }, "r439": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A" }, "r440": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A" }, "r441": { "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" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2" }, "r443": { "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" }, "r444": { "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" }, "r445": { "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" }, "r446": { "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" }, "r447": { "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" }, "r448": { "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" }, "r449": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1" }, "r450": { "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" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r457": { "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" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "808", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479402/808-10-50-1" }, "r462": { "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" }, "r463": { "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" }, "r464": { "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" }, "r465": { "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" }, "r466": { "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" }, "r467": { "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" }, "r468": { "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" }, "r469": { "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" }, "r470": { "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" }, "r471": { "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" }, "r472": { "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" }, "r473": { "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" }, "r474": { "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" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-6" }, "r476": { "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" }, "r477": { "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" }, "r478": { "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" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "54B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B" }, "r480": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r486": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r489": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r490": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E" }, "r491": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r494": { "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" }, "r495": { "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" }, "r496": { "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" }, "r497": { "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" }, "r498": { "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" }, "r499": { "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" }, "r500": { "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" }, "r501": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-2" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2" }, "r503": { "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" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/842-20/tableOfContent" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "12A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A" }, "r507": { "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" }, "r508": { "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" }, "r509": { "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" }, "r510": { "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" }, "r511": { "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" }, "r512": { "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" }, "r513": { "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" }, "r514": { "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" }, "r515": { "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" }, "r516": { "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" }, "r517": { "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" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A" }, "r520": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479773/842-30-50-10" }, "r521": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479773/842-30-50-6" }, "r522": { "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" }, "r523": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/850/tableOfContent" }, "r524": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1" }, "r525": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1" }, "r526": { "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" }, "r527": { "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" }, "r528": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-6" }, "r529": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2" }, "r530": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r531": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r532": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r533": { "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" }, "r534": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7" }, "r535": { "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" }, "r536": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "912", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478345/912-310-45-11" }, "r537": { "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" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483154/926-20-50-5" }, "r539": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "928", "SubTopic": "340", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478859/928-340-50-1" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478934/932-220-50-1" }, "r541": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r542": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r543": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r544": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-19" }, "r545": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-6" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-7" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "280", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478657/932-280-50-1" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478988/932-323-50-1" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r577": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r578": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r579": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r580": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r581": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r582": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r584": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r585": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r586": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r587": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r588": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r589": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r590": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r591": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r592": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r593": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r594": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r595": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r596": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r597": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r598": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r599": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E" }, "r600": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r601": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r602": { "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" }, "r603": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9" }, "r604": { "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" }, "r605": { "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" }, "r606": { "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" }, "r607": { "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" }, "r608": { "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" }, "r609": { "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" }, "r610": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.W.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1" }, "r611": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "825", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B" }, "r612": { "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" }, "r613": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r614": { "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" }, "r615": { "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" }, "r616": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-2" }, "r617": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-5" }, "r618": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-6" }, "r619": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-3" }, "r620": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r621": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4" }, "r622": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r623": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-2" }, "r624": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r625": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r626": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r627": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r628": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r629": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r630": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r631": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r632": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r633": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r634": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r635": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r636": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r637": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r638": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r639": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r640": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r641": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r642": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(5)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r643": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r644": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r645": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r646": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r647": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r648": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r649": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r650": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r651": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r652": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r653": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r654": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3" }, "r655": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7" }, "r656": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r657": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r658": { "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)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r659": { "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)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r660": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(g)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r661": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r662": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r663": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r664": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r665": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r666": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r667": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r668": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r669": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r670": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r671": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r672": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r673": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r674": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r675": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r676": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r677": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r678": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r679": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r680": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r681": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r682": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1" }, "r683": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r684": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r685": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r686": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r687": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r688": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r689": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r690": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r691": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r692": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2" }, "r693": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-6" }, "r694": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Column A)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1" }, "r695": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478785/954-310-50-2" }, "r696": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "440", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478522/954-440-50-1" }, "r697": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r698": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r699": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r700": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r701": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r702": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r703": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r704": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r705": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r706": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r707": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477332/976-310-50-1" }, "r708": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479230/978-310-50-1" }, "r709": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "985", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2" }, "r710": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(e)", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4" }, "r711": { "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" }, "r712": { "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" }, "r713": { "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" }, "r714": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r715": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4" }, "r716": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4" }, "r717": { "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" }, "r718": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r719": { "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" }, "r720": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r721": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r722": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r723": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "48", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48" }, "r724": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "49", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49" }, "r725": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r726": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r727": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r728": { "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" }, "r729": { "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" }, "r730": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40" }, "r731": { "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" }, "r732": { "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" }, "r733": { "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" }, "r734": { "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" }, "r735": { "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" }, "r736": { "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" }, "r737": { "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" }, "r738": { "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" }, "r739": { "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" }, "r740": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r741": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r742": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480482/715-20-55-17" }, "r743": { "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" }, "r744": { "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" }, "r745": { "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" }, "r746": { "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" }, "r747": { "role": "http://www.xbrl.org/2003/role/exampleRef", "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" }, "r748": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "217", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-217" }, "r749": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "231", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231" }, "r750": { "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" }, "r751": { "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" }, "r752": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r753": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r754": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "101", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-101" }, "r755": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "102", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102" }, "r756": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "103", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103" }, "r757": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r758": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r759": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r760": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8" }, "r761": { "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" }, "r762": { "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" }, "r763": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-17" }, "r764": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-21" }, "r765": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "29", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-29" }, "r766": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-3" }, "r767": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-2" }, "r768": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-4" }, "r769": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-5" }, "r770": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-6" }, "r771": { "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" }, "r772": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r773": { "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" }, "r774": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r775": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r776": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r777": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E" }, "r778": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18" }, "r779": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r780": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r781": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1" }, "r782": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1" }, "r783": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r784": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r785": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r786": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r787": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10" }, "r788": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-11" }, "r789": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12" }, "r790": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r791": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r792": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r793": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r794": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "16", "Subsection": "J", "Paragraph": "a" }, "r795": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1" }, "r796": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i" }, "r797": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r798": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r799": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r800": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r801": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r802": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii" }, "r803": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "iii" }, "r804": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "2" }, "r805": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a" }, "r806": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1" }, "r807": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r808": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r809": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r810": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r811": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r812": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "2" }, "r813": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "3" }, "r814": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "b" }, "r815": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a" }, "r816": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1" }, "r817": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r818": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r819": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r820": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r821": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r822": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "2" }, "r823": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "3" }, "r824": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "b" }, "r825": { "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" }, "r826": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v" }, "r827": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "1" }, "r828": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "ii" }, "r829": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii" }, "r830": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Subclause": "ii" }, "r831": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "i" }, "r832": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "ii" }, "r833": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "iii" }, "r834": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "iv" }, "r835": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "v" }, "r836": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "vi" }, "r837": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iv" }, "r838": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "vi" }, "r839": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "3" }, "r840": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "4" }, "r841": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "i" }, "r842": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "ii" }, "r843": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iii" }, "r844": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iv" }, "r845": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6" }, "r846": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6", "Subparagraph": "i" }, "r847": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1" }, "r848": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i" }, "r849": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r850": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r851": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r852": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r853": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r854": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "ii" }, "r855": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "iii" }, "r856": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "2" }, "r857": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "1" }, "r858": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2" }, "r859": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "A" }, "r860": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "C" }, "r861": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "D" }, "r862": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "E" }, "r863": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "F" }, "r864": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a" }, "r865": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "1" }, "r866": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "A" }, "r867": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "B" }, "r868": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "C" }, "r869": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "D" }, "r870": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "b", "Paragraph": "1" }, "r871": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Number": "229", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1" }, "r872": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "A", "Number": "229" }, "r873": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Number": "229" }, "r874": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Subclause": "i", "Number": "229" }, "r875": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r876": { "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" }, "r877": { "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" }, "r878": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "30", "Topic": "842", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479016/842-30-45-1" }, "r879": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "SubTopic": "30", "Topic": "842", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479016/842-30-45-2" }, "r880": { "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" }, "r881": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "SubTopic": "825", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B" }, "r882": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(1)", "SubTopic": "20", "Topic": "842", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r883": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 2", "Publisher": "SEC" }, "r884": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "205", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483504/205-10-50-1" }, "r885": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/210/tableOfContent" }, "r886": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r887": { "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(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r888": { "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(26)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r889": { "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(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r890": { "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" }, "r891": { "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" }, "r892": { "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" }, "r893": { "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" }, "r894": { "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" }, "r895": { "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" }, "r896": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2A" }, "r897": { "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" }, "r898": { "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" }, "r899": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r900": { "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" }, "r901": { "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" }, "r902": { "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" }, "r903": { "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" }, "r904": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r905": { "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" }, "r906": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r907": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r908": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r909": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r910": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r911": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2" }, "r912": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2" }, "r913": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2" }, "r914": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481569/310-20-50-1" }, "r915": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r916": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2" }, "r917": { "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" }, "r918": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1" }, "r919": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "340", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479483/340-40-50-3" }, "r920": { "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" }, "r921": { "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" }, "r922": { "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" }, "r923": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1" }, "r924": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r925": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r926": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r927": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r928": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r929": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r930": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r931": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r932": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r933": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r934": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r935": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "30", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/405-30/tableOfContent" }, "r936": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r937": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r938": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r939": { "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" }, "r940": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/450/tableOfContent" }, "r941": { "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" }, "r942": { "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" }, "r943": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r944": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r945": { "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" }, "r946": { "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" }, "r947": { "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" }, "r948": { "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" }, "r949": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r950": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "505", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4" }, "r951": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10" }, "r952": { "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" }, "r953": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r954": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r955": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r956": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r957": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r958": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r959": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r960": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r961": { "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" }, "r962": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r963": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r964": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r965": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r966": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r967": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r968": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r969": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r970": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r971": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r972": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r973": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r974": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r975": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r976": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r977": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r978": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r979": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r980": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r981": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-22" }, "r982": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-23" }, "r983": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "6A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480682/815-20-25-6A" }, "r984": { "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" }, "r985": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r986": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r987": { "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" }, "r988": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E" }, "r989": { "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" }, "r990": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "830", "SubTopic": "230", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r991": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-1A" }, "r992": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2" }, "r993": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1" }, "r994": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3" }, "r995": { "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" }, "r996": { "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" }, "r997": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r998": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r999": { "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" }, "r1000": { "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" }, "r1001": { "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" }, "r1002": { "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" }, "r1003": { "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" }, "r1004": { "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" }, "r1005": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r1006": { "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" }, "r1007": { "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" }, "r1008": { "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" }, "r1009": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "912", "SubTopic": "730", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479532/912-730-25-1" }, "r1010": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "942", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477268/942-320-50-2" }, "r1011": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r1012": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r1013": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r1014": { "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" }, "r1015": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r1016": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r1017": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r1018": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r1019": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r1020": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C" }, "r1021": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D" }, "r1022": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4G", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G" }, "r1023": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r1024": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r1025": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r1026": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r1027": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1028": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1029": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1030": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1031": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1032": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1033": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1034": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1035": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1036": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1037": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1038": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1039": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1040": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1041": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r1042": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r1043": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r1044": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r1045": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r1046": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r1047": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r1048": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r1049": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r1050": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r1051": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r1052": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r1053": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r1054": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "985", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2" } } } ZIP 92 0001558370-25-006985-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001558370-25-006985-xbrl.zip M4$L#!!0 ( (V"J%I*C.,DS!4 39 1 <&1FN(B9["2J52^E*I5"HM__2/EY5#GIGPN>=^.KL\ MOS@CS+4\F[N+3V>!G+<^G/WCYW_[VT__WFK]UAGWB>U9P8JYDEB"4SJ_#(NZ$;L M//,_MN'2O"E+85FG2.V*MF3P1,,!?O=DVN10PDEJ9'(&;EMT5X%Y@:KJRSTKB[:[$4RU^($K19Z^A(5[[;E,ZM0=2'9SA&>SAH)]MI1;?C:I M*MI7V110T8R^O+N[:ZO2K0!2'(SGGM!0W,9B9'_5NKAN[::WRQ9EYG9$MH7C MQ5IF=P-+]GI1PKK%YHOKS5>+N[ZDKL62\YH7:/,A/:A7IL[MR6P7SCM[-^^4 MX>"95N5]:%7XP11ML5G^-,7"?4.WL5MTWO*#68[J;LOW9XMEYZ!CV8>$^MZK@USF=GPA^\YW$:EZU '$9PL&9/^&>'0MRH58J%BL6PVYRY7';B[ MNT7UNK@@+;)E"7]WAX-[F\*-C](U!UR23+Z8YG?S4/F1W MT% 8@W=G]7?L#+ZP%N-&ZX@4>6(I*"B11TK<*K7VXF56RUZ&,/T-N!M2_WA MO.NM8!R6:*R?60_\O17K>WXI2,NPT0)]51;HR13^]V@.IA,R?("BQ]'8_ )T MO5],TAO ;Y.\ZP\GD[\W.E!9!ZB_?'"\K]51WU;4XGQS),[&Y MYZ ]_;:9V M!.L]]RW'\P/!QNP9?"L&X$A!+1E96/^>2()H)M[9>KJ(;TMFHG0!)$>"1LAGB!1,X3NIFD# M-Z:+CV4"Z9Z*J@AC1\'WS:'.A/YJ=3A^N+ MJT-UV/.)E:LT'*@%M46BADG4,J&N353;)&J"U.ID/Q/U9'AO ?[(LGGG,+ GJ0%QS+7:\G["EH22D&28A!O M3I*"-)ITNB:IA7;@N!#!36 )LFN30);"M5J2PV-:K=1B*H*\4AE($ 2 MY@_G:@A'=*,B:D^NS<0^JM7LPU&<]0IS5T%A=B+@$A)J2"P%46)$&B2W&M38 ME (5"DC8.?/(.6R57C19D:L&/5:=N MKB89 \:EP:0VV(FR,C=/VPP691R,>^&_C2 M6S%AN/9GYBT$72^YU7/GGEBI#DS8 EWIZ$3ILT"0A3?G$BJH[6&<>I&C&*_. M7Z8*A)+$AY,_ M$"4,":7Y0<6NP\TI2D3>H4Q_;S0K7[,>*!>_4"=@CV"4X;?:D84QG>@)M#YF M&.V!Z=JA/L_3H1,X:;3E\B*M+0]&;TQ^,?I/)GF$U>9I'&6'M.* 5-PF)I-3 MLFV7J(8;C;!JMNPGN&LF#%[+R0X&OQU>E$1A2H\S3I#4QP!&%# MV.D-XC4(!*CT9V4[D2O6L7_QQ0!5\)N*^&X1=I0 MAE*;K E.&P(M?2\^QF? QUT9NJF999W#0XGU]7+HU[,NZ__5E MV+\WQQ-B_O=3;_I[@WCZ4 _V%C@^]KC&8$J/;'3X-IKW!9S("K>GVS"85/R\Y."?O5P_451JH**>W&>OL M8[+LPR_]2-^D1SJ,83<#?3C0>2M7(846@-LT ,E5YS^:92<'#G.U=KP-8QWF M0NMR!-Y@:A9DTF@A>9^&Q'P<]8>_FR;IF /SH3;\2P] J<.M!H:JQU55CY_T0!UWGM0@5^HX MJ-1)CQ:C"J6M5ER&1VHNQ@1PR\?GK,-6BG['AG$S'QM3\#'9S9(RG _#%O_1&Q/@\-M54 M);_VIE^(>_>1X7% MR%P777/Q+F31C'_)MURRX2BDU:%3Y37G!J[B &HV/'ME.CCRWP]H!K]*%"\; MB@)*'3#OT\!D!_0:H,H&F+(QRB;2P?,A(Z$^G4C=0'-LT"D;JY*U=.#=I<$K MD\_9G%#585-K$Y;EXNH0ZG#*DM\E,& M5."K6\_Y]Q*\(N]B5;AYJ_057&YC49I+ MA<#[OCF^P5<.F>)*>L!2,:K$S9%[O#&W.^+>@*D%T[!MU3!U$LYG,92%5?1 MIJZ"V@&YXYS,YVY0K!KLJG1+2_F+5S+6O[QP5X-8<;RK\-*,\C=BY&0/-N-? M)8\P!XM\0ATNFJ3"**>P :E:7%*W&2A51P==Z>3#QFT_'DD,FH2;-7S%;JV2 M!!X\8?KK=05L2W#1HYWR*G/1WC9'$NT1<%*(.1F-&A6HI@*&XWC6=BM@>;!1 M_Y/9(R:X9ZM;PRLH0FE>>G4H>U !KNJVT7"_$3=+PG:CJ\\;K:AFXCUUMR-^ M6,"7@EOJU3-8A9] .-^PP-;F+]%*?L^= (=M@I>@\(*[ BO5U>'Y(;VH9UX, MA:VT[*@9LFNG ?GXL\XH0@1 6C@6"];9/-+_\41<[]A[H$KSU2G'75HYRMW_ M%$<4=R*0V88H(=7E&..EAO[;Y>!.JQ:YI@ MVXUZ'*\>?<]=],%0V^&U+:^D)26YZI4EY1J64Q9LO^6@ /%U-(W6G'Z+7(4C MC>H,-+IP>9%>80KNC&L./%[OA:0\&Z"OH<.TZMM)#8!O_)Y2;LC^%7GKE.*M M7UIJE*CX D)PM#SG&>9R5S"PH@_4PIO;\L)#)6KH ,_XMEUT^>"6,0DYDYAU M@V&E[#UMOE>)*CH42[ZAUH1]3DE *)=YH'^]OD+.00--EI',,H/ZMSAS;LEM MACAKB+-3CA,EQ1;I.O=2VR:GN)K1^>QY]E?N..#;'7ZH<,"J??VT'"M]QE0J M+%#PO9*X3741;>K[AC^HZ^7_GRQ$^,^,^FS,YN1%/<'/0KW,A'/NB44;;Z4,U>IP=**& M8Q946"DN7Z\5CTM N:VH@(GZB"WL*=NQ\&>D_5J] ARJ]NH NAIV"I2D:J?V M]:J&?7+HK&J?H ISWK0[Q^W2P0I1@3=SAS%4XX7[]]Z*>S6G@I'V\,E6* M+::Z)79_0QWQ5#<]AUP)LB4A7Q(S_K]I#G]JO_CV1[I>MZH?3J M&3X"Q?2$)"Y=,7]-K4AK?, XH7%7UTFKT+H\OSPCOK5D*]J/4EEVU0Z4-5WU M')J--*U @E@ GUGG"^^YS2P;N=WD-YQ)CG_@)+LIW6IZLG$7/^]@L>RF,ZO@ MKU9OR?=]C:4O11CN"/;IJ :_KLN.?45/]]JN!$/7K5OVR9>F! MB"O@"-P>C4:=X38JX42W"$&E^]+RS&G_DPQ"_S6@M)U&?W+ MK--F8&CB)]6T<4^IU8MH8E-E'B2KQ#^J2;#MD2]DI1&(ZPZ\3>FXS7J77 M,3G^<4*K:#O\8':TW8&ZF:TS)[S,')O_=+:++*^8X!;MN=8C6\V8")=)=!/^ M64 3.A@PT=6':/V/MEK?>I*M<#D L8.9+[D,4.C/P@O6G\Y08OZ1 \D9H5 J MJ"4_G4F!%S^[L(_ S6/\.Z1=J]3$:=A4(-0(%/3(II8^V#W3-^=Q=S(8T53%S^9YB^/9=,_,ZH>/"" M9$]/XA*.2BC\"O;TDHI-Z3')'H-9&"F 6 S+K-&)G059/[ 0#_8 H^H[-\Y M<^PQ7:U3 !?0U!#J/IUY0..)#7CH4S!M^*;,&@E2'=.3UK!_4;K7]GW51'_2 M18?RKT.*$_6NFL J@;(#VT ;HUG,]Q(HJ]E&5]ABZ6>^F/8 M&HEG_/B2)?!=M#$H8J+/;\(].5=]1?=M1\R;2Q"1];F%'S[9G0Q/0%9XYF]/ MD%,J7;UJ#56\>-9^+Q/UR17;=S"F]"5Z"\#O8>R!":$>AI'41.>J5*KGBI+; M@R@??L3 5U,?55.1;";0^[0L$ )^8O;9E(E5XJMG90;G:-9O.826.G@_:@P' M 6KUUHY/P(&P]D8BCR#9'X[+-A/?AZT?SD&]\2X4U=QKV/=#CLFAB3OR3<<& ME0]OAO'LP)*_XDF^&W\Q)+)KF>5_N=RQ?]_-]?R[-;;":H<+<^/!$R.8)$M0 MD^'\@;_$";8JSRHTK0_"6XT$6U,>EWFC,)B-_N%VR3GY*B:]> MCMDZ,AM@"V"+O<)P>MJGUY+6L'^[/'+,=O9K'@]F?"71\^5RWV)P>4N3U M,TYJ&>JY&$KESTQ=[!"M3Z57MN-9O.FRMO6H2X]%?,N%ZI#J1TJA\TEJJ,(] MUV:K\))6K)@U/;,):MB7[:9TYO!%3G<*:&K8HZ3%&,X-"_;-(G4:YT^9M70] MQUML&7,3.A^XIC$2ITP=(XO4B/_Z1+0QFLR MDT?]1U2NJ=^9%0FZ*1\TNJFQ7<@RS@:4V\PN9<@/:&O8PP'[JG'PGZ '8NLI MJQX=F+P3>-1L[Y"Y;N4!7H:XAHAG;/2,Z&IXM@_CU.MZSQ%N*F*G0G6^ M-\ M6>.ZEOBH?=XN\F3F-=.12#CM?ED"T,5;[I,YU6QDU'&BBNDF#R#5UT<*3RTK MUJN-?Z0+(TZL);,#AVW3(G9WH*J$$,L);/0 XU2:^%XL*.R F. 68&#XQ0)7 M(7EMZY9,=MB"NR[0#><8/X;5%7VH.("LWHV=LA?9<4#!DI.T7G(=VD@9%_VU MODVJ8Q4')D64');4 <$W:>W[F3GJ6"UQA!0=L>'X]-Q=:H/&L)S&YKL9+95: M%M[U09UH2Y$=*"RDJZ&OLMLOX(9H>^ *J\14J-O(-GM32$]<&TPU>TM]7T+G MH%+WXRIU.X>.M[H^WC_U&#B2KQT\&56WO<%H)2+!ZM-DFZQ%[10F-5V!,MYS MB&]YS1V&"G5JVFN5,S/UAC-T>X?SA\"90S,QO$4*4*E>37M_>&J>WU\M94U[ M&",272M28DKG4M:TA_OY;+[Z%_P[QI^QJ:1_HB&L2R!4YX#T87\*B\[>E7%] MC(.(]"M.6M(:NB&&$SI.*F\)W\AY8" P=1X"U\YX][,,]??02W7A.[.'S_"8 M+Y8R3*6%'046ZKM=JGH-QP'OI<+8%$B+[W*$KVVH8!5=8,>XE^AU&>+D-%YC M .>O#-*$J/S*_32"Z:(:HC/U)$XE#(2-! =]6E,GRB2$;7#\4LWN8K?P588* ME;X7H_OH"39=4O<+=>88AD%DPAA+ALN;&(N*]=[XT*FZ D?)Y C6UJ(HWV\7 M,8D^9>P#Q F_?+]P/>FAY<'__CMKW_Y]7\.#_]Y/;S7)M3P9\3V-,,A MNDT+.W:,23_]0IT7Z-XZ/OKGP_W(>"4S_="T M74^W#7*@0?MO+O_RGAJZQ[D3Z_[Q[%@1@-.CQ5C"%NS38=3LD'UU>'QR>'K\ MY<.='(0HLI\E!HF:LU_-G/8Q6H+V*?@A#XZOKJZ.^*\'O_U%TWYUJ$6&9*KQ MK[YYGW/R_< U9W.+@>+?O3ID^OU@/IFZAXS_K=. D/\=>2!#IATWU)X0&T0- M?[C4,B=,MM>ZQ? 9O1+BN0<:&^9IV$M@!""_&'1VQ'X[4H+&:93BWM%&B5S\ MZO:G-W0V=\@KM#'?2 ]FU8S<4W=]TJ7&0,D0W7WM6O2]8A8LH=9']*WI&A9U M?0?ZOQ';)X"=Y^B&%^JE>TL\W;1D*)4'U2!YMV0*QIU,PH_KD"<$U:CT7,\= MT_XSH&+WG:YO36$ABP2QEBRE #=!>MR",C-";3:?!@Z9Z^:D\S%GDZYM3_K> M*W%N?)"8[;5=%ZQM&7:L/Q@F%M$Y<;Q/P+?S']^<,SM4)4]RH.-A0L\&[^+% M?+9(U4HAA(R'^+9M^[K5GE'',__+OKE ?.J0Z(;XXYI4?&PSP^QQ^I MO2&;D@\>#QL>B=>SWXCKL0G>LT>Z1=PQP+\G,'QU[) ;!@];'G3/=TS/).#9 M<1P'^B=W])[ #722Z%>H->6&;8)M 0HQ?9_V8;T 4V"_\)_"Q;0,:U1!-T=^ M**[/50SOP0B:%I=C>0:H &^"!8_4(^=2:V>(YHUN&2=*C"@[1%/LN%"57#F6 ME!VF$;80CV4"!F"]7G6',$Q\*_08.KIC ]*+'\O,E5+PFV#$C>]Z=$8<<*CO M"'UQ]/FK:?3L*75F'-T1>6&6/@S8[AQ&E$.GI@<=^.H9)57*<*GZP9M@85TB6!5C:H*LLX5W3'B%@7_KG VP4H,0@GIT=A MBR,8-S!8AZ9'9@>%3(^@K> $$(WE0G%X_"40R"KT -M8RWN ',)GZ%2U:1 C M@GQX!'I,%M^:'AOGZNJ<[1&U6MJAMH -?]_T'V\[CZ/.+?MKU+_OW;;'\.&Z M?=]^O.EHHQ^=SGBD("!&,!,0-1)866SSB3K9O.6@IKK[S.'Y[N&+KL\9D\^. MB.6YT3=,]\\XF\,O_@Q4+ )JZ<_$^GX0?7G4 "IAK+Z"46:;/[^>7EZ>G)ZT M3B^^7GT%P9Q>+G&.:4S;2:(/BAR!#W6ZG,I/'3I;,BL<@:H@2QV(*+\?'!]H MO@M(T#D;0[<.M'=BOKQZ_)=ZA89)WODP+)^EM HD(M,5N[1* MTQ!*\AR/)*,#6D'R>:Q_+"@2R$_< ;O4%#$/9?45CZQBOM CM8U<;S&S+78) MR2,="N<"CW#BF5M[,O*H\>]7:@&6+G.%O,\5.14W;PQ]@4;%6N#0(UF.QS6L MB A\"1R(>1T_9K1(\=S/ZY*D^A2H/FXP1"P21V8*0(TV?!+-/D?P66S2B_IM MNVS+$8@OD+RG]@O+.+(=ST*I9C?>=E$J4(4OIN1N2(QF.6D_:[5.FMSF*"W<<-SCE) M661X-PK4X8M)Q@Z_6_+)R<\[ZIINN"/RDR2LUG]RF2W'''1%L24+Q!18QQ(/2+MGE MJAZ)UY^.]0]Q=D %RHXH0154XXM1!DX8814:[8R621J_MEIG%]LH65G*I&.4 M7X]6[LIMZ/Z<7.6Y&.-S;]6=R-ZJ&XWAGX?.XWBD];OPT\-@V/D![7J_=[3> M(WSN:+_<]T>COQT@O7"7P:L"DY?;HX&MSP+C,V#UB&#>>9YC/OL>VY@8TX%> MM#]:'BHN2R AW]0.:L6TXXNK1%1VJ0,HA?69C,^QH]NN;G!B[0G_%(IN\G]^ M<#FK>BW;" ZX='(32B:ORO4Q&)_BL]3CB%6I"%)A;[II,2J ):R.U),-T;9E M_I=,[L#'CR^9J3R[&IA]5+]*>(0ON9BH_")0CT0;7+)77 Z+*<$GH27"72"= MU7,U;1]"]7 [$'SF:S(%&Q@[E-KY\!P=*#%MW?GL ?/XR2E6"99:@-I+S_:( M0US14K;!$7%I3[$ZI%6H;N;@6W06^]"%AB.C99+&"PC-KAI4@+J%F;.I7\ B M?&H0[EM'C&-%IO\PO=>H#!G0$UQ)8S=JX+^). (M 0F7&LD*,2O]6@WI^-2# ME2/O3T/ZA*F'6)M=$6DQ40AWMX;$)< >5GCF%C"W*+\]'Q9"$$[;G#Z[(DUU M(@MWP>J7[HCPI>F.V, &"TAI3V:F;;H>8\H;R1>S7.==D?<:U!;NB=4O^)7J M[2L7QT5[8+F==D70):@LW.*J7\"1M[FHE_TL#NI2+7&)LGE?7)9%"-?OZ"D" MFIP/^98]OU.2],N&KEGCT8X2W,)W(&;!GA#M:UCGIL)3,(+6N#2C?!)'CC#Y MV=[(WGCL23+9W?"SDKOA[=$/K7O?_P-MM5G&C)6ZF>"_>XYI -?"NIK)+V(M M!\0Q*;O:[P3OE03_+B+PSH?Q"BX"&0+7.M,I,423IFXD:M\O8"@/'/IF@GY= M?SZYK!["P@]K&^ FYQ7RD > R\PTHULKFQ?K< Y?BBAX?B G?[QL@$L7UI1$ MUC&M7$+QB>Z6S!UBF)Q1\+=%POWV>%0EW&PN[KKCXB[- GR[D_S1%?[6,MN* M!5G*Q5V" M>'R'Z<-K5>P\2[0MQ="7L.X2/7=< E9*(%B:$CK-GI?A=4%@Q1HX M9&;Z,[>XOG\Y8#NN*Q4RI? $?_U)R53)4ZFD4T&O'=>(,M3C*T<:Y4H-X(U* M)CK5?L>EK49W*.=+1%,\G=)(OY(A3BX7=MUQ\9=F0:@)5Z@U(7Q-([)HF:]J M2.N&#+"]TY;23(D22BU$"I3['D3R)A/WV3@]DZ(\T %&V M,DV(N,JEM"Z(0>R=6BBR(M(01(G-3%5?J9>I8B56NNZ=1DBR(-($1,G--"U9 M%S 653:EE2(7RM[IASHW(E5!5"XQPT_*+L4J[VUF]T\RY+CANN%U^)L*?(@4 M U&:4\"A(%6_QF&H# "X5 /M82A9SN$[2 &4&(1,^/'F!]T+ZPSP#,\GW_7A M;X);EMN?\D>E/:E7M=>$BDOKUI1YYK&KRKF#[ZS6("1F3/EI!(DQES+[YL^8RG:I,_ =,*$N ;6-'D:.OXF\(FIU M #LJ[XH8@?#^9TJ#A>]ERYH!(8 =U8V*&('PBFB*HFO?-6U6;" HGL2]N>"7 MB:QVY(!(LN5DY_5#E14([Y@*F-0U;=TVUHAR,@#@T@ZT48XLY_"=)XY[W#W7 M]8$,TI_&7]*0"&2R.^+2G34EEQ^K*# 83@2(X17)>YSG-S.!W$,TQ6O,D7] MDO2S9UM:NZH \O3C3G1P.ICK))._6#;>-TF+B49HX4,/*-PC'-.Q_L&R_ZQZ M.3"#U"3YZAJ1 7\0=]T0S%!F ,.X( MW.+^-.XJ]^VUG/*%^WUKNG/JZM:=0_TYJ^W%;ESPFB)DLBPI(M"QYA'#I=EY]T5=0&-TA'Q!HWRRMN_ M98SRF=@H1]"U"#Q^H[S"$(%FIUIM]]O5C<\Z =<57ZG&:T97D"^TG,+VVRZV M+3")O#S&F/:?V7N4?:?K6U/3LB([7\) GN=YK3"6YE$M& WHU\+Q-'WITJ(W MFH)*$SE^;$X'% 5&BGW8HGY)_3YOMO!%21SN;4YIF;X/;QRJWCF_C5066S?=HZ637;U^W[]N-- M1QO]Z'3&_$G._B,O27JHA1AH(0J:;D\TCH068J$%:. WY=F\#+#/MXA2/6M_ M>#>&D@KZ*(VX@FQ6GMZ5I RA!:\OR;2ETBU+)[[]^#UQQ1V?#-&V/'ND MTAW# /RF%:^9'IU=[]G\N_;4 WY8%GUG:WV7.C<0/P9%:?,5H0K022Y^;;6N MFJP!6E)7-L8(? 4B4V7*B!NQ"3XLJQ?)Y<@DH>R$DE1!LW2IR#J#@?3UB!+> M?VJK,=?[#X;D;O]BT&WP]057!M*)F_RFM9_;R\;ESLFMX)[3"<>$EI''RO$\ M59KP>?AMP_!G/C\\)E.-7/7"4%7@MU-#-DI]$^_1%%G_U>?32EC^5+H^Q_(O MA]N:!$_7M$&O[LTWMO(GF27.U^=W^K-VHY]XB4-0MJ>87K=;7)M^A*V9Z M>L*7HA#?HI!#1LRD252!5P>TTSJ@0C-&\]ZV;5^W5E[,G, OYM1DL4H%YO^K M@OD/T-'B^&ATJL4Q:F")$%S-S] ?0-RWO3&])B$)J3M/2CWQV(AT.=$AF>DF M2-WI3[L@7=WZ%]&=$D9#$C(.*U)"[K*&9!T^;-=ZDZ;T$2S(^)U8;^2!VMYK M"6]# N@>:I 4"_#M6Z@1R6;%^)U6HC,AK#U4E3S*\>UYE* -1A8=/BT);5^U M1$@[OLT,=>JZU*_&BXF [:F6"$FO_#$L@7<>H&QEH,RP-%8"-KY])Y#_NN"2 M;+ALMSL#87^W&@RMO1MDI,YV=!H6ZII=7(#7UA2_O<]9^B2.(4O,M7]%AJ;I_D+&!//#;Y MJHP6X2.QO$)O3MO MX=UM0:)8U=HOJ^Q?A]\*JT97 ;I!%W$-K"6/RVQBJ,3,AJBLV5"S*A58WTLI MS;OM]W2S2!^_4Y98W:1F1D/\U,B*>(8OX5T)R>RTRL9U<3'(3VVLC&OX\O-5 M$,W.1&Q:'1=C_-3&JIC6:+WG@(;8695I\G7=,(.N'*"A:Z<*T&J8/9+(804 MXSN3)R!(*B9;M*Y_-TF 2'YMOOQ..%14@M-%T:848?@\%P$1Q==LBOKMGF + M:<'VD'CF7*JD51I W,-R)5/!ZUCI/OQ'$QM/.U8IK+:-7[11ZRS!='G2\.$C.5E66( IHKC0V+.S9W/'I"SSP]U5-!I261&VW9*^ MF+[&C?^%:N)290&X2*\@?QEN.RM:#:%QMP,X5LY'Q M;V7]P64%?MX;"/Z%//JS9U8;[]:T?/B6$^'V?<\%%X&][KTR+Y1[USNY!>BE M\+K67=,03'DE&,EYNPN,YL3^X(?7'T^:MI].PI M=0*FC<@+LX+A6YKC=9[[/:'#^UQK_\(K4*4HD>(_ZYQK+0 K;_S1QN"JZD,->T7 MAMS?\)N7&&L%\RO1HE[S$+*Z"Y,FZRX\L-KRF9*SL C^FXSU#P$1)2#A,!4Y M$):3#Q4;9(A^WTA:YV^X-M=_;]T\=[0$"^Z=AYR&JE1W4"HL&U\"Q MT[4% AK' +_5C56+6'!XR0!1;%/0J>ZZ/.XK+,;L'_:^QYMN,=60IT:Z?W)6 MG+5:YRT<=3YR:$V6ZEF'4'P&N?T&4XN=)^]2?EETQ"9?F-)[]I:?\K=C%:%L MNQ)402Z^(T:R5!5NXZH#VA>%**!8^HS1)IP#AFDLU&0?E1?_T_3B?]NY'K,Z MH4O(&@.-?U6_I_8+.U?.L!4EJA--:DZXQ\;.-\X9+7'-MRQ.)Q+BD@3@6UWC MF!>:S>S&VRLJ.6.': %D2/=LUW-\%AC=Z([SR8+LO*VJ_"XUW_=ARPQ[TT]H MKV(MDB(Y;SBNEN%\XM)/ 2$(+8%ID_XTJ!DLFO^Q)MLMGD)*&MW+8M1T?0_^ MBG;G^O:8>KI5TN5)'6,(79Y@C&4!'&IK?)AZ_!]!-3".04B]8]J&.=>M!1NF M.3Z/#1<06F<5&@ON6Y4 MM9^ZDD<\/N=0G;2\6UBE@.VQF@C)1W@M2Y6XO+M996#MKYH(J<=W64N=-O.M M,FO"8"7Y]'6?M$1$?>7/>M6I)R7]\$X+PMCV)G96'WR",GR@'NAF5EJZ?1KW'SFC$KFA=]QZC MLU4,$8UCPHYIAGO\$3+\:%7\Z'Z(#_X-@0R6#XE!7VSV;DO\>>\D]^\HG;R; MEI4I!?'%KXV-5J\%*TE&)OKAWGMLW[U:WDD.BL,:UJ25<>O9 %OQI0HJ94+\ MH<;8@V!UJ+5@Z)_*73=S\:4Z-L:*Y&M)T#YVTJ)NG<_#Y>!:H3IK%^ M^W]02P,$% @ C8*H6M]@\/G]-@ T7<# !4 !P9&9S+3(P,C4P,S,Q M7V1E9BYX;6SM?5USX[:2Z/M6W?_ ._=E[X,SXYG)V225G"W)EB>Z:TM:24XV M3RF:A"2>H0@%)#6C_/H+@*1$2@ (4A31\K J-;'-!M!? !K=C<;/__EU[5M; M1$(/![^\N?WNW1L+!0YVO6#YRYLX6MS\\.8___F__NWG_WUS\S_]Z:/E8B=> MHR"R'(+L"+G6%R]:67.\V=B!]80(\7S?ZA//72++NGWW'?V/_F/=W/R3]]&W M0]H&!Q;O[/UWM]F'N[0['/QD??_VA[?OW[W_WOKXT_<__O3QG35YRL">*&8+ MKP3.]X+//[%_7NAH%B4P"'_Z&GJ_O%E%T>:GMV^_?/GRW9^J=HMT&_O F]]<9GH_*_K0A:_/)F MXR["&R:J=Q\2FO_/+*+B9HITAP,7!50KZ \A]CV7J<'^:SA>W.'UAJ 5A?&V M:$AU<1B^L=C@S]-A@20ZT'<4XBW[]K:!,3@_M(3RMC6&S"+L?%YAWZ6S M=O!7[$6[1GDAZKX]-MQ[H>/C,":(+A4>16="4$@1XU.P%[BS>+VVR8ZBZ2T# MNA0X=A#U' ?'0427K DER/%0.+()H2VVZ!Y%MN?K*,NE!C;!NBG:HB"N1?QQ M4Y/H>Z&]7!*TY"(8+QJ@JJ1'@\32V1@1VXGZML\6[? ,*J5=&24OC,(Y'K]0 M5((Q>8C]!344,DS/(E:K8X.D]US78^IF^\-@@V1S!RM[A,&%(=\=@Z;WXJ!>& MJ$F)2WLV0?PCHAW6(NZHI0GD3ZVY.H0H>C%!U(""XQU"?12@A1=-J J=9_+I M=0B%U-]L/T[,TC",UQOV4_B R2#<;)HB7F<(*.SH^7YZ1&<6G8.I>?XW( M>-CEYD%33-$?" IK1CC8HI >\*;T7^(Y_*A'I_)SX$5ASZ':77-!.'\P$RP: MH8@=ZZG$9BN;H!X]NMU[?LPF^0PY,:%V5;V%OEK')DB_B\,(KQ&A)L4GA)?$ MWJP\)V= IL8EI[']ADK6KQ9;F!@7,LK"_.WSN$61?D%/RL2 R MZ!$'RT+WVH@2Y@+EFF5,1!4[-_4BG.S.G$6I2HZ7G M3&P2!72!7WF;WI(@+I;?O6C5<[=V$%'[@:(]13[S33/0W9Q0 \-VN!U:[P#3 MY, F6'>/7B*Z"V!_2T5Y1R>Q%SW8CN?7-.!TNC/B:8A#+T!A2#7XQ0OXQ#S/ MF:_3'Q!"]VO5>)&LUSV'GK6I;*A./GKV"Y,.G<'\2(;+:@6L3ADVR]_>^TOT*KVV/+M@+._:C\,V92Y+& #D:;.)D9*0_'E."PK7] M'8H)WK#_\7CI6Q2BQ=L4_NT7ST7D)J!JB+\@4HZ^B,D^(?O^V( WZ2^4S-L? M;FYO;]XGA!Z/I4W)?B0OB-ZZWGH_FNW[]5#.18]9!/Q[CA_O[7RD7"ZPFS5: MO]3EJ!"]HWX;0-1;LR@S#FZ2KIO$]:3K\]%=4;2($[^@FWWO#6(L[+U1'BM:7;[\@_YWE\8V&>R^,+U25$6?4CR+GPI('J3:(T5TJ<9EW:3*=X9V+@A> MR[F)E=@?4/S).NK!BK!5;!F'M 7>)">@-Q8F=(OXY:=_.<@\_<.?^T2I) IVB%@* M=%@+-F51":P!2H\0$2^G*IAL717#F--J/;%@/>KRJJWLF*_"X@XAZ?<=#I@K MGB1.9R_\W-_-Z7 "[=: 3'FDA(1 (\-&J-\:D#(:\Y#F=%U'2+@*G7E]5W3. MM%W9*7"=[Z/ 6:UM\EE/\87@EUNI@T(]!F.4#*!1% 2\B/[#4:+PH(")6V%"XE10%G M3F45 L#ZI.5U];1'IJ6*GB MPK((>W^7_R)0Y.H-4]95:6B8(4+MEP,("#2O M[S7DA#6(S$\ _2'8Q!!U#6E&9)%Y'GT//9E5HH;*=FT9%!"ZD@0#L61Q[E;SU)W8\56AQ"+.4M(-$N M=4M6:%%&.PPW915AXCKT'T6@R@9+ U+E@T":0PRO\:)'Z%:XY(=TP:Q1PJ2\ MDL 8H"B' XL+CC!+8\K^DM_RGPII/RFM-5NG7*C(2Z>3T5\A>7 MH%^P7'(=M]L8DKL=V%W[)]M_C-1(H/F\N\3AG+U* "3=S N0VN MOSO 3.P=WP<9V@?< U>IL)<<(K]8-SZ$NS1IUMY"T/ZD&N(]\*T+&&I IIY20<&@4ZKX6K)I.\]JO(RIL!PON--G@[<+UM%(;/?K- MKZ]51(KK\:#@EBP?CLT9S6$@S:8'1B/B%4V.:^)EM7)\.Q2E_-1HF7*V4DM8 M/#E@)SU[UVQ=SAMQ:W-SL(X"X'/YDY^5%1!@L[/RP)#FZ3!(*:\U5VNVWEO9 M%5O#XX_&O#VC!ST^09N_=94"-\&KXFFF$B+)":<& I#F,ZO@YYY4\!M\=?S8 M1>X#%1#S]L516@UR8). FA;[ H#]G;@#D3/\\B-EKO5+C@1&1M(%1!= M_#AP,7R +@W['W_U$*&27>T>T1:)KEM6:W2Z:"@;F61"OD;G*9+J9:%*VV.6 MZ+4%,8%U!([/8XMDBBI&+LQ7O1$A34)>KSQVHIBM*BP2+[QXI(#97\$1PD"@ M2'*G2 DEH\K\?% + ^M25KQ-).@RN3@DZ0JL!K.G"'@56[8O"@-Y>M B^8N@ MC>6Z%S 3!U?*X HY[T(X(%JN$!/6IU.J\:?=\X")O%M(VG]XK,3W\1?^YMF! MEE"2A%BM4@-!FE=)GLK< M_MJ+HQ4FXNJ?:J!"(M I$ BB%&E.;G0(E$L#9QIRE-QYT>LIE$G<'6 M9B-WI 0HZ.IVXJ8F0H4DHZ+;E94(%2MZ_E;%^I.(>G\Z8[3W]VC M!2($N0Q_YAG3LHS4S:2F@:R9D>3N(B*2M&X5T#ZA6PP$R>8ID1?6)%5MYX@' M29*[Q9U#FANS^"5$?\6L6NLVO=0MF HET'_>'G%, QX&K4+]+X6O0N^A1?69 MD>BU/O.Q)B9'"MC4-#R=+J6H6W-L::'<>O;W'7O1'I$-*Y0C,9%D8"?JH0)L M*U5\?REW_]S3,4;2N]':;86$5VI==XYHB +70*>UB2+'G\V0RG@;=L)&7A+W M8&[BDAU%#"Q=8.7@( A5;B9E/(=Z^'1^E8B0SR_DZ@0-E<\>.:@ MP"8>EA77$,$)5U0I9%L4I<,^!^$&.=["0ZZ\KH8,5DR9"OJ MA^)/RDVCR2&D7&UZD',WIW*MP)=#OO4=34IM?DMKFDJC:\1@O?'Q#J%9A)W/ MXR_I.[1LKQ[,QI/#FV]A?R=)0SFC)^DLJ-D7./Y)\URJ-J_)J6('YZX%YTD8 MUT.Z]36@%I7Y]:$*=69?F2F\L:R8VJ> 4GT4@QHG3CD)1:":!#8WN90\QN7C MMSY/1 CGIX$,4:,J_^@%:+S05GP9N%0[5 V D/O(WGP5OV>@VZP2^<<-SYTH M&C+!U3!J?>K(2-W;K2GR*;5W8QDF;W"APL(T36]^BE+!@K I4ODA)@ "2J=P4AL#:9 M#>X :FYC'1S:7_.%2!?6>RFR1]/@Y[='G*,[Q6?^H?BG%"?UL^Y[[^8=IEM+ MP(M&!B'V/9<]3K+_&M*="*\W!*T8X:R&'DLY>L3A(8=C)WI3/F7(CS]^__[= M._J?=7-XLHW^?#<>W0]&L\$]^VDV?AS>]^;TE]F<_N]I,)K/K/$#_?0TF0Y^ MI7##WP;6<$1_'UC__CB>S?XO'6;M!V&!O+W4Z' ?.*M>[!#M7Z1O]U'F.5O4 M9$D-1T!OST?Q_&?.Y6 9>LUF$JUH2^+$+^AF/ZGR"B^:_V+F9H$#,?)'\[TU M5I<^QUX">QFFY]:O=!PQQ\MTYHCG&D^E5V(\7:A"QM7OWWWX<,LYR_[R9X_V MM(L\1_S(@ACD0GSD1-ZLTT%*F:AXEQ[+,+\ X=!A):$K>]_>,AWI_9Z(V>E M KA-IKX_AZD*&II?&.IL$^RL-Z0_2K/]!("7X;[M^]KK[PG6A;2WHU7ZV.*B M"+C13PZFHOD:#7P.2N6:/-EZ^.YC:I+\\B8B<3,[9*6DDBT*8A3V7D)>#UB: M3'(,9G!>5)/1*>H;XO$$]4"JM:3P0VC3/\$$JQ&&QPALTN>;/T>?&5UZDNGFAR\37%].&?*R4F M)15VR9:KED(4.1@ TZ5,EXZED,,>#NO9Y4M6E8+2<<]J66#^P%M*DG1]4[8! ML!M5$4T)-7!$-4,^[6[Y"06(V#Y%M^>N*8,99:P(F%IFNHT!K&M5A*=+%API M]M:81-[?:=6WX[*0$NF5-6I3:A_/EUH9.7"D-=X@IDG!\M3_>"0B(62;[Y'2$+9%.GQ@I4(B"+BO<01 M6P5U,*.;.+O=<.-5__IN? ME)YP_Q6'$6-91OF$':7H!P$#*JK.A7 X*EK:@[J:.6%N A'A=E!)%>.?FM[ M/D.5TCVS??0<$&3[WM_(_43EH]AOJG<#P*]X"46JS@@XNJ##C^86*.U> 3@Q MVUQRM/D"1W$$5&042.,_BA8 ;)E+"%Q),QQAGCQ=8H>>4V*_EK0!X#C5,TY+ MZ NI"K" 6')::E:J7P@R^6>O>ESR&&H!Q=+9L]L3 D<[OU)9?49QZ M6T3L)1K%C!'C!4P+0-A";RFL2=^5"KL)(8-84L]2 M\=KROP*YI\O1"?[5)"_O!<"2?6G9RXDOE?[/;]N^;\3K)ZRP3QD6#OZ**7)O M"M)07C7Z4.^JT6P^OONO7\>/]X/IS!K\]_-P_L>;[HK1V2@FXF/')QPPX:KJ MVJK;7,$E)$U*S%JY1934-6K$L&9O)E52L8*1*Z;&M/=EC0.^W@GOX2C@ !@L M2ETZVYP^#.WGB1[2M%4-(&@ VA+8X24HR*9D[XDWT[ MKBR)WBC%HH 'X'S6%HF"#,-9Z1'%&+F9AT I"QDP *>PMB!D-)A=KQPG7L<^ MLY-EWFWUVJ7?'H"_5W\=TR>KN^S97?:42D=VVCR1SBD@@&U?5TZGR,-Q_.BZ M=@P[;\ZZ_U?']V+2[$KPU3>[,G@ N[V>0!0T-"8821V&PT,2O+I.=CAZP"1# MZHCOVJT [-]J[FM38EX&PAE0L:W!8WI%3:L@G,:G23.;^# ,8^3>)Z]C(XJ; MR]][+Y3EG:2DL6J\JGV^>E]7$QZL21]X82=:*:5 ;G37[ V !^XLM=?0B7(F M@-<*SHND(C='+!Q\1<3Q0FEF1XU^ -R6.W_J2V@#+^!$1QN0L+(CX)-=2;[V M1+]6%> LF*(P(I[#8\D4JO?%)NXG(L][K]D7@!N/Y\]U!7W@A9VH:D/2+NT, M^+PO98/VW+\*E2@LY?L4=8+DD8/:%HA66+OEY3 %=>:S@OI.0 E5RB M<1G".@([;@%@6E;11:GDCNF"([##M;APCB41XRR[F)&\9E>#^86ZO!4Q192R MT(M06J/[V[?W5HWU@$+^DN_-QOR?,W)=# ;C.:]^7 \LGJC M>VOV_/34F_[!G=WX^?1?#CZ9$W&C\.[X6!&N]GC9/U[ MBE574/Z<:1HX*(B2"BI3+_SYVJKVU&S M]I>XLN21*DO<$3' 1)0A5VVQ.VD&=L43:J!:8L>TF4YF9!8B/8DXR-LRM2O+ M792 0USM)-IWE+4H(H&L#85* \\5/MI@)70J95VR);B5R4CB559,!Q&S\'+Y[O(_

7:5DZGQ!>$GNS\IQJD1F-=@ . MQQ5C,QI$P9I*772FB\Z87O>N/3IS96& !N,RK84!0A+E)$%_.TB!/6Z^G_2' M]=?V!>M9">P5./Y+*&B?\XF7,8^)<)DJ@36[-FFIT)[[WA&N,3@.#"XV6NNQO5)?0T04;7FNP03(1LJJLZ6XSPS%QQ(4&9)#@8P9* M[.$X-:\ZF'/F<_1G!7,NYT3T0GNY)&B9/DIJL=ROKOC.FO^U,\-IFT=7JELXM=J$S?AP^9V MU^]>M,KN4W/E&:%(G?>NU1+ /-+V:)=3 RKT($7WL K4D%R^\36%([0(N@[Y MU9#:%=U<4)-A\G@;LMI8XQ?VA,^8/,3^PO/]#-L:A]WO58==.I8582L9C?+5 M2L>S[,-)N#L =P?@[@#<'8"[ W!W .X.P-T!N#L 7\023XJ?>G_S)\6YY<7, ML_+C;WD[ '-(TR8OIP70T4F*;/G!5ZOI]1Q[M3]S??>:D(JMKR:Z_1:U( 7VW!-C5;"B96_:J'9]FJ>)M.D!X[P4L_3A&'* M+H"P0X;K440?O(!:OEZPW+]C+!%AI1ZNYJ&I2E29\Q@>RN@/@P4FZ^2 4MU1 M^ ^YH_ PA)4;H_,,UKRC-R'8C9U(E4PN![L"#Z <^=:O0Z9H,(=)BD@HO0ZI M@#5_'5*E,T<\%Q%P@9N0,[R(OM@$/=)Q@A#10:>(OV.?C=U;$L051'XYLGH? MAN]+ENK3/F>R.FFM3XXG^U^89,&O4+(*B8"NH+B$#/76F3RRUVB\** B78$4 ML.97(+FV9/Q6H'^!]:?G;NT@0NQ0A BUSX:!(U]H%,"&5Y12_=BO* H:.L=R MYUA6G^ZFB.E44F./6_"!@\8OOK=4^50TVUZ-@UF3GL:.YI*5ZPD3-%_9P:^V MOV!W*E38"&_45^P O">Y#E%P_">B5"(AUC/Z;[CP6*W4"4%;#\=A4O&R0JI5 MU8ZOQS_= +%&7I4[1(?W[J#JEY(^B)Z)>^R-[@;6[-?!8&[=C9\FX]%@-)]U M;ITQM'K^))C2ZUJDNMZD[ W]!3&F>==:_C*0T! MEB,<]>G?V,^]*+]"W%.R>VNV,K-(K!,A=X[[Z [3]NR7WB)"9!R@/Y M6P\O M-AKX$_;%.0!'I7J^C[\P(AXPN/-@0Y M7O9 NT;JE[+%U:1\*:F (QY6'^F+QZP+H2P.GZ\F8>N ,APN]YR_8H\@5_[ M4O@[\I8KM@YO$;&7J/3IJ?.ZO)JLK?/(A*,!F59JY5#*@-N4V@]-S$&X69*\ MM#Y[;.01V2$KKC\,MBB,&*K#@/\MO]7>40WT5!*KWUV;,OWQK)-C;1+!^/$G M!&\0B79T/Q[0967#<*_AVS\I.";U[=]8V9"6';C6?M#.Z=_(%=.$M1,JZB@O MTM(WQ;1:7E$H0(L>P]>!)1@R_)3A :V6,.($%1122WIY"@V'Q->;.$)DCYG2 M32V%!A YJ*"'Q6BVA"2S-DR:D\JR5],?[]$6^9BCR,N!J!]+TF\/P$]:4W05 MB#3["G%,*&-CCNB#]Y7]I):>J@$ !V9-<:FH,BH?;N&NL._2,PW!6[XAJP6D M; ' XUA30DJR+I!>]VB_8,*@F=D^IR<.]2ZDV0: '[$B_S4)NX $-)ENG,\2 MMV$=/C?.VB;2$L.(Q X;G:7*X25=&=4+D+H) !=@;6M,1==%7HG+!KE?>+-= M2(]CBG0-O28 C&$=EFS7]T2@%U;4PIJNKK\F2Y_ MIJHKYA.1^[?+&@&81WKR*R,$3H2BYSCQ.N9W3/.Q9/JSCP1!92EATOAA4]T# M.&SJQA*;(AF.EDB1E-<_4CB0BRU>KB"*BVUZ((JPP.>K*:':NIN8<-2D6CXV@"/T2-WCIQ5@'V\W$U9 MFJ]:9*6M .Q\#8BME$S3CTN[:&V3SVS'YK\P:M2"*VD#P,74@-A*B#3K1Z)[ M>EE"PQ$, $]1 T(Y(LJH$-AM:+S>H CMJPFJ):)J "##H0'QJ"ALO?C?E)(@ M*^^:^]:^I5[F%A?64\QA;(:30M4^^6J^5.*)V L<-%?OD[)C':^E7#SZ;K@P MHD#B^\*>140-%$[]JF9D\;M!&[*,D45$NR2 UYH$(*NAFH]>\B)JX\7QQBOR M$^JU W!VTJ@[J$<+G #N-WTU^,QP_NNX&JS 7Y624]X,P %-3Y+EI%R%M'+Y M)1IE+NIT!.!,=[9$I<1=A8SE:35EC0!DPI\MNV:?%].P8L:+;)4_1N7@^BRS M:/3Z ) .7]&ZT:,+AK0F!(64,/;A*/);7WJJ/L%7RFB(3AC2/5T4JS8&7P6C M*D$&\@_YQ;SJ^84?3VM5/PYZLT%7F?K5N8EK/?W5N8D[-_&WX2;NO)N@O9NC MF E^O$C>ZTRW.Y'=(0&\#O^E!/E+&WJ/B-HN:$SW#FK=!$L^[)!QR?;GB*S' MB^Q!CSGM)F37_T6']C;!]Y1?=O\_"/C)I;R6)6O9NK<4%6 M)^U*I,L,>U8>>$JY,*&6H?Q&8/5NKL8=69TT.-+]%-N$/128?R\K#?0.OF[X MD4TB4*V65^.6U*(&CMA$&\;I.B*1G&YC\$[+J@09<)O,(NQ\9ALV(B&[0QKM M*KM0OC]UH#^8SJS!?S\/YW]T_I2:)]C9RB946S8Q<5:4)[P" MAKV6.%A4P%?B<5&1T+K[0(R,],UC-;AY)TVY+JFE<,D7V-E"=#(@A7LOO^%7 MWL:P/T='?0Z/K)=2TR;;/]9@^T<@28+-L/UCYVM[[;ZV>GN"4&%Z<;2BQMO? M/*^#GJ>.O0B56H)WUE6B!LZQ1(QRDB@Y#!XP/?[*O#]Z3<&[\ZJ1 T=R\>OF-'I?U@:F'-_O<8!)T0B/YV&5^-JTR'&@*=FL-[X>(=0'P6TFX@5 M_@I'-F$NI2VJ[+3YQZG39O T>1S_,1A8_<%H\#"<6Y/'WHA5U=J/TOEPFIAD M5'#LUJ?JA98"R!7X;<2(FUW+4E34SZL< <&H3"+2$!&7+^B-&08L$$2G/!N+ M/8KZ_MWMK:K@L (<0+$0L3+DZ@HKT+\ =R>9U;T?[KV"N2IH ?%$MZJL&^) MM;TUWP:K8](3!"3A0$;A: M-LMEAH)A^0@5MN"VN@CQ1E4G.]?QD^68(Z&L>J. !V!I77(BY!5!P06CTIRB M,"*>$R&78_9,Q1!.9\]*B9:T 6#CM275$DYT)8^ZDD??\ET6N)5Z*MYE@52I M)WX)T5\QG3.#;?KVEL):ED*WOP24A96D=K.4!FAR4)O!H27THB1P$(P2>Z-7I.$C'&Q1R/26*7,XQY3&_'>6M#["T1\HFB('+P-VQ:*WZ$]^=HS$79,(WH%G)+LY3\/F?&)SL:E;;2+2J@V=Y5]OF#$#%Y/DA M7P)$V.M^S/0;S,:39.T>\I^UTFS4';2J$&>Y3JM0=7'O!?I2LH<^!Y3DQ':G M&/+,2EG1Y#,Z:U5Z]6NPG4'AQ1T:_ R6SX8-4WNIDAUY9E^MRO$,[V)M B\M MQL'7#;ND6(I@1!FB*$XCL+(#ERJ MK4EU2]+WF1D5K5(C,IEBKR@>E1 M'0LK)>\W[B_/R'NP/?*;[!!N-C6J,[W7KLZT']?*#6PM,+$&L\FD*]G4E6Q2W@;K2C:]DI)-UUE4J%[! MIDL5%>JN:KW^JUIU;)"]N9';8@=?-XA5*E ]&77) :_KNM:%F #L2%'GQ*2B M\C?LTVY\2N E;@16&?FZKG!=FANO5.VF7OCY@2 TI$LXH>>MMI1./"[XRV(M M\N*5*EPVO^Z]K>?2TW#;JUQQ7/!7VEKDQ2M0.*$K\NAR!O]X3RG>N*7O#*'E_)455/9\J]@' L5-9 MD!5)["("741 (IW4C$:N^!23:I)$8KJ- :R5>O+4)0C("6Q_<554-KKGT*6@ MSG/F_WCW4?]EK P#ZX""Q7&P.!)6AD5W$OM6GK.H?=KJGK/HGK-X!<]97/D# M"(:?M6C] 83.DGTEEFQM-_S@KY@:*,. *E[,-7D^!77P-AV??@J(7K2AXBEX9O]=?<;QYGGT+BIZ::#%!(3PMKX;<1AFKP/T@LB[]_R8):K,D!-3;#Q4/5?XA],* :/!W'HR++P5?'CZG8'N@\8=H>1VF6^, F M@1&+'2,'IY,R A\D%[B>$E\3>K#QG M&"PP67-DIVB+@ABESQ'3XW%_]V3_"Y.L7?4CZ(^G1]"[Y]E\_$2/G[W1O?5I M,/XT[4U^'=Y9P]'#>/K4FP_'(PJ5HF(=<+%>=A;'QMJC%W-A'[/HO M)RAD^C&@'".L4F]&"!7((PZ6CU2CW%X8HBA4'FC/[+3M.W[\P8.DYCBK7-'? M]5'@K-8V^:PXQ98W@W,4;43(Q8N"9<0;OK9YC%Z&G/+\6=X,QOE35V/5$CNF MS:QUQNZ- 3K'DRH/:7 M.5FB>V/+G(S4UH7"W(#C10$5X5I6 FMV%5-K5\9O!?H7@SLM\# NW(&W@$(5]1CX![S2S\8E@TX*.?F MP 0W/S;!S0&(4U+%S;4L'%2_.V-!HW,Y4'!/G&FT7%\HZL3D/;CX927RU4T M.$&:U @UL7"C1F%_=_C<(\BN$2PZJ6U:*5@4LA#1 0>+(=&%B*XS1'1=CC>3 M@:'.\=8YWDJE--I=G_--@RA84^EZ(^8F(Q)=Q+R+F'<1<\ 1\Q+G M]SX;[[!>V[XD,*& ?:7Q"07%[4LJ<2_D,9&&*12PYL,4I2JWY[ZON6Y$F27""#]Y<#_] ]_/L^.F)W_8#AT4:H?C*UY? WQ\/]-)#QD'PQ' M+RKQD.%KB(=W(PD/V0?# 8Q*/&3X&K5 1CAX5I?Q+T 8#F=H\5:(>!?-Z*(9 M5QO-2.E,;GTP0]N)?O>B54;J,&"W0KQ@R MR56'MB2GEF\ZM'5$7 ,1KI-W(_0B7 R1&Y]A8B6H=*$N0*&NU^K(N'A8JW-D M=(Z,SI'Q#1X@ZSHXN@-D=X!\70=(JLE.3 BK9<<)D<_4([!7=O0[)=# >6!? M!? )V>QW7DTPP2?]BSL.IJSF Z>+X=>I5+(MR^>W=[? 9XZ VGUF^]Q^>! M]33HS9ZG@Z?!:,Z?\$Z,_6QP"P>6;>T1L#@&5V#WPR_3MY=\?\=Y?N?;H:K( MG@(>CIU>6B)/0871376/EWKN/0?X)42$WR >!ILX8F__STGB=*F69Q MN>%@I&>4*K=0)QIGAE&5>L(!VCW9Y#.*'N+ 5=O%,F &1V7GAIY59"QP:@@ MGV>?\)::&FQAN\-D@Q-W(K,W>DM$243AH2J34LJU>@)@=K6I K5X9/C4&R'= MRAH26 !N]S9E+.$"# N@O]O_^*N'"&7F:O=(SQTB!VK5QG#R8:M8:DJ28 @M M?WPZ15?/%M/K YR!I:&M0KGJD0M#O'RE"3E=M\KU5=D"DC%516&%XA,1"$Y8 M'RH+ZP-$LZ=)87T (:RN>"YD%^V=':ZHOP#3 M3$^J%6B"DY_3V]J>S[3P 1-VRR'_MLI+=/CM+G%$2\19N1< QPG-RL95*;L^ MT1["#&=*-]_1U;RO6XLT=6\1UM&")APF>MZR;BY1+H: M4;*3PN&**-E^2"LW9A<7:P#%ONW;@8-F*\2>*'.2)]GDGA1$&%W^ M1&@I72FJ!C#\)F7:5285$&X1OC ?IR\H3]K*%@#<(N6:=K(QR:CICM7=L5HO M4#-",I-;%F;U=S0JY-H8G++7B]]J+$)@]<=I_*"]*0;65S_/8T:>UN_/0TG"S8>C3X/1W7 PZVSO<^^*S!P4V%1IRNZ)%.&NP,I68-_^?8]T^.<@ MW"#'6WC(E=_WD,,"NN\A4IL]U^447* D[Y"N)>N CI+8CXKW&660IB][E"G' MOD"OC( +<'42$V=%%\OQB^\MRQBK #9]V4.;MPH:NK/%:SU;2)1_CLAZO)@0 M[,9.]+M-B!U$.Y'B2P#!'QI4R,,Y-)Q.28GJBP"OQM07(6_ BI^QZ_)HZ3D3 MFT0!(N'*V_26!'$"V"&DYVZI@M"#!C7RI\BGP"X#W#Z>S7X<3J?9H.N!_>^GTX_]7JW?_6&\T'LSD_$DP' MC[3)/6_PAT7;CV:].W:CO3L?-'-X%TN[O\M_47CKJW1P!2>+.F09]KXTIU6 #SV;SH,1-GR>>T8K&2P%Y1#K>$ K-Y,P=LF)=P1'$X_"4_H=4OE%;M!<;B MI52_0MY,5?H,EZ'RJ7SX39TMRJ&N?F2QI!& 1:ZFKA8K4*FI;'WS28]Y8S)# M9.LYHC[6D7 M>8["%WD"8MB[6ZH->W_,">:=W_&U^AT;D YV/@_#,$;N?<&IFGL[S=]3@^ MRVF!(S!68BA"9)UY:P])#XFN2>15WNQJO*C9[]XOG<2,=-LTZ9T_G'.A"BAPT ,AUVNH4J"_2W= ^\( M"!U%6LO;%03I59,T%WX8*Q9$D.HY66+'"+U9$]H'P.4@@*8U'2 M6X[$%)@NX"PRS)3!DI(V %8JE58=O;BBH@3$V9Z9SRQ4IS*LA*!@XB/5C"HA M+: DH3:C), PUBF54JFD &*MRNN1 M3^$ ^.OU&2_ O_5([92%Y261\-RW]I=WB:-6:WD_0MX,4Z6Y;86OYD/<)QI0 MX* QQ7RB[%C':RD7C[X;#G$+))ZQ\0C1]AEI?U4SLOC=\&TE%2.+B!K=HGZS MB<=6'7;C6&$KGX*UOY!*PB^5[.13.L!P7VD?BP!AV,8R!9)Q'81-_( H2;;/ M"]3O;^#/OM@;AJ&ZX*E.2P!6LURS"M5-=:B!8$*/63UY;[F*'KS #APO6#(, M9W@A]@Y7;@W W-:3F#9%EXC9^_RYI@CU[9"CF5B3T@;G ME6I0011:_0!(:ZDC&RW:P+AF]I&>DA3-DC;&LC6U:"F+,EYM#F>>& W!@=AP MSI(8I,2EG/NIW,$&8JNIS/H" 7 XS_ 9!B&=<6PF\M=E9AN";'<_W&F/+2),I" VX]#CRD&G=LO].3 >AFQNZ/, M15(Y _?C:6V4_O-L.!K,9JPH8G\XZK$:)_3/^S'@9^ >'M[.>-5S_HJ]T$NK M.>1^4Q9$J=Q-RS6T3[%253.708/)UJTKMD)A;1F59JN="[!B/Q*D]JYKM(/A M;"]1Q3()'=%T@6TM.:?\[H4*)]0I# !_N;;J[+>M4S*@Z7Z9*TG=Q)@G28>2 MPMFX\GIV??ZEB;WC)2SF.-7*C%1V)S:BMA9[6BOY(KN^6*T+ /ZIJGI0C4 X M)S,!G7 M9EX&WM_(S5>J&7S=4*,!L2H4CYAI]P&L1">:&@2 -ZZNJC3% M :E*G_X>6! MP_-?^BJB[@6 ZZX!'5#3",/KL$>(KFO\G9P,:::8Z1UECZII&,9K%B*H[)HX MN1PL<4TP1"R.B8475H*+E2%CV8%KY="Q4GPZ-P80-\8#4TKTZ&WYXR-VL/0H M$HD0^[LG^U^8W/DV15KNVJC4PZMR=U2BW&QFFQS3 YXC>ZUVB%3N!89[I(:* M:TI93+79.JC$=M':)I_5939/P0!X6VIJ::$PZ@E=AB/A6^3C#;4@D;,*L(^7 MNRE+.E(+I[05@&-X [(J)=/L9>JTW@NOA\SVA)6W48M-V0+ .;H!D2E)-/]T MY@E9I4]GREH .,LV("XEB2".IU<7/9,LAUWTK(N>==&S+GK61<^N)WHF<*H= M?+E#EZ+I+7@^IH9_+05Y"7F]0'UO:F,# C@2-.!X;8P=H!WQM:GDLVSJ&8+FB8:%-#FRE=%3'TE>IK3 A["X5#YH(I;6BM=&A *^45ZJZ4 MK=^ !D\(VMB>FT: *3P_7R??VE9I-2X O$VO1,?5?'Z=2C\A>(-(M)OX=A"E M.]4F-=LOK>2*L0'XY*Y7J15\?9U*?'![MK$V%T8#E 1S?8I:X.3K5,UT@\E_ MTS:5Y@<(2J/'EAI)KC^_3:3@)>F:__S_ M4$L#!!0 ( (V"J%H]S6D;*9( +KI" 5 <&1F&UL[+U[<^-&EB_X_XW8[Y#;NW==%4'95:[V]+3G<8.2*)L[DLB16/9X M'33(30(+$(P$"R(/JB>AV26+F>?&<7[Y.GOS7__6Z M\\@S#2,W\/_M3Q^__O G0GT[<%Q_\V]_.L3KBW_^T__Z]__C?_SK_WEQ\5^7 M#[?$">S#COHQL4-JQ=0A+VZ\):M@O[=\>Y_F_?PW^>&#?"%/2C[U\C]]_^M(WC_????//R\O+URZ>O M@W##NG_X^,U_W=T^VENZLRY._OX[<]_;<_1>YN[P%7_K=M M2-?%0GIA^ WT_\:G&_@J0LI]R^M'7F/H.=1(-@64%92X1]Q4@ M#*0#.T?/ _A,\?^-0%\+QS_##!?S [<1^^=M5P!!F^A3% MH67'"24N_K_]J>CS9M8 H8'6-,Q+;H5VPHO]6&,'V>(;.V#AOX\O//G%\.[K M,-@52RK8!04?_LU[:O[%)JKD] AI%!Q"FS;Z1E7QRRR=BLA: -Q3_^+S8P.9 M__TZ&0PLWR$S/W;C-S+WUT&XXXCYKT*,'ATK$4!ANK*>LO!6-*]HBM?=ZO1+ M/*^L'4XGK)7V;']4*)-?.>W_;<09&3K3>4QWD9X5U.:CWN@^R LFM>5M\3O5R7:';O843/K;K";)L]>$0(#S@ !I:?N3""%Z+?P5-\?M? MF7XG@^Q1.]Q>6"KM^8-O2GDP$!1+[AO7H_>'W1,-"_0N:(+7]Z3V(62>12,RM6,"E(D@/92+/="-"WM&?GQO[8J&V9)FV%VM6*^\ MN^7;8':Y$DG;NIW"4>V!= M+^P.J:5UWC\KNV!V5SW!S_3>'),)X6Q($!+)B@"OH5QZ9;W.'395<->N.%*L M&;7+VV-WXQI-\PYV:5N&=ZI:0Y27X@?-]ZX0^&GY+O%?MQ$:Z"%[_."KF6(_'( M4^T*_3%K-@)O+!"V*U\$TC"> _&!_9#/)1;A,@R>7=\NGY.6-A^)1Y;H6>B6 M1VU'X)ME$G?EH.F,,^$PL)NFTH:C\1#"W4L],][RO2(\T"4S[#Z6&%$K;U*3X [6!7 C2 M<;WE-O#+][P+FN!UI3)]$G M@B)-CS_'ZUF%FB1NE?L0IT\5B]C:H00U(L@-AU.S5WO+)*8E9W(ES?!Z595> MQYBEML'I8Y62GGD4_$82JH.>R5T=PI#ZL4AO@/AA:]M#46YS37.\+JBC9WYA M6=P6ITMJ27SFXE)2)REY(N@/=VX<4[CQT?$ M16TQ^VB-Q&Q_ MQ8*>Z7:<*$FH#N5LCSO+\RX/D>O3J'RL/FZ%W=D*M;[6BX88/^#V'P$F^O@MW>\LL1KJPU=N>KU#+OA(5-,3MCM5%I@]KU#.F-U42^YS%]&$*YKB]:XZ_=)\E))V.'VN5MK6>2IR7UI0)D#:P*5AP5W<6;YA?ZLJ M#%/4%J\[UFIX?&_XI"%.AZP7]^R;P](EY4UV3GQHCX1PT/-'M>58O/%$NV)? M3)N-P1-/A>W*#SDT=N*%:RMZXAP/T<7&LO;"%:D71\E?,I^4?_@;SY<&<1;K M&]>W?-ME41>(B_4E)00;=L7IM6WT!S=NT@^?7[>2OO448'%_/;M_G%T3]M/C MXG9^/5VQ7RZGM]/[JQEY_'$V6ST:]?FBXH6EC4;BQR<%"XM;C, WNRE2F)+K MJC+A61YW6U*AL++A2#SO1+="[[O%6X]00]8.O/"VN_*#;5QQ&D4TCN3RK&:$ M+VN+VR$K-51]LK A7K>L%K?U/A&G.DD3R7Y-*!OQSBLKVDY]!_Z9_7YPGRV/ MR11-XRLK#-]]0O!OW<4OV&F0;:-I1DBAZH M35GPLX71/8V+L[\ MP$L^9 W%OD+JN#&Y#:)L7ME'##_3\"FHCN)A#!(J!O%I#)<=K9Q%;&$1CUF$ M&@GW94CWENO,7O?4CRB;8"SB+0US*XH2"^KUQ!W\#;17,4"C&UXH:")\VP"0 M/(ADPF>4G TY6E4:&<&'M 53")N@H";P)8+:HLS[,4"06QYIBVP B'(OJ4= MAM_RTME<00]HM= U$I#JUA6' )VZD.LCN,Q'T#(,]C2,WY9,CYCA"&Q-[&'M MPF93I=A3V05W?.GHFY\IE+?'&WU:4K'DQ9MU"8,)82P,30H&T)DK M2S-E_9Z4K1__>U0V&?AU51X$J!9,& NNP=]2)N2#N]G&B_5G-O$,+H+U!6,A5C-&X&HHK3T@3\)$Z0,L MYN1LRE D_Q $SHOKE1E&^1AW?![KH89B\AG>J#N1L*VK)83ZB*)]\M15521U MILFEY?%]/2LF%!:Y:R+X]Z?98VR%\="Z/=&-Z_N #;UJ6(N H_! C9WHSO68 M$#LYKK9VL ]M J7G?LRT<)\\,2)%;&(Y>[6] ]R:K$%PS:ZXT;V)_BKRZ_3# M.RHTDKZMGV=,TMUDQH>\2SF1A-5[(\ TM!$,S\>NZ9J&(77@A9\=75FOJ=8E M]JGL@#NJZW558[F\-=X(UI"Y]?T629H(VOQU'26 C<3J$.K&3$_#,:H<[]PS M+Z\\\"AKBSLR*S7,[7(4-<0;C]7BME[?Y\YB,\)&-B/[45'L0HJ31C_P+\R? ME0@5*X^'T(=97H?3@T6\@70DWWE'B09/$#L*#'-A<.M:3Z['G]'5NVQ2V0%W MN-3KJH90>6N\8:4AF:36[K6\F]H&LB^F:[O1>\4?I /2NFSBGTE)A$IQ_NF-367 W/ MVDYX(U5?]-9UU22'BU"P($6CC9$ [E]W%LOA@:EL!SM(RA0/&T.:1F*+)^K3 MM6OL_@D(IQW<5>UQ!W6MID=C;7%CO$%<+_*Y#HPF9OM7]31MVLN8F4^H2C1_ MJP[6VDZX(U9/Y_*>&-74^[.LJI2#F;C>#"U15J5$L+D(@UL_EY/0*L2MO5&+Z,I:CL U6RO M]\Z*X9'%TPGN4&-A'\I>Y4=Y2*+T0']>^\'A^AM*$M!>9@R^FZD\X>=,M?F#2\=I:+^C3IB-9GY=1TP1U].OH6;'85ML<;D5I2G[L/ ME.7.T?XS=S2WO?K1^#8=%5VA8TAA/5%[V/G MRW T]Z_\O9*'I\Q_@_(](5R;8+WX0=$^F)*P:'I97HMRI8UQ0UNUCF7K\S& M6(V\7:W2L^LVPZS7:_&K3[TK5^E6W\JJMQX,;W@H:M9O^: /Q )M2G81\89:D9 =[!N:WB[L:)_0 M<+CP]X:W@>LQ'8"Z(#^ZCV::XN M*.,.SPZMEW^HYFRR>.&@2^7:AIXJPU=$2,%&:2X'3$6%)!/"9!'O,"AE93-Y M#-\068;RD)YK4_4J27%+W*%5H=U1?>3C9GA=OTK8,ZK_RL01^70\)SLA<[9X MHF;*Y?2K9B34_+\_?/WAPX>/WY$]B]%GH?-W$_8G$O'@)=8AW@8AK";90CI( M_NIRLX@P'US_[:>I6SPP%NUW@U\9N03/<@5NF5^Z=H*,V>$.V5-+6 M21F<()Y@[4O!BC#]RX?B./V7HR#][N/DXU\^\%C][L/D+Q__,B'LTSVU8_>9 M>F]I_3CY^$GT^_?/DGS]\S//DKQ__20Z?Y@?(!QI;KD^=F15"L<]H M:MN'W8'?#[VF:]=VR[:8M#KBCEA]W=4(KN^%-Z(;R-XV!!(6).%!WBEBU&NPA@184RFOQJPC[W_G MK ,O!^(XHM(^64"/!N6Z59\'X8WI"EE;%U"1YS/3. [=IT,,18%(',#I3$\9 M%5K5_/O05&QBR1+XO1QQ:Y;S[T&YR[2:?Y_ZU1[A]Z"9.,F/*E),VG $S M]1UM]-3HAAM+=?4N2: I[(,79[4E[R#5)GTX[<2A!\^ZZ4?7DU0020^Q*$ M1/"263",F\B-09!7,( EY!EF>G1I/OA%8M(T/3+5LE1!IS$%>YG.Y4%^W&,L MP5TJ=V=!+3B0C 6"0.Y1:QG )YD&6 )9Y'TTL%+:87P!G->U+GA%ZW$%[I', M70T K8%@I M*^IJ+I.K>XPFK'46R!7-1Q'&G2\2\^&+8UT\@+Z85L0GZE8NA\M;CRQ0RQ?" M)4U'%* =+0J+@A/++9D^%,6R]#U1LW[=6]-E9+%9L^*M:C^B*.URS5<>1BSNKV?WC[-KPGYZ7-S.KZ+Q\?.G#@*8\6!V6^9\[)?_K8, ^=@QXOPD8;/KDVGK^[Q M9**B&4YWK=,+_+2L#3X'K96T_3D.)\J3("5=\BM0[J[.D9[S\71/(4!T'>PL MUR\W06%;]&Y8KN&1+YXV1.V0%>)VZI6"=AN_W#OK")SNNP^?/GWDC@=_^=O4 MM[RWV+6C.PK5P(XT+&F"T\VJ] 'O*OKGI1,*5'?A44CT.E[\/(?K7J+N[G?DPW M(1R0_N)2SWFP=OMR!*AJC!@+:G5,4:&T)7)\J)>[>Z3(>)(W8$I"QG58U.A3 M[50Y3IH ;:-8,K"N9@JB\%N5+F^3;X)OEUDK:OFR)(&BX MKJP4XX9]=5>!S^7XV8VW5X\=D<[2J/PX3;6*7#S M)F301T(K9N>^E'MB%;1'#,-/3^SVDSE!G0\%"OUD6# T8QM,92>C M;Z3"&O48NAY3%]I\[.]5T8AZ$J;'7\:G?&'[&>^S%3SWWR**Q' MX[(LTMI.N&->3^=YEVM-F>&.T2MBV/IJ]_9ZK;6RD MBE\?^@$1L04<".J!;RC+EZ$1C9+5 3R;76*%XI:XHZU"NWQF[TDSO-%6)>PY M!\A ,YG'3OC[]8:>%NE505HX41_N'?;[P _R<%*]2*WMA#L ]70^>9.]M ?> ML-24N_5XR.O:J_33@5&R,/,JR"!JNU)3&;SO)\2G1O:;L@E F]"(= MPR_I.@CE(PV-@Y"Q_6M\&T>TQU_Q!X.4@.^GDZ0J10,^^2(&SP& ML/;I_9Y>V.&%K2&4;C]H*S/_+%]""$@R"E;ZF5MQX#NI5J>8I,)TVQHTJYP&58EG;NAP\ M&V;JK2R=A\+49Y16@7A$J28OKP.RN-VY*[N=+,'/H(EW7.I,L_/6LYJ/]TW( M$@YJ K_D ;$)F7IL$NB+(VBS^8=EEKUATTIWXU\=0B:Q_;8*+3]B,C*EIK[# M?_/X!'CJ_/T0Q9!'DGP/4O>BKZ/AM]N7#.-$AEZ_$1T8Z46 \6%.OV;H$:"D MX"21G"BB\YP017B22=\$V:1,2O$*VK/E>F ')OZCY='/?D@M#^JX_F"Y?L4BHP49W/#9@U '3H,;Z&K+^L&.(#ED M5MAP*WA\/S:DXL5E*#F1LUW$!"(.V#=2[&L6A70F_MU-./6IXL:HCJS6=&WY M14WSFBJ&8F5I)LW*L 7%I=.B!^23\V>O /Z'*F]];)7$(B7&K.Z!&W8TM#VJ M;5W6'"]H)H0SJ%\=WL8>.I7;<#D'"Q!H2Y1 M^OE[-.';Q#+C#%?M,!U9>/87EGAB\6P=B_0Q$FS7KG>(2Q^3*F\]KH [TK(J MY&33\03=LY:%U+!N10AOT)^G3MM02;@2R98(OK"B/WVJ&3G&4QS/!Y:80DXI==\";4YEE$A99Q4-K"PC,3JTK%5D(+PTN: ;VC0] MZMH>-?O6%BMRIN_"L8$#GAS*W7J'EA,E&=6N7QML^> M.4E3#W -HYV1\K>.XT)*K.4M+=>9^U?6WHTMKS+*ZOK@CC@MC7.U;ZLZX(U$ M/;%;%X%-J1,@?^'Z1#(P':.F]#81O:N06M$A?./P(:"D,G*KVN..VEI-U8@M M;8PW6NM%;GTO05(68\R$R!''<)0.I:^9UV#@E53J) DOE2%9VAAW/%;KF'_X MI:@EWDBLD;?]NR>"+$G3L@Q'8$]Z3FW[L#N(NYW7=.W:KI%2FXH891?#JN>X M#?KCCM3&ELC-?74[XXWGYBJT=OW%U;SD4I3I8!_0"$K\%UTJO35TITCW+']\ MI_5:Y_$C.G'O_BA54)RH)^=]Q.&>AF[@S/S*@H_=:S?C9,BEQ?K;-"+OQ %Q M+Y<3A8J/L17&PRIY23>N[^OHJ8,F>V<= 41\]^'3IX\<)N O;$JT9P;9,H:+ MM;+5=Q.$R:+B2%_]7C@AI*'6 "B:7WAP>Z MH7;)%K*(Q?NK,IL8REVQL7%-0W@_*>);W/'6BLD+#2D)4R$=XAQ"<'Z@(6+P M:_) [2!TV&>'*/F(D]_1>,L^[R/\BV![*'MF+!0#"I.M@Y#$DL_ =7S-:S\D M_ E<;V>"M.^HH3!O@0: *#J.'A:/U&A]93E-:I39;!SUMA9;(#Q1ZE=#GW@Y M,H2F\,&6>O#V7(H V)"O(Y-IXE^OT[_2E% TICAC4MA!&AB38!Y%!^I<\$;I;S-4DJ_9/J7S:!;TL()KIU8*)].UH(0XB7O6>JT7A;S MB!%LB>!+!.,)X:PG)&$NTR\2]@3X&]K*,F,K8 C+SA/ 80,/I(C0Z?M!7J Z&23;TJ MB#+S_K(I:\T>E\O$+H5&PX78O=NC*\Q&.ZGDGRWV_ 6PV2L-;3,KH3R4(BHP-I#55ZG$"*)I(S25GC0J(>3=0(@R17:!OLC;WI70G7'4!. M-:%18HZ&;;3GAU\&ZNCHWHC:;FF] M\3]/7ZR0H9.4:9(B4@0!B7>6A!*ES!VU$N-.WN6J!Q^B<)W=IAD/PU/[] MX(;4N0JB^([G_9384[,K;G1IHG_I?;"2?GB1HY'T7=T2DU.2A!-<&XMB(I@9 M>BI]$#LD.] 1S]A+C%*Z*H+WU>$'J('#+_4$_BEP;-BJU,R4)6^%O(E^P8A#7>86)H [2^+;B<7TV*-^JSO?QDNWX"C]$!7E&> M\RK9Z:T%?XF1HN(GIE1=L;+WB)]&N'%G7!#8DZ M^I94"CUICQ=\M*3NM2[HU?3Q1W)SN_CYT817W],8]%Z&P;/K4.?R[3.+N;F_ MV-/0@FG3E,VNGL5#W-6^WHH0[@AH;QLU+II3P1LM9^C2^O8-C0GP) E3."U_ M!WS9 N ]25F3C'?Y*S"#A!03=.W&M^7G*;D&N$/@5!?5M;-/\;IL@8SGN.+1 M$\/L5^_ K[27O3)^SXP<^#&3TX-F'L;?55T,U@-P!;W+@PE-U+%LJ]\,2+88-IWK[29"K@A$@1 M"9=Q AB8BDE.(!0^'M?P7KP^+EM>E#7&'=[5.I[4ZCEIB3>4:N3M(LVS<%],=S!1^Z,J:#6[X@[A)OJK M :W3#V]X-Y*^]6M'"I,)2=GP4@\J(T-!/K@-1(V+S;U MCAE%%[8PK"BB9A*"Y'F4^P?,5GP^X0>U-09PO9ZX8[N!]KGG5^J[X8WR)L*W M/I/)>)"$"8_Q2>]C=VW^T!#Z'\>\K=C#8<'/K!%9'EME0XJ1&T70S#8(@49L M OKF+!,')'B"&N0DI,_4/T#Y0B&,$6B+:C>S@ "^^^C8X*B[>@A!=FS]3GC&K;@BUYIS)^#Q&7\N9K MB80[G*^D_ UE\:*$K>/N=!%E26)X+, [)+BEY M)YF82FT>3/?8>J5&XI<_>Y <*G$MI8HE%JEJCSMF:S55H[6T,=XXK1>YK9>* MIS'28SUY?">I=QN:^N-RS^J:B,4D8_B:BG_G/APS4> 3#*63\7@R\% M%$$F/'O [.'_J0'9^H!/RQ^H3=UGR/K2MGUAU[$%6[G^U1%UVF],85,A?<>Q MD7 B&2M#(^X@5DC5# K&T#:=);&Q8T,1& MU>B@0VE,>-%(GXX11/).%]4PK(H1=UITMF<.3@8Q4F(-F9HD9AD!-X=]"/G[ MA^:./-,IT"U8Y,'=;./%^C.S 4BD;D#6+-*;D\$--6WMDEO2-Z2!%UY::])Z M19S.S#G'">$\+X+U!>,J4&0B*S6Y-INH. ?;8/Z30?-X''[#Q#J'R&3^1,EB M#_9,!- UG+24]<8-'0VMH+$-<-P5+U T5:"797W&#=M\HQ]C"*W]P+\P/Y\H M7[(MK;=6>Q59O[&%?8GF>KL4LM.80KU,]+[V)R0?0X-^__JGBNX+%344S\F3 M) ^4/V.N;)=J&ZJ2Q-BBO-X>U0%?WG],L:^A1<M&U71V5L.*!EE6I(J"0Q M)G304Z1CH$BO8/#ZG0G;20H<;VA@HU_SI)F \GX!$M3([Z4VQXOR_F-#BAI+ MU.P;%G<>$SK4J=#UWF'^R $A'O1ED./3!,,S"?V2;R66:T0 -RHTMT6[0H!X M<:&%#@,6_NOETF806UX5,@QL$IZ#O5=-7H.2;QAV)5B[?/R!'\"7R')))@0 M10:^P<:E@"NQ7(Z+%=R"[>N><*/*JHCLMTLEX"83%1V8R?!<')95\N = E%U MAEMEI8=;FGV1HU,3"^0P2*$@@(PZ21Z&& S]?*2!S* ^H(0X M^AE\L=5+_+9D>L8,*F?LKWMHHFN]*@(CPX%:6U2"06GO$2%"O0Y=PD+"C4TU M@-^$#YDI2RSPT*--5(S82S;<"+3$"#H8L7?6$03^=Q\^??K(@Q_^\C=E1G03 MA"GKQ3K1KR+X6Q' &?SM;0'!W[RWV>!W OL 4A05[3M#E[8.O]I2L8\6'.*U M%[Q AFX Q4RI(\XA]R&]2-<<\'Y7S'I82E%(%BA>X&\N//<9'IS=;]\BU[8\ MF>K+FELQL1BTR+TYWM\/PAUKPIP"[D< B:=#Y/HTXF#$XH[]F9)-$#ARTBY> MUQ*_^ &\MA!3'W8K0"+V-;!)_;_ $PS>P8%Z;8I"@J+UQELRAE$H2$DRR;XQX?<.^4:.D+JX^,=K90-#]9/%2 MQ@TO3B >[JIY*K@A"9QCQCGVJ)PR5O0?T:111XLNIXT9/U&9@L4,WU3NY0GB M,R:. ]B% T@ZFBD#Y83XPC)\=++ZL(QN<=5![7+%AE?7X<=Q;-!E3B-53XVD M91ADIW5G'^"@1];FMFAW*H<755OH,. I'*8#_KY,P@$A63>XJ1%0'NG?N+[E MVQT^=3KB#AE]WVC]^?8$!%;?9WLDZ!H>B1@\&!@+^DMMC#JB&:O=+0=J/R/0V-?N.!@4K- MRU"@L-,X0*!:]&YB@/,@D@E)N2#(D!E">RKI\CUO;HE ,$01Y'",IY.7EVL\ MLG#.Z5@9P[SEB (W+V^7T43=YNB"+ JR"E?4* M=_RV@0),)4X:2Y_GPWD9:FR,.^/(@ L8DHG'LT621 >?< ;Z8H6.T4PY9I@'FH#E M8LU,LPM\#M(UAJ[L. [(J=>]"%S*>^&'$0W9.XF#C D_ON1LQ$3$,#ST:(", M;B0>^^-*1YTKW6#>U;_2T\TFY-;G^QPB&9BA'6!@PA#3Z6/!5O'9>\WHX:ZY M+=H=(."%OQ8Z#'A@@.GTL2^35%POSK9*S9Y%SM9K:L>+]>R5P1:;S#XP5%OX M8"3X/^3'/5N>F&)&<>A"BB//[?"=_!^4EG.>1,E4NW:C?1!9W@]A<-BS'OR9 M1S]V_0-UY(WNH'3;!H5@N"$.A8E.H-.\5'@A&9%MVN*:4 'F/(D2!+2 AU1! MLHD8!Q0!)R2373:!)-BC/^9[I$J11"O"U>(]5<5(IIFAZ>87]972Y"L-^>26 M_\S?R!6)=:R6IBS#K+N.)EA=,*1-+DZMN[X,CE]EUD,'U\;#?BQ-ZOX?HU&*'FAH)^ M;]Q#6D,KJ*.19E>\ TE3!=I&@\I' #MP(@HK\^^5!SNZ@FR'I>6691*?ML+M MVB5:'=7@5IO@==4R0<^HI\WH$4Z0 $5S!;,[U8M'%W^YUSF$,,1 O8(W:H4\ MC\$56O.T'O,/]R;G^26F*6V,.^JJ=2Q_:C=IB3<&:^0]OY*[?#8WH8SB8=S. MU,PB$R+1VHE7\F1=FK3ZS8[Q/(1I7EU6JQI'E7OF_DR-[$ZO[Z0G[/.8[FJO MM3;HCSO*&ULBEX.BVQDO%C17H?7VI."D7'2'=566>,*YG3=_+*G!-G6>X?Z= M6F1HL;YQ7ZDCWL!=A98?B?=HX"H +Q3D)I\%NH7:>N&",WAZMFI:\JU[%LCK MPO6H\!GIHTQ5L>4AI]9/P[!:N:PX7GD1N/8N M;>:L;>_&EC=[W5/?<6,V"85=4WB;W;D\Q/=!_ N-*S9'&G3'.3BUM4/^?$JO M+]YY76,-VB^'.".B$$D\XLE^*W0W&/E=B8;&\:)Q4(PY%LUT#NY-)2.ZO^/ MM=O_BZFIJE&[BFOZ*G>BL <06RH3J!S^]3KS+"W!@\1DY_M<3Q7IY3Y,\21\ M%3S"VSDK1I7OFA;9MBD!Q,C>RA8IE#?JC1R[V^G2,5B7[B.P!19_T^D"+""V MT(>%X&'-DVR5EJ[[V1J?LR3 4QRWF%C=#VN5DKEUC9^86((_N)MMO%A_CBBW MRN(IMEP?!IXDZ_19P(W*&UU+7[&>3P+N>[4*HU6 /OBV!]P;@+ M,"()?YC^I>GZL)F&[1USDW:K>-F<6*$;P2=\-S'@4L&O86+J VLOQL'.)WY0 M?#(]=;N"*I!S>78]]Z=R/V(IMB,J,+\9%9P =*95CN>!#4B,8S+81J&.9X0B MO:*L?*EX>.B%AO0D_^+)\I)RL*>;;+',UKV@OF-D'CFD99/))/!4CMLY5S)7 MS)8P)I+S\*MV ]:Y+G(KU9F.O=K^R $XSU=54G>^6M M\<[E-&1NZ\V7T\?Y(UGOS?AX9=6Y/*'O_@8(++6?>?1W?CN MVK7A!<@3HZWH:WSIE1>$.Y,D[BCIPEYJ')U##V^D=:)5ZU@$YF)//&//]RX4 M 4@F 4E$(+^"$(1+<9P%U^\@C,-N'6"8D4T?^DS] X4TEJO YW@.A3ZO#E$< M[&A8,V+K]\8-3 VMD-NXT>N*%VZ:*M!ZK33[:7;_>69DH+YV(TO65F2HL%A+ MG5<%VP6:77#[LXZ^JA-7M>..]H?SMU^BWT_NK&7G\<39;D:O%W7)QSY;J M1M;=:E$*57U%[[K!KB$)W,[?QAYEU5#J^N,-A%9:=%(717(CG!U1^)D?_P8U M"B:,X)D==8/?22/<<5ZLDQK)^19X8[5$SK:.=SN;/AHZQKJE441%NN,UC>S0 MY2\P5FV.5?? [H&UVN;=L;0Y9M^L%[JUHW+:DZ15#;:0RN7:?SJ6>7]<#NV+5RG^O7 M1TG."";V?2O.9U1&%O=PE0[>RF06F/&W*>^#F-:5-*WKA#M>]73.+=DK>^"- M5TVY6R_+5XNK__AQ<7L]>W@DL__\/%_]8F15\&AOJ7/PZ&+-%;Y\N_*L**I: M%53W0.Z^]=KF?+>\.6+'U1#ZK-O#$\(IPH&BN(!M<$' )9&:UBT#RMKB=ME* M#7-U88H:XG73:G%;5WPY\DS#4_KB023;TJS=_&_0'[<;-[9$_1RBH#->=V^N M0NOWV,0SZ<;G_<-IK,ZEOI*3*2.#D5)/@S\4$;NBRFZF=,WJH!D%W!'?PAJY MX4R_.]ZH;Z-$Z[B_6]XN?IG-R.7L?G8S7Y'E[?3>S%&#,@6%E\TOH=I,SA1A M"/>;>9W#R[>LC:R#/7VQ0D=S"7(V?=Q!U+DE2Y8WYQ''&X#=J]AZD)*2\,DI M\+G@C/+5JU1QX,5OM:$4B7"93*ZY:BU99LBZ!5HGA)''VRP7RV5011W!W MNK4.78UPK8E6P^O0HWG(;+?W@C=*+ZE/UVZ\9':I/6AJ2 )W&+:Q1\7DM+(_ MWM!JI47KG1DU<'@%1LF.2'Z$,S2_;AW4*L63=J//DVDO5JM[X 8 #6T+GS ; MT^)31^C63YO=7RWN9F0U_2]#V6SB76KWF:9:PFO5#Q2^>]=SK;KA-5@GG$CVLI]X"#[/S>3B3,<:=>NPIC3&'Q^5JZM&!,8= M)]VMF?1CQ?#2J&"4K%L*U73!'0XZ^M9,?4:PM-&2NO7D)_/HC+SYA4N_.BL3 M/B/CFA5"%=)H24.^S5*S-JEHCCL\Z_3,#4PE;?&&9:W$K0M)SE;D=O'X2):S M!_+XX_3!3 6:[+CA6%,H6V5?OET%NUW@-\BQTZ>#VZ];6Z;XP$J3"-Y(:*]* MZQF9Y$,8([%5/2&-"OD>>"-"4^[!W9_DW=_P/Q^'N' MAPHGKFY^<=*?MJ=3/S//JD2_15/?^Z#$&Y%-[@2I-43MSO+-=/Y ?IK>?IZ1N]GT\?/#[ XJU!E9#*2*7KZII?E^"(/#G@5R MU=) L^M(W%E#_T*WKN@W O?6D;ZUFS,FA'/A^[#Y I4)*Y.KC,P*!3:0+\%9 MWF-LQ?P>P)7%BTE%=6N1#LB.)6;.LUMQ/+6C.898.U.S+N*P. @G))6#I(*0 M1!+C*ZI4N+G/1F#^AFBDOZK2[XT\ZII9(1=<>ET1QU!#!5J'2AH&"B-4*ZW! M+%$\1S5TPVWGQES3J>_ "PH,LJ@/S[\UJ;[0B 9N*&AED:-+;OH$\,)".S5: M;T L[N[F*QX&? _B:L%?_YO=&WN^]#:(HIS6E26?RQKC]O5J'7/E0PM;XO7> M&GE;5\UD9$F.KM&RSL=*UJV>*CN,S%4K5SSEK4?DLMVM4HK?YPOR?2'AQE?BI.?YZL?R?3ZI^G]:O:XXJ[_,+ME7:YYAU\(ZW__.+V" M@U'3M>+*C'7YEOM$Z]I,,UJX0^8L"Q5?GVE "&]PG:=.^\=$.47"21*%F\D% M5(D!ZI91&MUPAX:NWAJCR0@65MJ2]^#;AE=991&NO\1J1F&4;J^[N&K0?73! MT,OJH30N<*VIAC1)IQ-/$XAR39_TZW*7-L:-$]4ZJI!0W!)O]-?(V]:KKV>7 M*R.KH+P^=6-9>>LQ^6/E&%72="P>V1W0 EU4HTQOBK+8,Q%ZEX>(S6WAR&+W MY/J6SBY<31?<0:BCKQJ)5>WQAJ.6U&U=]?+SX_Q^]O@(+X=?SN_-W=(LT%)_ M%-'N/#I_UAQC]'J.RL?[ .:$#5'XH!J1AK)#0=0;NO<:!9[K<$67["?[K?Y\ MN;(+[@#7T??H]FMI>[S!K"7U&3=@,^(3(LB37^6_IN.W5]6AQ@]_$7#)9*=^ MG#.!B?#]'$'1KRAV=U9,RW;F3QKA#M%BG=2@S+? &X8EN+=YU1&+^9$$1(0::[ MX.#')M%E%5H.G?K.(M[2<&K;($_$Y*;N,Z0!",%*[*G;%S>.-+* "AY:'?$B M1C/QVX9 0IADE-'@@3$+F SX](KN';5@8P$P3TBCMP9OTA]WX#>V1.$=[KK. M> &@N0KGW\HF"B]TBPC3!C&ZS"A^H'*QE^_'S7GM,?>9\I?C*J<%[2CAQHHS MK%/_PFDE&;SX<8XRK?-UBMXF59XOQ0(E1FP3,W4+WG_HBUS9,^648 M^.Q'6TQDFBPH6I#!'?UM[:+"05,:>/&AM2;MH^6%9!Q)GB4Z[!C4[5N@877X\T&?J'_@[CAO?U4\)T.F'&RZT-<_??:CIA!<0]$5O[^*< M YH8'TYCA<49P;QWUA%$Z'4N);L10E.MC;'+$)>?>M:!2Y3 HX M0V3CML(Z(B_,?*[/VQSU_"1Z;JC/VGHD=G>@(V,C^[\1IL\^LSB7@(;/+OL1 M5(7.FJS^_%XE=#$A-OSK>?S[8[\R>-S)=,8+PJV[/OC.!;@7V8?!LQO!]\P( M??>>6E"98*(DZ?^/K5AV5?'U/VG]R21H?)++K Z^?U@>>[ZC:G/ M&,.A>TS)@7EJ=.348!'H'%(K@FM^\9:Y)?O#&W$"X@>Q+B%F\+7BP,+4[_Y2 MYF1E :3J6,#E:[+:NA&AGMC+<]68@>_2\KSZ&)QD04BB8!V_P+MA.>.] U'H MJ[7;@R9I&^:+SL$& H?]!DX&(_X-^ULK6SSL@RBV)7@1YJ N M>X0,HNC]UWU,-8KF5:81-67-,8(DS(G"G2CLC<_*1F:O[N=Q4]_RWF+7CN2L M46.R5M\%\8Q,4]]TVE73'OG<2E=Z$Q,HUH#Z$31>4Q@#7[8NF_0PG&=?8<2& M5?FTT=YR^=@-@PL#[W8[J!F9OSBTL]YX%-;/21O4EG MQ!C?V 8IVFOW1([[S?4P,0*$P9OE 697X3]K9Y&(/_@K 9OC(V7+.CXTG(P M =7^^XT41!?;$V@[4'P^EA(7:XKRCC1#@K KQP 2\28R X M\[AA,)8L"F Y?R_!V>CG@=7SN::=<>)!&WMD,[H M&O1%/J=KHTF?LSIU__;OJ22P_0^K:VC,9F(%4[]AIUE#6DWAE4ZO,F[& =.H M/3(N_9U%RS?>FAPXEW=!C(>:^IX<'9>T1XY[NM+WNX+E\/4'_/G@4ROTV?K! M%5F8[&.'KFD8LC]E<">*:\):5*VLZ?K/@??,L1%.^2Q/\$R.F\K/82,S)TA] MV3R=4B8,<(#CX&KW@851'*V"Q1,,PHOUS<%;NYZ7,-9"QF8$4.-D"ULHJ-F@ M-WH,;:-+GXC*P%/<<[,\XK@,7V-B@Y#PP4%B:8:AD/)@_WYP(S?9$PQ"=Y/4 M[>(0FA[ IT?RKL_^K,"O2'A@]CUXG$^*U@*^F2#9%F&2C,$3<81@L -)7^$B M#1/*4@15!P!(A;"W5K@1@LOVP(Q!/.0%<#D"F8>1FQO_09VOWY.I%T&>"I0= M>*)1_H!*,5^2R0)6%1NGF9"VM7>968$@R)G:H\*"O//00\R0+LFY@>$%/W 9 MR9'Y2 K+2 8A=(9!L"^JU/Y>0E:58UZG%"C91 MVQ%$OZ=ZIEIG;K%.#8-CM M+,A67V=3-LF)/UJ2B$!Y5L JS4"6;0S5M3TYD9I"!'E'&7.WI?*G?!.LBCC BB_IX*(Y'^UG!<.0#)A106>X))^ MWG@1>3?WR6H;'")FL>B]F0=9Q"Z%Q,/+-Z582I.'6II2P0U"+:V2?]BE$0F\ MX--6D?8/P*.^0JO>5_Z". MJ%@$^>_LWR-CP+O7ERZ__!;-?;;^HU$$))*^:;/XDFY<'[8O%^N996\?*-\< M]3>B%FKEC BE@#@Q#J6I\L(ST:?I*K0BG)E!=V47L+B*3E\%O=@R5.B/;2G3'_64AH MCN69!0;.7?JBONY$&W7[(A.*?W-SY?L]'>N@Q:7RW<[2[U8AD[6.V%[QQ7_5Q]]-UU]SK/4%A%'X [X@6&"/YET,'[B"NY"808W\+)Q@E>I_X*,E#\6.PP:<%( M(P*XL:2Y+7+5E[5[XT65%CIT,:1S9D1R2[8WD2#,D";)8&;)%@IP&74F\KT$ MFA2:R3R$+,, [FB\0;5IV Z?_7YP]_S$O@8ZM#KBA@Q]W?,/0]7UP@L1#61O MGXTA6$P(9\)]/V6#!1<&L$,.#P2W(UN8#_X,'N>^0]>N[\;TUGV&I652_$0 MU1221=FZ;!HMK3!>K O>H]6?:G3+"S?$]&KAX@E,AXSP EF_ZG8Q+>')RGZ!O2?\(!X3ZMZ4F[#A M\JT)I;$@9F/K%..A-IDQH%US9;K LIMJ'$,'3P-:*0.?4[N8AYH*0\A=+0[& M!1Z<@0J[[0-Q8K]_I;]!]'/"G:X>* \+2OOAA2UN#[@X' MT_V7E!LVO.G?*!F6")LP)A?H3@-Y-L2*,9CZCDB08#!L^;;K;VXITR/B_\TN M^-S!&S6Z=]8Z(XX<93JU80Z#.J&,&*&ZU:]UJ((8%R 'WT>6B4*I*$3(,DD? MF8X#\D3EK3?J3$@B%AJ,0V)6B8!0L$:R<,7DB?-/S!F1S[X#;]CR;X$_!26D M1 "/7!#M',WRUK@!K$9+%9%*FN*%F#J!VSHWISM!E5W9EZK*3$8$+K[]HL5Z MFCW^=A.$-Y8;_F1Y![9^7*QEM;W'+:7QM17STTQF3!K%$62ANOZ!.JO@DOY( M/>?RC=/SU&F_=P8>$Z.(V:BUHT1 M:^BEY2)%%QG[5;8T#P/R"\W3N3U10FBQ\@Y"!AT8\A;UZ?SF.ZBDB^N>RZX : GJZJA MWS$+O$'?EZ(&PQV$(5P:(S&?P6AF3*G)],4*G=3B,9LF+=EWN64MX!H6+!>% MN;.59,,D^#XXXL:" :Q=/"7HG!U>C!A"Z2ZVI JQ P1DJ"%%)%Q&D@C);VA. M2"IG;E<+R>(+M?65_+!L_V\6Q>[.BJG8&$QM_2 >@?^!@3GL((E#3BA6PR#T M8^4W]$6LX[1!O'M^8X'PGBS=ZYIN3/#=E\JFUW:(,!J=B94]?0&LC)"HQS%[ M7"[3H^M,)%1[:,7V>Z!1'+HV&T6X3I]]-X[X6#BU8_=9.QNOT/23"") R 2@U$I#CX@16)7I89]X#\S[KS88H$MH]26&!%3 M\87+M^)U1)%I?^(*0WD8-DS 1ZL _M0)O/8LTKBQ>(COJPEP]RG/>%%^$*MT M,22H0JOC0@3O"U1LFQ0CW80(#<0L4NH !]CPY[&,)+B_N\)]%=A-^:ER",(T M=9]9(10@CMBR)C&O:_,$?.\ =FLVAC2E-A;X;V6ED@V-)J3& +KM%.IB)SGA M#(5N!3Y.".3]V'=#! M?::/U)9I1_SE3H@=<1D#0G:N M:R>9X8I0)).*)&(1\ ^B"%:,N/C@%8^U,^0%F2ZN4VL#G^:6QC1M?*0;F("G MSU4HR>=LGBX^;+#UT)#:6*"TE95*%OQ-2(T!%-LIU$D"@B"NO+6B\.9O^24M MT&';P$933J52FXD7;";DAS"((B@9O88=:IA40M72N6\'.UQ0E;YX>&?]/0B3 M9U6CR[?4BE*YIFE<9Q >"X"=:[MB+&M+=0RP=K9N73Y4QJ",BY$^CLQW$C/< M2T09".B>:?@4Z$*=.4-FJ)>^U\5G:'/?<9]=YV!YBCWYGR5?3^^Y:6*3>,X=)_XAFIP$X34 MW?A7H$;H4C:(_$"#36CMMZX]#:G5>,[7*<=QX&*/UJZ<)7;'#C_.]JETE_-* MCB:)? J69!+".;.4D:1" FYG8A*0$QMVH_P&"B:DIY84XZ64E/P-;@R/J(408 M"Z0/]WV4'(;WSG\,H#^@%;H8!3(A"9N4'\/0A("DLKBWK"/D^NK%%M21;GDB#YN;IX&92]QR. MK&3%:B8DLYEU8C7SZ)-A^S5]:IHE7]@%-ZKHZ%L\/3MMCQU^<-CDYMKP"O?G)0"Z!0Z1O\)>)7MVR\I[5/7##D8:V*NI4-,<++CI" MMXV*?)H23TWBSW+]"M2-E+<\T1;DN0YVENOKVB?78V3^>ZIMI?]FS4?DOP5" M=^Z_@KX9#Y:I#"=ZW]'=$PW+K%3;"[DGZVF=\^;J+H@]6E/PUEZ=),,4N/>O M@H>I-'>#JJ,8C2[?+JEO;]E4\K=F4ZKC;LBC65/OFLE5K@_B>-:5O,-A*F6 M::Z5"M5LPG7:;6S>7:QWM7?G^XS)NTLD[\>[#<[$DOQ_Y>7=JBE817/<_ERG MI^K'96WQ^F^MQ&W]MNAZ2)_3J]J-L4$U34/4T$QR2&6-G"3 \]HR[?V>QI7( M4]86-^Q4:IC;["]JB!=PJL5MZY;)%11E:#2[E!M(31.QISZ(>BLW]RN6:Q7- M<4=@G9YJ$):UQ1N'M1*W/@N*K5B\\@MY':[/N+B61Y:!/,I)F$W21X;-K=&* MC%"Y.JOL,#YW+E^1E;<>ETMWM IKX=0F-\F/%Z5+&L(?K W]J+N.S7?![=HZ M^E9N-RCM\;JWEM3=;3-,2$;?R(*M5WT?W8WOKEW;8B%M)]OB=LX([_8IO^-D M@\$.!/HT049+O4-L J\^^T^NYU$G6U-&5X.-?LBCMBF^B?NW*IT0]O%#>2OO752LY$W@K/V(@+A!,B.!%@9>8. MY1 V4-2V@#2Q=E#([@\Q"=GS=^6,;+&V?7F#_P>>NG#]C7@6KVS1T3$+W##2 MASUS^\ =TL<+2[UHV>.%%7_2VKJV47<&7@&A8_:&J';Y[?MF;B\ HR; MO6$$*_^8C7\<< +B<]X -$*QB+QL:4@Y%MG!;F_Y;\2-B,- Z!FZA$+&89&H M)P/=I[HGJ8"2\O#0T[N&\GM+OF4CQ7_<'?.@Q7H56GZT!FU_" )G$3[2\-FU MJ^[]Z_7$B5XMM,_5#JKOAF\VWT;XUE6&. ]P\80+?U6#\8&W-B0G@UF1-3:H M3)#4[3MJSR]/F]3J.%KO[VAMJ^G_!A,H$[F@8.XS#9G U9?;JMHC]_0Z37/> M7=88L4?7BMS:BS/*)&"D"= VO8'?G[J+1$7#\3B-EX'KQW._25 6=QI-9%;H M7!*>!3U&$:-5P)9O/:A.J=XX?H7<;O +=FWD9G#Z=JO:'E8 MT 9GO%5JE.[2'#= OC]3*F[K(-I2(O/AE;7YL'LJG2NU/%'(P#Y*'UKQK3.X MA10\>>[&D@4K][F$_Q*-!QG/ER'=6ZXS>X5$(QI-?6<1;VDH,Z>3%RLJQO9& M!'#B3GM;J&.^?F^\XW\+'5K'AF!%$E[\A7K.+;E%D#Q>8GAB@-$F)I""RW'/ MHD@;&JI[X,8"#6W5X*]HCC?:=81NO4CE7IL11Q+,@ZA\81L/UJO Y\7R?W;C M;5)KD$MS3^/J"WUZ/7$';P/MCRXCUW7#&\Q-A#_C:C+G05X8D_0MVTER2\4&;\BJVGW9C&"5. 3UX<\ M).K ;LY>SF*H.HL).#@FP%AH'^/ F(T++2R;ZSQ>>#RU@2Y"9CW'"9(%\IO" MR4P4=%#9H974F5(1C@C(\)56:&&U#]\1RI)W'TV]KU&J;0L#C1H3FR+A./'/ M,.KU@G1!;'EM8_K\C7K@#I5L*N:$@\3R-17G6DD1Q+II3E5[W%%J.N]XITXXU*F&YUI/KL=?WC0R_AZIKV>DL<6G M1E2.)A8[CT C V+72HDQT$E4.^.DLR0!XH':P<9W_TA%GLN GOM'NL#)S:7K M,9*;:.[/7FT:1? L]U&C^))N7-_GR9>BB$+14?$P;'$&\]!V3S,_!N")/)ED M2 NTKDN_@]N)ZK61,)6:.(*O$>29 ;6G1$]HGK$?-FUF#%]?)F-ZL6FN?#/'HY3X5BZ5;V66 M?BL%;6-RJ7X1!JKLC.B+.(F> 6(E%R?FZOQ<67N7S1Q ZV2-?A5$&J>7&OUP MCJJ--<_M1M5UPCN-UA>]_;Y4%$?$SOC U=7@">ZQID-4LDMC;'.Y?RL4K7B7 MND=U9O:@2XU2?U*GUW6L4%!S2J?1;XR T.4IBX(&Z;XUL)F0>]BL-GT"-X@- MFN!BP3F4>6P<8E-P47(*B0P1&]MNQ.C7#//&B'0]XYN9L[;^M)4G;8K.CLN6 M33&)X.TO*$6RBST0^I9L9C9J/"0'LH;PP.YN[,$*:"R M(%SY<%PFN7S2RM] \>? +U_B-*. &QM:6$-%B ;=\>)$&R7.W%N#AS3/[-6-8LIO;:Y)I+Q/M4XM8R?,NCO*? S6 M\8L5TEO7ALV8J>\\"/22=5BBZ2:DO.1N>7'0%C1P(L-9%DE/#)L20'[\UUJ= M]F4GRTK_15(4X@E9^,YA,MI&4IQA3]<&MT["D-PJ-I \D^))$4FYFKK[-@KC M#%7A^\[Z>Q FJ9Y12:7YPD8X<;):IZ28]VD+?/.@&CG;GWO()R6'K21_;^WH M8IW3I[22?%5;O%Y7JV'B?*4-2GSC.;G](HEA6_Y[Y=/DFL M:HS3W_1T3*=]I2V1S^_JY>Y^(I?R3(K%3R#?9]B96W]ZEVAG="HVN+8&][<> MZ$ZXFE(*:9%60JI>ZM?VQ8E5K2Q0L)M5W1'?V-E._+-WL%(^1*VVE7&:$)&0 M:G+3:BA;A*DM]H65Q[J;;]P%(5UM+?]'RUM#O;0J_0J?D6A* &>LM[=%.E=I MU!OY_*6=+F=4UX,$LKEUEI1DO0R 9)?+?U? M_#O_>N7_R/YY_(J(^=.$7UNEK]9N[[&&7RT__O+=W<=/UU^QSNF#&>S'( 0F M:SAB"M8D\"EYHU;(>KO/E.P"/]Y&$[XC$F]=UI3ZQ+'>!MXO&_;; FZ0P.R3 M+>.79.'7?6=H:H046N61_3=:NY VOF3.XP:'J/#*4*>$<2)A][:KNVW?C"K> M^5*'NG5]<[]X1D52060*,1?%Y(O)"$R8W-8H@3$2J3;;)S8S=\'BLP^W0^ & MBTW=9^O)H]%]$,--%_AY&E^*.R&/6TKC:RNF8A(]D\/G*KBD5P'K#[],H;## MPJ>_L!&NY OJCQMN-.S9RBI$]L0*+V[VK7!;)$CD(HI@D% >DT2V9$E*9OG9 M:"J/K)5R3U]C\O%;XO7!F\KO,[-@B:FU.^,>(9K90 5\O9YX\;NA_*WWQ!. MR&A.!JY"50>R0UDBI[0ME!9YLF8JW+!IL.WR^?'4=Q@4AK'[1]6Y0'4/W'&N MH6V^"DYI<[P1K2-T^^HX&>T)8;]YE*]%80]-9<2O[NW#P#G8!3O>P\3S4';@ MREL*=2.#N/W[P6584 M =RMNRX=VL\CB1L(NK!7;AIP!CV\4-*)5NVG#((Y$=PO.'N2\9=U_2!F%SQH^L(60%JW[4H;X\:5:AU5Q"ANB1<+ M:N1MZZX)V4$NR&GL'?2DIJ)%%@[,U:GVA 1A?@%*$L^$WZ4G&'0YV MY >XMA>,6:QTPX&PV4"4F=,#&=2M2?,/(597&2MKBQM7*C4L?\D0?06Q:G%; M9Q?EW^(S^WA1ORK*ZE](YP1P#E(,4-5!VA%IW#'=I?T:SAMJZ>)%C$ZU.V\^ ML=*93Z!^6 V%,<%T;LYT)_.+B[2DH7QLR- Z#X6]1E@-,JFY._?M8$=7UFOV M%B_[)3LGJQX5FE/!/0"TM$K1BPN:)/#">EM%SGZQ03 DG*/R9C/[/7?J;!*E MA[:--$G,3) M[,RLZP*X\/BV9(K$3.79[P=W#V![^08@7% !H%E/W/#00/O\ M"K"V&UX8:")\6_>^#?R-/!=:Y4Z%NBXST(6G@]:%Q0>:]1RIIY]JK^7I6;<1 M>GJ!\#UX>OLJ!AU>)P4_RXS5]IE[ )>(UQBMCLTE_W-':V!*Y#3?=SG@C MNKD*9]<6@[56^HO"C(C:]H8#WY!!U%+ I<8Q 14WA]!WXP,WR(W["C]58T-E M!]Q@4*^K&OWEK?&&NX;,;=TY)V#,PP;:9Q6SZGK@+Q@CK;XW=?]\U+6H@X-5(VC"?=A"]'T M;H7;O*[B=,;X_@ &W;L#*TU\&ATDZ:#0^("G#T];Y2"$[#C589&D-[5P@$7_ MZADJMQ7%H;BO"75Y@@VS7?4ZHZ8+3CAIHN]1\:O2]GB7&EI2GU&P*B4N,I<$ M>=.KC5Z53D[[\AL#JOK=C>:9\-=K]_$MBNE.7!\L']GKN^ ,RR;ZIB-^37OD MH[^N]*T3HV[F).)D9<(@.?@.9!$JX?$U9$U!ZJ$HW>/'WAM_5,FC_ 49WHSO M^@4AV04.?X%)E%*#UV>RC^.M%9.M]4R)'\#S]90M=#S+YAF-T%*\-#+L-*1O M^\[]BQ3QP-:"A;R6/&AZV6#N5*5B)SAW]2PEEUEQ^G!7TW,4J*>C?0'X574; M#09J*=%ZIO)3BH1I,O4_.";V:F\5&IGM'S/;BYT/\QC9M[OIJ6PV(_&'L/Q> M=VTGG(#:3&>M%$3> ^\*3U/N7&&:*;PI4'B@ M"D]L*#WPA_O4ZE-I#:ZC$E>EYBDQ9X?D<2-#UW;,5X'JAC9>M.ELOF1=]#+=_4L@ZV.G=)>9ZDQ-;U M(12/990_]U#3!3=:Z>A;5%6JJ#U>5-&2^OP*4VE%.4'?Y%L)O6H\=1S7=("N M0LN/O*3XYI(9< MWJD4]7:;JU/G[05RWKJL UXS2.,*YA76*HKP!&?S!WT:9 M\S%!X75'%X(U_=KHY> H7JQYG9V:+*+3=K@] MN%2S?+[042.\GEHN:OO,H(@[)J=I/AVH#_4BT$^^-]?A43@G#;LZLOI3^=%W M:4NYC+&EU>#:VRF[BVO MW$*=%;6W?N %F[<'>,*I.EKK>^&.6$VM\W5L*[O@C5Q=P=O7J97T2<: " ZF M0]B$ZB:">!5:#MU9X6^P:N6_P R@.H3K^N .8"V-U?"M[( W>/7$;GT[-Z7. MMR7XKWSR:#QR!]#;ATERJC;G922+W8IK"Q\=M\$=FX4:Y5+2U09X8Z]8S-:) MUX*:Z<#J0RD387,?P-G@GL9TN@FI1O&PR@ZX ZI>5S6ZREOC#34-F=NZ:$:: M9+1-1^$0^O)4247GSJ(T"F,E0MEO672R7_[VP.0N>OC@^#.<,5>H 817[@-\ MD50LWCE9&&X4N[;EY3('.]Z0U_&D0E __12Y-YW"]=%'B#VJJRK"93[5]3YU MC5?=N;Z[.^Q*_>KX<[R>5:A)XENY#W%Z5[&(;?U+4C,UM/>FT&!Q8;U6Q\71 MYXCCHDB3-"[4#Y'&1:&(K=U(4#,:%WTHU%UN6NX6(K\;L5@?G^D>:=6D'\Y M::QYFL6FTPEY3ELC%5I?5U.80(H;W+D)UF0M#O(]?I#O9@?YLFZ+E5SFHRZO MK^'ZCOOL.@?+\]Z@,HL5D;T5\BQ4"V[M'_;\1YD%X/KDJZ7_BW_G7Z_\']D_ MCU\1D6^ZTE<+"KY,6*N/OWQW]_'3]5*[$"N%2 M(R^@:WG(XE>@"Z!;M![WS W^_?8OXN9G\&]3=/8CF9!\&CJCO M^QY^M61!8&8*FV_1A-PHK._.\GT:@B@@@=B/BKCH-@S+[.]/U*=K-R;@:"0Z MV%O)[VN&:XPP$\2VHFVB[01V?Q@!3QSCL1\MQV&$GBS[-Z &R."*"_PO6^HS ME/!LF ( 4' Z\*B9RWOPC:U$(:@")^L.'R)^)92)"[M@(1.4[&B\#1QS6TV# M>%=NWP5V]Y(]P1/WF"@N9'83RJQA,BN ST&1:T=6P$[OM(>=WVG74W\I-E?A M@Z/2&>U-6DES].-6O<4:CF/E!+^(<4U#/$@TN-7J3^HD'TB!9A> M#+]\'(\28; .-=C,%]&]Q3R5>F_I>PS'M2V&'HY.-S<:=Q[] '.TV=&LYQ,YC=]8N5[V^B>\EI=]?-@W M(:DL$,9"&@+B8$LL&,R,,%\E[T).6PQS(4V2R;"E$Q48Y9Z^QJL7ZCW3.RYR M)Y8N(/HE85B9S=K#US'%+P6Y2O4:%K0@T,G"IR, J@ M$Q-FM+XDT#FR4'NLD82^%(@Y5L< LC#V(T"6K@S%(OTO(P$4F(IU9SM)[8L# M%=5*9\(*D/JB@"6GD EH 0'& BZ=&(O%_3^/ UYNF-$[,YXD]J6!BVJC\[ % M*'U)T)+3QP"R /^1 $LGIF(!_]?NSB2%$EZ!$HG-55VF:V:5$LCH@!Q.T.C* M3NE)YAFTD)]M=J'9&6=5!_$J4>Z09LVOY'(4H:^0> 9[FVO7MWS;34XP^<'D M)GV:S[/LWZ!5>LP9'9ZBF+]K].+&6WE!F'CNFAZ=5Y*0VL'&=_^ ,U;0CK$_ MA+P+WV"&6[KL3YX7O/!C1_[(7:Q^^C7#.IX>%\&1$@W=G7C^UO.?=^QK]CC2>+[?1A8]O;]L*>: M)GWG7 &&3[8')>N;[JCC M!-R>K*CN#G1$&N]V0=<*MJY="')<@""$<^4W/$DF#"3RR0_$O#R5B"\0A$P$ MA&(]4[&,;"M@,>D]SY=4#1AQ(X/JQ ,Y(O+NTW%F2" MI3>;F+$6O#B4KWPL1D\CJ31+MBZTW.2]1"Y:+?S7]<$-ZEH:YVK>5W7 "\!Z M8K7WXBM&G_# 2WB_WV@-G6?+3;? MK4-&?3*X0[FM70HG8IHT\ 9\:TW.FUKQ41_V? 1/DC(5TRHV;>+_DHRQV;G?C6PJ-<#)P(VT#;= M"JQNCGP+4%/X\X^(F-'C$,JG>J[UY'IN_,9<592_B@,X**)11-@''K\=!_?8 MG&>^6A2W1(]70BF]@>\L]VPO3IYDJ^JH7Y"O+YHVA-*W[*O_GER=.(CY#;Z& M\[^2/CBAKI'&Y5MLJ.!.?^.LQSF;W/4:9':F/2OI16G8L.IBUM%QU'[V-P!1KQ2.#^JT#)25>\Q17*M%IN[BEV_/]UZ8WMDD5^E>[.SLK'$>Z7L YQP/=%U$-+R(RX$8W\O M)A)G]'[]N=48=G>7UAM_%1+2&,1?J:-YQ[DG5B,!G1[L>\Y.L@Z?$0!;']IV M (65.])2&)FCE(AC^!8U2HL>UWY@_S%:^J$+(ZU> OBB^P1)A<67#X[']NP: M%!/Z7S88GFAI% 1-7?A&94E3A24Z,0)<5>T=YE0F_P! =V+3SJ$NY?"%@]VI MGF;ASM@E=&36-%7ZH@LSP!6FOA%/Y?'E ]Z)1;O&NY3!EPUWIVH:13MC%^-Q MV=)4'8XNK-"C@?\AD*TO0/NR<MW2 M-/'"5LBSPZME;ITVR*EFE7'2RZT6?Y7NR?+X'Z,MI3&OE#-LBG>O2B_6$K22 M!._A"]D,^Z5V!R$ 5Y0NQ.,P$BOGOAN[EK>BX6ZQ3C+(8=LNV@9>8<)";P=!$"3,91A,^.L.G!=/#G,HM!1G_R]; MRJ^NPS-'8N'A1KRN60@WVP/QWIQEV\%N;_F\B YS"@=NXCKP4Q1XKL,OTN20 MD[%T??+5TO_%O_.O5_Z/[)_'KX#YSHHG7 CZ:NWV,$?Z:OGQE^_N/GZZ_@KJ MF8D)0:24-H-K&:"43WG)--:;K;YDNL)$%J9R65,*E!KZ28^#;%BPG)&6: M) (F;K"2;I!>:DEY#X_W!J-!>#-XNNK_6>&^4)9N:.[<)I;D>1/^3-W-%JJ^ M/;._;N03,E@7?)W%J3UN43CD$HX4DD4Y)R ME[LFKDE\4-RB6OQY+D;\>SJG?7J[@Z[V>L^B YAV;TIO9ZXP:2! M]BI^:'3#"QE-A&\;!Y('%R81(-B3AD]^=-P(10U@C=P0A2UW(:J[RZ!%V M L P)D\W!/; $:P]KH)(;W4A&^(.\7+=RE<(T IOZ%;(VMDL'Z@B MF,)WK)P(/9/UQ+=!& .>U 5:84/<@5:N6RZ'YJ05WD"KD+5U7@N0O.#'!:8C MK3?M^- F0@V.BIZMT(6\EGSTD7G>H6E#JT, ?XF1IUONA, MN4_DH?32AC6.JJ$,C/=4'Z\^QEZ3S!4&%:IG68)%[QGW<<-')B_3M ,-8S83A M#62J+$(330M>WCZ#S)<#&<E\64 1B?O_+;""V-5!P8WCZG" KJ*GFFG M+P8=SD&%\:/!P"A@:(=S(%OD+N@G63)B/Q1;KDRJ?\.K^&UIC1@KFERR;T5H MI"C2ZU7O.DA!=U'>G*F^)W-&EZD5FSJ6+-%:*TE";8T;)&JT+$_(29OB#?0Z M@3M+S4E)&YD)]*7FR?.&E7. XBL\O>361V&L!##[+0M>]LO?'K=62!_HGAEZ MRT18AL$FM';35_?X,+2V,<[0U=,1(K>Z);[ U92W?2X,(TTRVD02)[\"^?]M MUC^O SCUTS9(VGQL/IK7L]I+1=LQ^>F1Q-U[JF#0QE?+'I:- _NW$SU8NV_O M*-03.5)=MP].MVRD"WD&?D2V;YL(-0LBF!OA5\'E.(S[W30>1G'E2S[5?@#8 M^G,+V/KSJ&'KSTUAZ\_CAJUC\0> K3]CAZVN;%(%6W_&"%M=*:Y\R9W 5KN5 M0:&6TT.\#4+W#^J(_;7CJC;->N)$N!;:ITL'O6Y(5Q$-A>]Z03$A&:])'WO- M==$]N!$B8J6$Y9Y55(+M1JZC%=IB24,W<.;^3<#L7E;52K,K3@!HHW_N$IM& M/WP0T$KZ[C% ,((R<)R5F;MO@YB@)-+YW6\3X;X*J14=PC"&:74< MN+[$].=?6XG1&G3''?9-[:"&OFY?O.'?6(,S1\"$Q22M& 5< 8(;V$$ (8V M0H8"HAYLPG^25HZRP2A[F" 4&&40>%@R%>^M'2TXO"II@CO,B_110UG]'&^X M%DK9^I25]2- K>M3J!9N5G@&5=IH'*YV>MY4W *_NW5TMJ0X7.>'27,?:OBY MSQ280-+QMQ\^?BS?D*UNCM._=/5,MV$KVB+?@=61O'U]ZJHMURM1B_JKB)>J M" Z17*.G\W:H8B'^Y"9"DCT39>#"Y_U:*%&,1RR_: #D#>["]JDN5TVLS_*: M=X=.RV1MF4K_;04X5;9&C$WU6J;05-X4.3)I"/Z/#4P]&FB9;A\IL/2M25CJ M45FNV6RW]X(W2B4\Y0S0+SI-610XU&D&4L>=1H95A3I70E:NQPB1JUC^_P:P M?NU4AF.2"S(\ZU;W1$>N<*^H5CAEK(4UK5Z(<4U?Z^IEXIB0K8$"_]C0-HBA M2M:.YL%M .TS=.MN27GV'FLRB>3R+/;@PX7XI],>)_)I:ZINPI8V-HMVSS1\ M"JK/J^HE;WV_[!!',0,KP#;AOH*\D7O6#S2*0]>.J<-%^>R[<&81!?U7YTWEI^/%_:>%0>V]6%T&*?;7^ W[775LX' MR]J.REO+YW^%#4?CI5W='#KV4*-3O&%T-/->C1722\A:A/TNZD=\.VP:ADPE M"AMTEV]9$UD';/IBA4[RI%ZR;&6ZV*'+%Y;P_F:9(?MCASSZ>[9S_@6>?G@A MQJ"^-3XK.?B"LR6J:$21C3R]$;6=E(]P 94G-M-C8T5(_B2OH<>%D)I\YKD; M%UXC2@UV%?AL%?ET2 V6OF$,:=G!.O?-& /AIWI;/AW;,CW:8XMDNEBSWKO MYROEZC?$>V4X B#NU=8G4-P+-^1@W*_.!N$X.]@&*25Z,#G%!I79U]$16_X4 ME<7]P;PYCX'YQG)#-@"&O]&8_ 1UXSJL^-%V_%JLUS1T_8VX2UAT)MD=:9Q0 MVH?]LC(CW=!%GMW0M9:MLY;$55WX7LD&GDTG#IL?D7AKQ<3R"5N=NO';!<<+ M8@%_XD8L,)D,<-W/]OR(BI6+"[\#15XM%.XOJKY8? M?_GN[N.GZZ_@GIPHDQ+Q+ OV:Q#"_O[:LF,(^<"GY(U:(:, Y^OBN:H)3[:( MMRYK2GTFX]O 2198OB\Q,#UI#F!/10-8(I&\IFV@^ H26\X>E\N)'(:.C$*N M#V';U4#)>'-_@#VCQ?K1?>7/NZ5#+F<8S?V996_KQY9V9!"/(V?8)1TS6M! M/CZ Z#29X,ET.2;- ML%@]-ML-C\ F+*2B;3;IEY;YV65CNT^ ;?I(D?TKK5L_QJ"OXD!@T[QZ45$806^'V-[2@'2GO][/3#\MUF!JN?,8.!*ZLO1M;GE#]@8W= MX3-U;H+PAK_G,H^B@^7;90D@;>C@AMG6EE$1LS$1O.#77I6V09,_@)-,$]A) MV/()J&!,$LY&D&AX^RB3Q$;V&/8B&Y.*85LQ3M\'OK@1P"$YXF](JI]#0;_[ M(/Z%Q@_4#C8^5.,M,7^?_' #5>^6+KR(US4SO,#7O\I=3/32"5PV]9F05*ID M7L<+>#(YV-([)IDD1FIZX[?O9S],B1E/)NO-3&);@0U/\D_0KJQX^.!"_(-" M;^5W,@@>%TKP#PC2U79 @-Q)J@>;]BDB?EE(WL^74 KOJB';'U=U7 OBQ6?F MW[I[J$PQ>UPLQ;Q_SG^N^SYT"(P$:;5M45X^HJKW"!!.7X?6"\M\);N4F2@3 M\PYXO$\7GG"^R_Y@%G#ZMTE2$__95=! MV:^23X:[4BJ1MVHETD10NHN^NA%_,+SRK'K@C"1C]F6<=3;^".>?E.X#\$Y% MZ/B-S5R]KDCNA38Z23B7%F*D.M="^;CVJE^.'$JB9O>[AN9]:4T#)1TW$.9\D8N#IR%XI_IQ)#SD,=:5=GV@D>!=. MFF0JGU "0P53T_:4_ MK>Q8 F&):D^?)*$QW-N:+*7SR#1P1ZG7NF491?EQ< M!5?!LYR+\SU)L?W()\A23-Y=<^@]GPOB8:,_JU;-9,]D@7QPZ5'A\\>;DCDO M6W;;((H83-3KHI%R,8C73UX.?AT(H4%+4#.S\S%P,@-ST<00)0TLI)-+]P1! MBW!SB#N=^(R<6;-D-*HW:LYK$5Q$REORFMKPQB@M*+?5(QO,PU%_=CW_LE(Y M#^P#4H\:MXWM%;\IY!QL?O(:0I"[/@_7;$5T/$AE U$@2F?!2H=8L2@-Q8]J M&"+(42M@[: Q:R%:LS_)X8U8^WU(;5>< (>0J3V6RT<]?B-]"3:B\@0]6K=D MP@"T2<(((B =VZ#!17;Q M9:,;BW'-X6W+U7X-Z+S+T?IP]F:FN#G$_U%G\Z MMCB?+_#&A5=S^Z"/<_CKS9*=U#([)HXW=Z)[%0W>S(I9^@C&E\DZX:/D5AK'VE:Q!.IXVG M-=8UB:@5;$X74^N4Q8"J4C[(+TH)X2]9#\JSB[+LNFO [*; ,P.:&=D&7L@!=TB-,:"N%%)%7?$: M0M4S",@SN4-;7=AE"[0@A1 5;\;*W,%&/)@K[Q)/"G-S$\WC>+.21KSZL::@ MVS.-5L91MPW#$\7=UK8V@KR-W$X0>]OK;!%]"X@EBIAB+TT(2D#2::'O\';/ MC1/X"TK>\1D+"O8>O$Z..WM09Z:O8<#)!'ZR&^)IRTZ<)P"_XUC?2+:A/5OD M@#R2\IB1N1!Y@H]BCO@M"G*3Q^='/_[C.J+TAO$OP^/[L=!9P_>,L+G.\H,A M=:U1'B-V_7$#= =M%=!M44WO$#81?C> M2]:4ASC7I' A*1OR73+Z7RLQI4T+6 D.:<#)O7ZBC,-3P+6>>RN?^7$"5]RV M-%4\KO7VKC1P^WTOBY3"JBX$\&)!/S5ZAS22&X]')#]YZK'$,0.(V"Y"V+7+ MK,(P-G!C'@BZU*L.R%(K:$S8NC-NI.AF Q4BVO7$BPT=Y1_L#9.4T:2R*E?_ MW/C)[H9Q[Q7W=V-14@,J:J1+E/SYDF$N]/7@C]L-1_\21G(H79GC!8/Q36"S M-(:0F2A"IR5Q$J4DCO*XTI"7"65FX(IY@R1,1O\ZG-[[]$6JQZKO,,XT6>9]CK.D MQ@+X)\G]K8=I;2*/_5T SZU? !W$4.7K7:-_IP/VYPKCU=]A'!@O\SY'&-=8 M #^,[U\W-0KCO\E/PD0];KAU9 O-#7\>@>9?[=XL'<1.UV&TH+Y-/*^2X%PA M7?LUQD'U _;G".QZ(^#']ESV4X=W\Q])('Q.]K1 /D];C7X:U*QHYSHM=/]^ M(^]YG.-ATB&L@W^&479*[!T\Q;*3,OR'W=L@2/=8[-L>PQ[,^-9/=V=ZFG_B M083E>R4#R'>NX83-NRBFA3O'P&*"]U=Z;C&=ZNT6=)]8W:TZS^FMG##&-[UU ME^]>7]+&QMG_3V\&381_>CNL]'JFT]O8GUC9OCO/V2U-;&_X2,$WM744 M[ESGM3[?<-1]PU:2G>.,ULL^^*$9=?(NH_\3A,N2!1$\; SG MJ\6"NG!W-]<5ZDU=ABSQV<9GK_=K*M^8U8WM3@1P#_3NME!'??O>>%V@APZ] M*Y)EK!07D*_!/U+X5G[@"TXS6%'"LT0VO.,+B[@PK\S_%_6X?!>4T86?Z%Q! MWQKWN&_04AWDFJ9X1W23P'V'KTI7#-V,LI6[(Z-HF7 M7U+*,T)_N,%&7(O, M"[Y"00@>@CI!XMN9S#1FX$%M\BWTL;M<"" M!DJ3@XJV^AA'$EB3)D2P)I(W*2;-;+;$!#>C6DI%(VFI-V$I7UJ*YI:"ACU+ M4<.KXH R__'+AP^_"J01[XQKU,]CIH<, ^?,RXILSUTWVD!B^#9DK_!FS:WO MO, 3!O[!JG$H'CAQ:5"+ EP-PL NBGFA*W(V(D >8_0<[;KS5;AA/$*0/,2; M]WG8$#(>.9 -\VBT3K-UX8+_+%8%"2R,RY$%B6@ A_1)$A)'N/:/X+7W)#+4L!"C391(R\+7UW298.AXH72AD!RT4>%,J, MR=J)A##0)>!F><]%7I&@,$Q&[T56-2#QDM+DYR% N6KFPOFM!Y%JU'D.IUWU MTQ_WE3P6S[Q&\1?PGB)(3UV0#UP8T61_1".*V]N8NEN$TI(BSIG2H+5:A/%M MR$TNEN^DE/& ?J:FNAY*[ID_,9,*@2FL']]HY4S#/G2-$,A_I L:1>*/\SBF M!QF_[KUQ0DI/*S2'U0==IQHPZQ498AHG7LI._. (ADBB2?.&Z,@/400X\* H M)8%N&,G8B1\JC3%*E':@->S!R^,&01"^P?I',[&TZXD3(GMHKT97+;KAC:*Z M"-]WY%<,[AG)^9"?5^<>5$<(LP?J"1/'2TJR8P_^'K]E"'Y8@;8D:P=JGV]W#L\$+:&$KW M3I(JI$E!FWP'ZOMO#%CT_SMG13^&*\??#Z4[=)NB)Q[JW>Q.19^I^42%Y(8' M]HP #_)=Z^MF8IK8XQV@K#?,5NJXA\O5X MH]C]CV$NPF@E0ZLUC1(^\,3[9J'8Q@'L=]CN3S'9.I$?;F(2@P#%ZVB0JY-_ M\AD<2H,!O0;QQEVE#V:>C# 1E(D@/>@K-S5'W(?55$SG?'D=QQOG):#D"^P_ MDGW]L^\.G/%,P*W#%;GM.DPHE-/&"9.#6-!@^"P)3RTHZ*N>Z9 XDX/ QR:* M)+!;G\D")X?E9: 9D?)822(@M&1<6)*6+'GU\&0#YCY%81P_1.'"UX%5N05N MR*G01@4.Y6>\[E\E9-^A)V@126P0#PP3)ZCSP)&4&>'2ZXH@T9QZ<0;GEWN[)I.(SA#D: QU-%+=#FK%9Z<;Q M413QNKTAO7H'Y2E[F,4S =*)*16!Y#*(M1A(\5Z(D:;.R7M;UK#RUP/.\_7#JR4><>_:';\ MBRDY_D6#XU],RO'WI1W0\2_L.+XI#7,?N4#@^.:5,N_XE\V.?SDEQ[]L_ MLN/XIC3,?>3*1J:J8P;AUF?T)J$KWD'G#YP*#N, MYN*O^,9EA6R]#_W?W3Q??21/S_/GJ_UMMV$C,I-*,/$JVQ.?M[FOO/OUIY%/ MB0RERKB^^_N#1BWQ V[?+617???W![R^J\C6=ZS\/G^8WUD:ZB;$=];''VCJ M-L0O[S3JB!]P#_%"=G6(7][A'>**;+U7#W^[N=M/IX\UQ$V(O_298V/=R M+]4'CJM;X!SZ-=JH"P[E9WS.4"=DWV$%+Z=]>;*32!M"GT=1@D>6N/D61H&5 M!V*Y0NXFBJ V==5U^YIFZ)VG4J\]#RJU0>U&U9+V'7L'JV=;WC2 6H%0RTGO M.I3&1IR\_WW+H]W\<\CH[K,3_4&3ZPWSZI=)VL:X M7:Q>1]5!JEOB'=X-\O8=G((LD72)(&SKRN&8BG[>)!LGD/I:*;KX]"GDIF"P MYWX91NLP?=EASKSY*^5H1./BME*MG_:CA-N)C[!.J;AB=S)XW?\897KOR3R1 M@BE1N8K]UXQOJ5R&7>RP8J6?GWY6[:18XW!';J2,3D)C'M907T0Y#>G0ZK:X M$:)6PW*"IZ(A7B^O%[=_VA2VAPNRMA.H0^AX&3+N@8D/Z@$'5=UW?[;BADK: M(/_?O_DTXN-\N;NE6^XNK;)!]9UQ.VHW&VCR1#4]\;IR1_G[COOB04:24Q>S M\]W\*X:44KH,%Z]<'MJA79ZH)8V)>$(7BU0Z1!L"$_"+3FH,XQX6DS&YQB(' M%0M ^+4V4JOO,9'!K]>V^@'C!YJ2NW40S]8\=!+)U[.F0?_ M@1?5MTY0BB4^^K$;A!!C: S3I3]N[^UL"=676W?&Z]G=5>B=9^ L1 I_D=A M-B-*K%DPM.3S(QN$%CRL5&K<.GX J9[K,'KB8A0IV(_T)2G^=2F/&FELUIT* M;E#H:952G<5N)/ "1%]%^C\L\*+N!,Q(+L#[11B]!Q%F)&5FIS#BR 9Y6H91 M(I]P]-F6QLD*.U@41Q./-&&)T&E QJ%M^J!&067ZP%&ARZ#84?!##1\&S0*' M_U-:Z=%>&^AQGRQI)$^8M5]H-';"C0KM=%81H+X'7F]O*7??(2S(Y^\,C;9> M:*S1.K#:Z>W\57HBDS@)68#N6YDN$>(A."=Q1W4S?65#W#ZKUZWF> 1OA=/3'!X,1$ ME).W4[$FX_[-3Y8W4)2=YB_=7BT6U(7JZ7_W:9#_]=%)=#-N?VJXW?I(*Y7+ MU?0BA1<@CE6H_RW._*31&V=,4L[YN](SDC,G@CMYES\Y#0(,4K6C$5%L6>L M=O(GIB-.WACRQ%&BH [_5X$X_!__$'5&( 7QY%(&SPU5',6J:X<3)1HU __7 M-L+GV^),&XYSH$,L$_6G*]ES]7=OP3^:Y.[U35&['&- M.N9.IVV)W.^:Y1[#]?(G+\-"C''=;S@[Y,\Z*J3->>$SC5;WBXU^M;KGG5;9"[G7U,O=?EZ^YM,+A?&VYZ;5D2MY2KO"S'WID M$4+^#QKQIHGO!,2C4%8FVHWKB,.8!JA"X:F4+LD(CU^:WJI^HR0V#Z%4DY&I M;(@3CYIU4S.-AZWPK?%:R&IPQK.2\1M'M1EYMK6?]T@#)Z'>@Q,ENV?N[['C MBO#B8J?^4G/ILA,!W)[9W1;EO8&VO?%Z<@\=^D<:@J"\6!:R*/TG,!!%$:Q= MPU0UK;UK6=EP.B-I=\=5OLJO, MD-0VQ#DFFW7+TM[5K?"-R1:R]CX.E),EDJZ=>A1#:NAM^6H#]C3G*[Z<=!VX M$^;N+QQ'F0&>.>W[Q1R6/Z]B&ZTF_-&UQ>ESK314IX+*AO@\KYVX_=.0 >+\]^S5\C*GC8\.&G)'3_N(GC#?4^;J#,\8/8P7A:.MR\=_1-_*0+ M^5IWQNW3W6R@^G:[GGA]O*/\O4<]L"&2#Y&,B.0T(Y+7C'!NLH6=(_(C60+V M\4-&8F&06! GON!J97,I"EU*/?%")R@(%Q;N%U)&81#=7D"+?KA=OK7FI9VH MIDYX';V]Z+TWM(%[\UFT41PDD@"G M,5F+;K@=O*W>JG\W]<'KWJTE[SO Q<-(XEQ$'K86/&;I9&[%N0=7/3L-X@;A MQGL/?_-(O'F)W!6X.6&+W-6-+KUG1<_\ ].TK;M@Q.L.FEG1!(ZAP8=%_17Z2>E"&1Y/VN2LBCLL^0@N/$[&39#"HCXO(@=/:/PXZSK/89I!!$ M70_=PJ3G5.E36AHKO^/UE4HICU_R EF1RQ&$[:QR36K&H\XPV$(2WI6% M:1:.6S7)CN))@ 4WC*])Q*+ITHFB'9=,KF0TQFCH@MO3VNBK>EY=>[R>V$KJ MXST3V,S(IVBHPDI-I<\&55/S^M>B.'Z"ZV*%JW[JI+VY@ZZ2!J:7#95827-YPRRJ$?\\8VCF$.JXY MDLP1)6R-1?E:II/;]#JKLOIVDYKR!JY-'=+F4L;-Y^ MJU)/2E9[M;]%M^D-VBJ]FP:OVF=:@[A2=3L]SCXOVPG#%\[!!8+%C+PM?7=)5LZ.O%#BD)BO MAP-*J"PN\ Y.=](?SFHM'G<@+P[[8T;6Z6'/Q89Y,[+E;3<1):ZS]F$%OO"C MU4^$]W/(:Q1NUL!0D(-K7\G22<2!#Q_R^:*"N90F=2RY)3?C?W:#C0=K RMW,W1>V_!U@H%KNY!U M2L'J &'JP8+*6JA:5JXV/-4TG=)PU(>A5>VF,B0-A9L'@])BN8/\V$Q9T]IJ M!TU]< _45AJ7ZZ75=, [=-N)??QQJX/1;+/2P;!*IZI:K6V@IM&A'E)=3JZZ M*6[WK--/MS^4MO:GVMJAUN M5]-JIKF+A=W1]**:N)=EU\O,ZR9OT%BZIO75B7PX%@!OC]9$_Q7-<+N43B_5 MH_;;X'4HK:1]QUQ&4#R0:S',5Q6K#?$K&TYG".I#^\-6TQB&AD+ZO8%H,9:_ MIAZ-G.!ZP[PX?Y_YZ[GK@':P?MU=';HAO>X=Q%^+[CF_,@@H'R M2+D8ZO=;&C'_=0EW?#SZ@P#?U ELAC&S<"=+1"Q=*DJ2M>).BJP+'+F,+YP.V->.SI3 L(-E].C8@LC4X+*+2B/@)X0"EC%R7(L4H-$8$B+"45LV MDE&Q[0W>_$PS_]M-0E==;J^I?7#B9R>-&Z\"91WP+OG:B6W\#J;X0?"PDN0L M%V[A'N;'3^N(.MX]4Y.[OVJ,UJ$[[E'>U0[ZJD7ZOGC'?F<-C-4P$KR(9$9" M1DKI?RO9CM%L\=F)7OE\&90#(2R36O$HP#6E#Y1;F8>3KUW*"N@IX(:"'M9H MFOXTW?$"0A\EC%]A*Q@2SI$4+*V?IAK:)'/&-AP8W,( "VH%&1YA!7F_@!VI MEX1ZC,;QOM[>6O/>Q06 /JZR($E( M.!.2%8$L_0'7_:E\FF(ADM^OE-%(/-T@7M4)UU2,>Q:/ MF^8;P6;[+I];Q0UK/'Z$])T%W1?^#^J]=Y=\J4/K]1^]1NMG)TG?%7ZD:V7[;#\F.)'5"D+)GG]Y(DM(Y$0#9 MUV8@W. L\..&*5MP/_[/:< %9ZS-P_8E=FJ0H=KH.- 2J<$&R5]A@(.8#(1 MZ#!B#^[5?YD$>%QSDYLR74KKQ*!#M=!1R &$3@@X2NH,A!O 8QJP8<0:W)W_ M:QJHX6^-11PIK5-##<5"QZ$&)W1*J*&J,Q1J MN;P/N0HU3^1U[XT3!'I:(=^4;M\5^>9T#T5ZGY82[[MF?NQ1;^-F1>O5Q]S6 M$5WYFQ5YESWH]I-XPTJ\\>;'\<;A'U6\ZC:#GD'^SA,T^)E<_8#B\C0F 85K M".%+X+\*YR2L!QF<:'RL74HU#3K2P!N"]=:D]\7^E"$X M2<:2J#QG<.=/^8/-I\DJ;%)3!TW?&K='-&BI#GQ-4[SCNTG@OL.X:NA:+)56 MI2;\;T3K*Z>UZ3>]P5NI>=,P+G6:UH"N%MWDT)Z1C,D 3Y3)F\/?_+BF'$%% M&YSCLE:C?&FWWP#Y DXK;O_:P7P%%HM@&ZVX>9]0Q><:-)%WX8)+F\_J;GM4&JS$=NMW2OW M%1I?AG%ROTBG6^]*O*/X'#DL=MSLYPY#O"6UR8W^+E9J<(PVI";E,YT4,ALE M*FR(X&-E \66353MW0KM1X64RW#UXC,1TCW1M0/WK8+=(W7#5P8I<$76^$I> MT8KGS+L-XQCVFK)F#18VQF0: &36IE6X9(8#?K@RK.?1**;(,R.%1*3@I6); M/".95&+?2,JE-+8*>TALJ\99 @VSJZ#[UK$%B]ELP'6F_A:2S/&UXT=?G6"C MVPWI3F5RP-;&*@W(54=B4M#42A&SV).Q) 7/&0&F1'#% BR#6D:HNP52D ER M,HLXKMBJCTF4,[6!)!P_/;IRHC^J*T?7-,.-!3J]5&??;X/7F[62'A'K^I[X':Q%MJJWE;3'*_CM1&Z[U 5 MM$E!G$CJ=AUR2(4_A:'WY@?[!9%L1'+[<,,0;94 MDF!C?!$]ZS-"X ;[#X;#&KYG@L9-VF/#9"EOVF&FY-3M'DQ _2WF.-+L@]GJ M(:)KQ_?2K4_>7B1PY&]C?[<&6[!ZX79)T[;.&^Q$C?+TZWN2Q?+CO<0W%^$\$KXN]US'B M]S*W\\'D"BL/A<(*J_/ W2J%D2'MM<_\A+Z_];= HI!W\AAKTO;E@XM^<4[E M-( V75JH/Z2YH@=G5U-#9FP9S@>46W^1@=,E>@'. \#;FP$9K&?I$>5'.(.> M9H!3X8UB_&_RRS#Z"B^ C9P5&? #Y49;2X)*6L1-C1P4W"D<- M9T5:<#M)>&]K90- WL3JY""[M<)6P'E&,OEF>ISF4HY:4A&[Q64)QKQ@S#KR M78ZX@0!.+J-BJ__Y]T*O6_Y_?_VW["\IL;_^'U!+ P04 " "-@JA:Z>:_ M(A5= !YF 8 %0 '!D9G,M,C R-3 S,S%?<')E+GAM;.V]6W/C.)8N^KXC M]G_@R?-P>B(FJ^3T+=W1/3MD6<[4C"UI)+EJ!J?V _E9; M.?N];FN/P'6A96FW+C0W0-/.!K^@_T/_T3Y^_(^PC5O=0W4<6PL;^_3+6?*' M4=R<8_]=N_SU\Z^?!I\NM8N_7][\_6*@S1^38H^H9VM84LZ"]A]_Q_]Y1E_3 MD("V]_>?'OSGAZWO[__^ZZ\_?OSXYOD4L@7_ZF!3[B'_U\>S3Q_.S M7WYZYH>XB_C/#!])BN._0DKYE"Q1^5S[L0[.;FYN?@W_^N$__I>F_<-U++ M:RW\U=_]USWXYP@?GF-!$U/V5K>PFI=; 'R/03JNUJ04?44P?4-&A2Q]Q_ACZU@F6D?&?P9H MI K515'S,JIAI'O;>\OY(9@)QU;;$_H.>H;E>($+T(H-42_F+O!0?\*Y%\W' MRV"WT]U7A W#Y M2(4NFN&_ &?CZOLM-#A/"1R-=2'BO0[=WW0K (]HSD$_[[CG6D(+G>#E[';0 M#SN M(RV*GCU!3;W(D]MIYM)V45;K0TTT,'#M]'4NH7[X<8%H;)_A_YV:+Z@ M+0?P\"ET 2R\.\-%7U!XB MW#.T^>>4POJ=$)2V[ZVTT69LL<,=]4I_MCB%.JDIS^ZZ@BSTAKK;:5<0)5M1 MENUJ!4%HS4BP ZP@$:$%&7>#%:1C;5*:G6$%&:GM=+4_J"!'NIHD>X4JLS:Y M%=7L=E/=17M4^(*0\77(9.)OZL,=[D*J"']:MOAI3$ICJEXAJX+C#C'^N(1VRJ4_0\M' YLV?4%7OFW@?6 M&EI6 D0M+)D:[E#TH6E"/)IT*[4YJ2$QO3UYCD755A9J2_((A]:^O0[-\<\] MOME#J]_,WP)W%+CX;GOH>4"D_#P?DTE%SAZX_BOV[?@S@/O0WT.@3BBMRZ.$ M+XYC_D 3$NKF!&V5[ U$^\4(,G0Z$Z<.QN_(HYC37HI3!;%E>80?VG:@6\.= MX_KPKWBK-3'17]"V&1\HFE-.Y2_+H[QP\ILZ=D.3+;UY>=2 AO7$?@%>>-4R ML9N4/NA/4Z<.M@^(X]:'G4_<-'^"* #:MC'N?X:6DV>;!.XV>X+9$VU MSW9GZ*TBN32=3PW6]0SM G1L8 C_%&^1JDO'WG1WXL=<>SWMX0.:P:$5DK"Z M G@:E\/%IHJLE%9DN<&H9:%C:U 64;&%.[(B>EZPVX?7W_>.._;V>U'"LWQ" M%G4,+2M^D( -<(:SL>%?P)P#%SIF:.X0I13V#\FB&K0OPWL1;-OR?!<:H2,M M&LI/-D1[6P.QN^*$4/]C'7NWU9HNJ.U( DV>(<=6T6_N%@:UT&#%U4(3RW) MBXHJZA'_<1E5&'>@"O4%- MD;\EHX(>''1B0+.(&5E.VM 3ZR>E\02)^AG_QIPAH-&,ZZ)%)[Q9KZ*B.I^1 M1RVB;LHJM"Z9RW6E8<+0G+(.V-5.^2(_W)6[U2SP\3-O_%X?_UA%$;1FNA(+ M+6Z.]8)Z,T)S$_3O=0.;ERH=WEB:ZTK,^\!'_TJLP3-[Y?BZ50?'\@8E<;"K MYV+&TIXD@AY6F]DZ6G&'QI\!1#1$LTK*;!I:GH I2!L5/]J4RG"#'FHQ;,T# MQB\;Y^578)@X>L<%_@?6YT6HRXGM01.X:([%<]$0@8I6*<+3J5QSH6)H+? * M&,J02%D$2;KZ3?1]&_O' ?-!?P;6!R;5G+9EN6ZF*1POY ;'"SF["G64_4+M MGJ[0V@>:[V[Z,_7[C.>U%OJ<^DS4YWW*K?4!?2/^$FZ+,E;9 IJDY _?6"; MP#S\%OKX SQZB=JX-:>*2%D56Q9,B=%E4*.Z;.Q_!=R ]?M-3?0PM,@]TS< M@ M.RVB!%Q,G8YANE0%I@780"RN[4_U7='46%1,(;@8.AY#=J4*9/BBSD7S1'2I MAV-RC?"#-?=UY)AD!*FU% *47XX8WVM5\%WI/Q/WYLC3I60:)917"%,>"6(T M/ZN"YM TD:Z]^'_0X1R<$9$L**L0BJR]CQ&\40S!$?8P=5?.#[L,OV/)K/SG M@\'%A>3HE?0].;8/% ,O7"AF[MQU7F 4?9B*X$EQ]6!D$2#!4@$;3$:VN>/Y MNO5_X9ZZWRDJK!Z.Y=U/4%3 &H/G%NS<0L M_6FF\= MFWQH/RVB!$9,G4YP4L"X$CNZOIY]>E[AVY<"G$Z+*($34Z<3G!2PKL07O,1M8'%Q)3#D%B#!4AG;R,3V 98<.TCIOAZ+2C%A%A57 M"$L. 1(LE;&2X'L1=X1]5QWWE7KE)9"WG91*"J') M+4:"K@*6E%A"@*,N6A/;!#__"Y"'XTDYE3!DZ'D"FP*&E>$.V";VFKJW]*+Q ME_F[$C"5]SB!1P'#2GRFN8>>H5O?@.Z2G2Y)194 C:OS"7X*&%D2G\1(L,BK M]![]KNB$0"RK!()\O4\@5,"VDA4,OCH?4_ $VE,^<>O MIX]NJK_$X4N^FU(X]4'.V0 _R#FTC?X]FDWOQM/E^ [_:SE[F-P-5^B'V^'# M<#H::\NOX_%J^:&%=SEKW7L.VPN\CQM=W\=/[BS?2WYSI'3\B^\'06;K>V@C MC4 T:IW(;YKP@(>M2O6Q6$6,Z.5C$JFSN-_4LK*,3AX\\*#E%TJ6-T)58,;Y M<7%$ _0_.%C?BVX!'./ '^FN^XI.3^$[6 +L3'5EH0$_K'E*5!=8$$7\TU>@ M[GW4'>IQBQEL R"V/ULXM%GQ[1=+ ME3Z1@%M.0<_:T$[SV>F(#L6Y$C):)+""H6:?R%%57$%OYSJ<,!BXT%O4F?&M M:[WT3^,JM#@#1)E!< Q7/YT>!$U^Q*%/KM(G]+GE%/2@0H+-LG]-D%%/6XL;LS020F];#7)V@I$HEZXM@=EJGH MEFPW/^0*LF!>]?J'4S)98HW5,?/.]5=LR&0S\&8+RX)V1?3(]ET&,96_VTD2 M],1ANO.Z(U"AM%[O6%%-XC[< [D!!S&(Y;/J^3P87'Y6FQ!\D@JZ Y+%Y)=( M_4IG [U2[RA105SE[WV2TVZ<58?.A^+"O>,!AYBB[H52^.]=Z."'U>&^I.5# MA&-OL'L$3IQ 9T)!R=[1@%5&0==!6?^ +EG NEEX [L$ONU![1N@[DQ!T6XH MG?*RS!1(J](['G +J_P5$F$S5&XA+JO7.VY4DUCYZZ/T\EC*BN+"6<7<# 87 MUVI3@4-,4?=&TFP;PIN3E ;9[I(**_2.%YRB"KM:*CQ67'6XH2S?2?8.^S+9 MU+]["E_O;QT+R>%AYSFT]H61$&?KZ$G_7(^2LB7NM,<4;E[))96 EF7A4]7; MK*94($NREHKN[%$70^70'CH5E)2%$$T#G*<2JS*4OQ9+!16AOH([*?9VF<&D M"?4OPPZYKN^)W*&&L3![5RP!;8'7T!DSQ/*V^7 M9B(4I?P3L+RZF8_@;Y35RI M>8C'%OC0T"V^*%.75:),:7_+?O'?/KR'G6K/*(=T/W/#;IKA&)H#-QQ43'8Z M4N7L,,$7J=U,(%5MN36D5-XFEY4]FF"'@;]U7/C7<>!3:7%:J5]T8)).>1M< MD:?SU'4#YSZ!H:;JC*@J MHB S6)=ARG+) $HW")0:/>(!S]9 79-43F#JOH!0NG>HE^\(U(T[Q)'XA*5* M[[!GW BHZV2>N3",Q0\E9[EL39?/JN<&J4>MF 5\@C7E.]Z>9?#P5V^V)MR_ M<%@(/['&H5^NT/\\CJ>KI3:[1W]ZG"_&7U&YR6]C;3)%/X^UOSW,EDMI;861 M>@Z2$LR#Q%)MWS'%'5CA0 S$^Z5T(5G&<8F>LY="I0)(%V;><_T4@.BG(WCH M!QP1TPP,'YT]@/L"#3#\"4]G9%(Q60#D0.<(*9=01%!;PR>\2XIZZ=TY.QW: M9)#R965!BDOIA5@QRB8&,+3(>1B-R\'Y^5F("/[-]R%JZ=6'AO<(\!7B"1!% M1234/Z,BCR PRR5H!JQAG"#@AA,F;UR\)?D&@64N]-V>C""Q<%KFLP'Z_RX_ MJ8DEGX2";B.Z-#D=U@>TL043]$]B;HQ<05E K[34<8JECS;Q+MK+1^%\<0!(]'\FV8>R M0DNRT80);2)):DNNO)_"R/'"M3-. 5(V:Y"*RT:+RK,'EX J+Q-8T-DZ'@<4 MM ]E9(.8"ZEBH.FR*3^V%P@3I$^<">X.R6DY89J/6%_$)8%2IV<4X)=5>7^D M); L'.D?V,#5+23XT-Q!&V*U^? %T+G!5KEG)*DAM/(N3,.=X_KPKQ"MV?HT M=02!)?1*/6-'!6$;<&?J,@Q.$@TJ?Y-%BI1U+-DS,K!*V$!VM0X9@&UH"*ID MW<2QH @,*"C9,P:P2EC7>:GP27#7P;"FCNUD1P!].T&OE-4;TMS%CXG$@,6RN M<<(]63+:B---8U_L&3G;UE133_U:)C-21*SP6W0Z6!.#(!!*]Y)$;%+6]>B2 M("3&%/BE6]Y,F9[!72Z;L%1QG0USEG@)0]]WX7/@XTO(E1.]P2TQHM=M5C8F M53:V-Z((E2/]D11RCQ9?N+&CB)S&Z\K5;0_)CR&VS? G*P+<_%?@^7$RYU!] M+)=H%OX\= 7'=J4)9JWF3=*6"%J:N#VI&N;1XGFQ= M[5X+]%$24XU2(ZLB)-[EU5L@%J]&1%WN=$::)!AA\O;Z5O>@47*>H=:1C3B5 M#RO\4O;KIJ]0?AY&R,8$?D 924$C0S,Y+CHGPQVT I_X>)U0^BT0@B9JO_;# MOZ.3ZQ:).GP!KKX!V=B"J:?=+"M*I;9DHU/EE4:<]/W*U\FE%Q',DHU1XHA1 MDW1O8(4CZ".>SUGC=W"V\DXX/M6TLH)V$R:"'(:8(4+$>;4($V#I)$A4I%'\IHJ#R-+JZ-4U(@SC/7E62>S!!<&;#$D#N*H M_$#O(%ZD"6Q#+\AQ+](6#M7X?J5)/^![$@3[176%L,VK9 M/K*"75#B8RI%0RM)A%^E\QU=+)5C9@C*(G"B!7(>3EAA!J/Q;F\YKP!$Z8UBC_!B8S/ND%Q;B2=D(3Q*N2QK*JO>P\BIXX?G!.;GP: MZML$ES'/A&G\&T,5.QI[_"/RM0UI,6:K*QS(19DP>8>O&+9,M;&-&$7'6 MW5@3+#S)UI"-'I51+B$,@]1]FUB.X6:\E4/P^4M>3&+U[G!$L1#K]&YS 9#* M/.B#.$]3-'$O@.%L[+!%HE=E*U^7C;^5I[XA1_25] 52&6XF MR1*TQ3A^T,9Z1PG<=6][;SD_>%*V7U1,V3Y=%X@PNWU]0H!/[$,&CZ'APY$"NG+P MR=@VH 4R@=%7CIAIING/RD)7WDFI$[TH_82AT/!#V\GF"LO"E4XY0-@OWBA(3I, M9$):-ZF5WEE6R+(*2FOD(7^'QKWXF@2'M$_RPV/A&68WAIKOM"ND757--1(_ MX,B]3ZU/=(;A1A-[9AS>0<]P CO,V31WP0X&.V]BOX 8.=($6*FQK)ZO.W^0 M+ E#!2JS[@L%"3*@W<4=Y4N&5U+KG7F$C1^_UAIQ%N]P7DQ2J(8@<.27S95_ MYU@AQ_CT5==SM\07KG7#'I(8WVB#.Q#]+](HUL=1K6%&=S3#/T#]&5JA@A$L M)7:[FJW*PE1>LUP38JN.I&.@Y5'VF4T M$ORE:V8EVXNY_EIIPQ;7>V<3NUIZ$,@C+W@23&(!PJ"G*;4R4XK8&U0C6+YJ5FV?._=B[G#:8M%,#UZVYV5/[N5^A_YV%'B^LP-NH@C2 M\P?.5MYI5E5)=5\G2\FX[*&'GVN$^ED%WB %=ILGO;,=/8=Z&GG;V>'1D=TE MNK;O_]ND6TW]"'M"VEDR=8("(M\ :],* W)PCA!KTQX)17D$]35*Q,# -.[ M1PI\U/W #<4-SJCH85?D>]Q M$58N$1MXNX3B4TG=&Z'ZK"*$9D_-N?>.FP3=1?-N(A^%+OP-])XN@E0B65A_ M\3/2;>!!&Z #D!<&N,$@E 1%XVFB]S03II1&/*3E,S<4:+KV(3"CS[-!YX%F M&R-9394(NO21SL!P#VW=-@08&"@-R<(Q008&7DD%74QW;F# D721X&"V?G#L M#3Z%W(%GXN:[M*(LK!",-MU,P*&*?J6^22N!)W1_:;TW22-V3?3@-7=.<%KV MFN+";Y!3-KM+:)[&L"I$.+R_ZR:::*E'^E#]>KX&! MSK?CGV@V5@E^/]A<^V+;D53>)+^)+2NV6;V%ZF2$]NP CR]WT%O M[WBZ]<5U@CVJ$<8RL'UH!\",'34:MWG'(BV.^M4.^ZE>A]8J\==Q>!3K_48ZRMZIQ:1SQ1 MON5=19.)@H !#R?U(K^%29?*JN%3Y]:".NCEN< B; ^\<+//=1(K&X$ Q87[ MS0,.F7MPB78(UI:XN]CFP2@6AI K\_I@K2\+:;B=/6H)*"II695%@N 3.S1? ML*=!VGESMKZ'/X$9/=E:N;KM15W#MX5Q;*+X;PZKXZSXK\A"(#'$.'&J;4E= M?NE\$"1-=DE;R M<-V7QG4C&($N:"(<7$CL"O68/$Z^SM9+N+'A&AKX56FD"*2AN6-!(^7.5)H, M]VR _G_MHW;\+/KA=KB3V50;3N^TY=/CXW#Q#?]M.?DR MG=Q/1L/I2AN.1K.GZ6HR_:+-9P^3T60L;8KP,/2AJ<8!;@!=@!X)@K/N7GBL7XM_'T:2SK M<(]EQ):>HAAN)6.?N7;+>UIZM\J&/&OU+,4O!H/K;H/_<6*9V9C6$5FM47VK M6]C^N=P"X&-+@F.G;Z48!OEYT8;@83@=C;7EU_%XI8UFC_/9%.T+I%WDTSJ( M7U($2E*W\DJTF;D@/&+SC/V+ M_-A_& ^7\F[G(PE+1O1IH79'[@,.LP&R9H_2L4JO)-OH+$8A/0HKR*/6LAM: M[O$K/?0Y;)(_F@\9AMUE?M@M5[/1?WV=/=R-%\O_3QO_]]-D]4W609B7?>KX MH,P?KJ12R\MK86^.B)2NK:SULU2_' P^=QMRB V[S():2U2U1G62MR#.[)EY M%L\PKJ_RXWK\.'^8?1N/M=OQ='P_66ESM+66=GE-7T6&3L(^=,.]U%&FDF'. MU4+++@_9KA5A73;L>9J0;>17P#;CZ5!7=+5F@I1/*\<$<)V? "93='X>:ZOA M_\B[JSX(RSS,J34Z@R@N!L?0_)P? MFM/Q2GN8+9?:?+S0EE^'"VG-VF/=M=$QZB!WR>@D%?]^V?KK^9.>E(U,8ODL M=Z\&@YMNC\ T%>=')9]8:@W)@SW>-K\ 9^/J^RTT4H\(.,;H37Z,CI[0R?@1 MC4]\'?UE//NR&,Z_3D9H6;V?+1[#FVI9!^T">G_@@/5/M@%<[!G#$ JRI$[+ MAV2PP?O#!=CC]*;ABT#6XW%Y3=D&-!-:F7-Q11G5&MWW.G1_TZT / (=_YQY M\U0^I,\&^2%]/YPLM-^&#T]C[7$\7#XMQH\R7RX=-,!^I42K\KUUE\C8GTJW M)C;J0A BR#Z4&6O+-IS+(,B/YSJ"JC6F<20PZ!_RJ82/NC? YG,D.RMP)$,G MWT9)H0"U[2[\>U*UG&,I6/>,I * MMSMBL[TH&YV$TK*-1#H.Z=''(Y#"?F%)]A^T@WE&IQP^J]Q9@9/8[=-R,ATO MEWC'?SN92FV&*Q"^U"644J6#5R#YWK /6;;*6<)_'@RN.G;_+ $@/Y)KR*G6 M$DI]KL+Y'NP&[;@'GW)[;OI++^UOR5?^3=8A+_+15_N1.1#742?,D"!A=U[+ MC^;D*K(-;;JJBT[=G+(U-9Q;(\ 3CO@P]GRX0R<#4GRQ;"'506:01E"PE.Y@ MG>/-7A0X>0$,2_>\%&>2BG+>H9$SL0VD#_@"0E]>ZHQ2H275 MN2-*Y 8"E'3KT<W0G(T-V4T=I?54IT]!1X# MRX=[M!<';N@/6AX<4C@($0 M)5641KV*;*)BIHN&=F+[8(-]BI-,G3(XJJM* B%R)O!W9OLL MV3;&\9MX]H:$*AGQ4X/KU79>AIV\V+HA, M'[-U&MA21V:6NK(-=0XD\N.^NL3*^U,5*@OGJQC:YB$?!1-M*K34*Q*)DE]Y M7ZZ[N)NQ-F]?AZZ+\YUDPVF5/Z?@:B6KRK/!X+K;R$3UYB,!LG?MU44R7AA; M8 86.$RR\5W.7\",/ 7B?"8G*L"/2F_1!A_?(X<9=(#GX2:2NH=B_BW80!O? M-\_68]W8'B)01%YRU)E,O@[V@M6*J%5Y5[=4>KP$''Q*9EN\6>KV@HWU)6[* MUZW-% B\)[SS_ F/E =!^B-?"PD1VG\8:6^LFY>N(K?[BBB#_S:!V='7^1N%E AOR_\O1013;+KC[E+:]%.6(/7D1< M.Z0*+:G(2%%B-F7[;"\G)^^.YRJ_XRE.S"G]#JC5#)W?\<.PKI;58\25N?Z* M^S?\H;N'O)-A5MIYX!I;5 )S D_)D4S'V9K3_"W\B]G1=SX87)UW.LGP0D]; M%-M15H^VB0?5A"L]* XH-+3";L0NVHD+6.3@%;T'8F:SX._UFGQ-_2[T)D7WX7@/ZT<_"LAQ&ZR2V]O%+2NS:9N_UM)H\Q[G/J+>O!_7$&N&U%%=MN%]<$ZH%08O4"W"?G8Z)Y\W6 M(R<,".\F]D*D9Z06]-][I%C'964:1TM9I5YT'LBN#K7JBMTC^U7J ? 8;7)< M),9AH U]WX7/X2G%N7=< #?V" >#A"W3NN4W<%_O$S+;4H_QC MDM0!&^G7?_T=FN"X!Y_9665X#P[V?'G!#[JP/\S$GM@F?(%FH%MY14;_+(WS MUF87^L7QCO2E5M2!HFQ"O(XI9X/\X?1^.%EHOPT?GL;:XWBX?%J$F>[E]TPY MZ(,]T@"M2OL!Y5*.?9C0,:SFS%Y@@XR+MK/8-EAZ \_;C&Q31QDH^8E#B,1J M9>'%B<-YQWI!@!&10T%E"J()L$YV1>\L;I]6DZF MX^42!Y*ZG4S5N&8H4$5I_"A*E?8ORYD&-XW.EX/!S:#3H5NFT/P 9I"G1V;^ M1#]A4!@OS)F&CIRIG]CG=O:F9",) ^2TB;ZFX&KMWL/CR&P]3Z-DF\M@M]/= MU]DZE58E'UY_JKO8*/V"C@"^#BWF)>%B<#8XRP<87$Z6VNQ>FR_&2W3*C]8$ M?"N]?'I\'"Z^X;\M)U^FD_O):#A=:2@W9L&; +@\XKWQ$]#L&$G?ZSMGIT&8%\EA#-B!Y M,6% M41865"-;]9RW7\$NV?@DI"EUY(>W1)L"M"M(+"@6;M+?XN"87$+;&.+ M=G%_\,W@F6JR\4/4-%XN)-%DTS6N2<_Y)O23:EF1KP:#RVX#"E:"B 5I!K$E MF=_CW:B7"M5$F]A)Q>5'E@&2/+):C1G%$N2X*X'V,Q_FT\?1K+[T;!F!>4,*I8LXJV']FFKH-%]Z.:0[=\ MWA;9L?GN;2$;\ S8U?"V*$._-]X6W0/)BTD-;PNY4#T^\.3SMRBM)SW")?CD M$:XF<@_,@*WX7'3/$%&3>;F0;\GGHGM<*T%4U^="KEE>\#V[C)@R@%'IGEWR M:=QS_10!T$]'\-$/QSGMN'CI5L&<32V;5#Z2IV)FE^R)J_5R^"*8F>E MNUDX%5/+R@(7O^9/4.,24,Q,NS?7'H;DX7S:'D%J0#B4O(1H(I2*G]+)NQ*7+%IE%.L#J_$"4-X&F!2'F)Y+9W -< I M>)22TJ)'!^)DQ'+(UJ^($(WZ.2C(ALI"JA58.KDG@IZ^V;A@DX26K'Q]](ET M?13^.O41S5EK\6?>KY8ZRLI;^VJI^X'-H5N^JR6QLWPG5TLKN(/V9K9.4JS. MUE\0\>E FST71/ADJK/J-8@I 6:*.)SYZ'\UF1=>:TC+2(T95_8I=A MDDJM@%NQ),FI)7Y]Y54X<^>B*A[/W$GK6M+\^UF[J^"[=<_:W0]=#MWRG;7% MCM].SMJ-/-+N'G(&U/)0L'#8RQ$>RF[2%_@C-](U%<.#L"S@:#JVZC_'+H M.C_4.414WNOZ1-;2;0&Q?)\94"*E\L&)3L1E@[[/@--@%KF@B[C:70##V=CP MKT/G)[9A!2:.GW2Z@ ]M\Q9:J,F--[''/PW@>3B-X4DA_Q9LH&V'KA)17)NB MV^(6/ML+AG6J+"5##XTN?>!M48*231>81-Z2;OE1M_2?$>+ MOH84IL7?T_3C%?C[QO20Z%RMJV^%)@U"%OERV52^ 6OB[EL"S!E0JWCWW5?0 M1=Q]2P \%X:5[[[[0(+.[K[E) D%97%WWV)IT].[[Q[P@U?6][OOHTJ0.#>7 MZFT>&,52^NY;WT-?M_ A.ME(X]-;^H;8$N)L(TL%U(2AILF;X <-$HT>]?=-2&&.\?UX5\A?GS,2-?L.T5*96W M)BT?5R8[=$)S0[4Z'C&,*TO=OO.%0=J8,9?]8$QL$)YC!>"@BPU-$T:=GMAKQ]U%=@'^V[ K M\FW8\1-:ZAOOUU_1#DG<98EEI4%)PZ59W'B MDZS1.79HONBV#[#U!KCH>#6Q#?)D2BPL$R)\RCV9-?DDE'5Z[.+Z5+'IDE,L M06;N3JY/XY/8 N!!$&4L#4_XM@%FSQ;"'9\^!"/2S1 M?[TUQ$\P\EQK6!4-9$AORP2>=HD[V/GYWR.?YW-4WPX? MAM/16%M^'8]7VFCV.)]-Q]/54GZC=UHG\:'^*)E78O-FJ_S]DW(F[^Z'/;MJ M^2S>V5$LC\6[Z^<>W2/.@%H>:B[A^@:ZD.<>W0//A2$;!2B"JDR"H6$X 5JR M%\ \ 4/$ZJW/JFX"@2@()BG )>@/3 T-?APHP=LX)7U_>&&3/!7V@8PBJ7R MPXTG^QE:%@Y>D,QQ'OW%!KF"M)#3T_75@Y7=QI'TM4^7>\*R&N*T8*UL,L(6Z;< ( M--MD>$E"J=$;>O#*V%0TH]9H@-.-_4"S+ 'SY,^] 9@JD*!7'?(L#,:? 42] MOH4\.CW.\ ;K9XT42=UC?@R0-H0GR :^)R4:/)WI!( MN!):>0K2^IS"].*LN'!OJ,(A7DR"ZX9FGXO6[2@ZVL2OT <>@.Z!*? G]@OP M?*R#B1W^+KT9&R'Y((TH59OK#96$*B FV^?>W+QG(Q 5!B"J<#G_B?ER_J,6 M]T"+NZ#IMJF%G=#B7FA1-][O\>,<]EV&]Z*;^PK+9L?1E519S>B*SL\E[ )* MY4#8B*]80]EJU"9(57%[EGFDG0!/BE.EDK!B'=<[Y C#M@P;I(OW9G0:B6BZ M3TQK3!_]"@"3A&:?V&CW#%;ZSV- 3O3#T^#ZKT@%XS\#N,>3=(4#^#G7 3SZ9'CR M/GST_;BM9J089>8![D Q8D_6'<5*CX;:'&G(3P_QVU>\/Z-XT#/4E(T'#%@6 M+035Y&PRTHP(@''GJ;[R##5E [@J5ARHEP@O">IX^0[0EO/0;:H?-*%T5L#K MP>#Z6DYT2S I,HJQ"]P#S_@D4@\.\Q/_\PZ\ ,L)90_S5%'YP5R_OXRIIX(> M.-/?!ZX-_2#4P#W\B?]%)PVY0G]9PBFS(--IE[0(C75;QS(GN[WKO(2[*SHO M*#7Z2PQ>H079,6LP@Q#B S7EN+@TM@>L@.?3=QA,=?H'>W6Q&_%<% $\(]9O M!UY.1.L:!+N.[?EN8.">XW @S@:A1I_E:57Z1XC*4C?B*BABN!][?[>& MRU?/!SO*@UJ6*K*ASHW5R?BO(F[7;^U*P1Z]Q))D[CM8,*?5["_TW%(WX%:C MZ*/J[FE0R1S,*);*CZJ)Z^$7E^S53:\D+?1T%#GLPF0QNY[T1018"79!=&V6 M>E:'_FV!@O=U1!417R*):3ZK_,]H %^HR;%&%5)W8KJ)V&B##>Y?)WPD"DQ. MJT>KTAO>< O90&J]UMU3DG=92-[3IWM([ J.*A</GX_N;GM6$@1B'KC&%ON61V%"D$*&YK^"R.V\ M[%4S1TM]Y%%=\?L5E^LL)F\I)C M,YG;/[YO'3$;VP]W4-?A^68PN/JDPD"_X'5XCB53V>$Y>@IT/&.7APJGU) - M=P;L\H#SRM=#]*E^T-0ZLC& %TQF.E#$59D0V'-SM@[?HY;X,YR44P1X"FQ% M[@LL0G;O$$VXQ@Z]<+'=,WJS1[FV+B[9)TAYQ53YOI(2O>WV-4K3:.E>49;6 M"BW(1I)*2WY=>9O,[RH&^*,0.%LG=7WG;$4V M3%DHL=S J1Y1U4'/$F/ 2A M'GA;N"]9Z,DU%$*>&:>"30"G KK?#@B(LQ&^Y 'F"AA;V[&L"1_VD,Z6D MUMM@2Q4E]. UU,K53;#3W3_P]BK\ 6N.SA=JG;?!%GX5].")U!QMT,H>167* M9!1Q,1@,/I_WD OE(G?_"*HV]CCADK/; Q\,-RY@>!U'KO V6,$I?_?/I8HI MXKE^BA[HIR,UT _?%TA=1;$U,G^3#7"NDV:Y),29O27U%P[#D[_* D&Y-@LT M7SYL&CF=E>C^$4T;NV!'U'[F[]+IG]*M+ +E8LAZ;BK#3_])QR_]=X7Q*Q6C M!Z<846]Y5%N<.,42M ^M8ALGW'1DW/]#GYG9^G035G3OP5)/6F3I()UXN1H*'?Q1-D)_^T2N]!9:0Q!05V;PP5/4G\3O=V3I9=D\E M/%X^E>UZ6=I0GA/BI)8JGV$MBLPCW/ ?3ORJJE.&W.9;HA"G%@2%/)* 4ODU MAZ_R6R))R1I4.WVA-.D2AK8=Z%96*1,3_06N(39-"7A4=,7QJ"CJCI;NC^:L MM72/WA\>%;^.N91H>YO&+_;F70!\K8I&SVQ]CWJO6]^ 3HS%6[_E[.C]U+F# M"CN(?">J.NI0/M(/GV*F:)I:_0#6"WAT;'];P<3#T.C;Y1V3)OIL-RS0"1YZ MJQ^.$*;%;;U=@M$4T&O+(T$5Z,ND2X^*K;UQ;A%5T$":1MG9=>\$8G9G26-O MFUM$#320KE&$12&2T"J0$ MEG!CPP^RG!-;4;:X/O&E$!PW8.L4$9\Y94I!< M@>VOG%L02WBT%&2#,[/4[ T?:H@KRB;992#$,/[TU+'CY*25K4O7'-:E\)L: M^NA'(_KJNP$I1=$;I3*88\_[YI*8'UM7=+ZY*70@;% E_7)$>[*?H64!\YAS M&\GOWZ+?X7\/_30*=PB#:.9.%G(\@X\<5#]8*1.3MGE%"#H48O6%!5SD92+'6XS\BJ@'/:**K3"W94E[2! MM$O2L./)W@2ZJ]L^P*8E#YK8&1;ORIAX0JS=8\;PR=R YX0TW"FRGU>^B^@Q M8YC%;?2!EX1DH5RVC)J[VAHI?9BN2KB*"A%T^);&0*?@E>O%8'!Q]4:I6:(3 M07X@9>QLTSCTJ/L!^CH$WFP=:F>NOX91]9[PDX:3TTT%8]$-A['HV!?\!BFR M#B7=T<+^Q-8C_V ]>G_!2;C Y$F/J7JE'#)'WG)HM">FK-9%03.AXC"+ /+C#'/PW@ M>9%'KB!:DII_T]3D4DI=RZ:TM[Y=^H^\,<(U:93LPE^MHE7Q8G!V:E5\& ^7 MXZ7\QL!(XA*C7[;0]ZO6AW;-#.<7EX/SRVZ'95Z%!:.O7 +I4A>+3QS3/58, M.!S!*Y=$2;C ]#$AC[4K15P=[-U\NX/&]*]K6.=FMPJMM(/+@B2NU_79EEU MG&1)V)G_$2CHCS/V\S2C/**&"*Q\JD*J%N]@"N$ JG@/7H#RQY&SF;;"( M57#E0P)^2;SX9\\6W(3 >7$6P?'/?6C'(A"'H69695>#P56WSL65N5)5UGZ] MW"Y:S//3+=%ZR%*Y-XRI(6XKV4N:M)RGHKNMLQJ(@QY4,*U_(IC6/VK'KV'W MW,/W8D?=^(O]-,%WO'/%07&8=A6XH&PC.Z_*LBT"40KE ^@OMX[KX_FH#-9\ M015A991"^2#U96@J#2(3=B(?*S>^;,;O3%Y/%\T'J#]#*WR 4F'A/"R[!Y3K3\FGB3W06LZ4FJ-I<=+=>#P66WV;ORL+#MI2O+JOQB MS:H->M(1SE;Z3!N:B#W8 W H@9)*A+N=WC.&**3REF4>-5 2A/ VTW?&$&54 MWHC,JH6:1.DS06C$$/EV0")B<+X-J-16[RC#)6@CSOU=6AP/:F R.QY*J\@" M'E&:2@33-T6PW")-+< ^<(TM M&@MSU]FX^H[P=H=<6#YT2Y$ZPEM!-"+,72%VYV!?$V;,HN*RH%8! !;T*$** MP8\4IAQ/+;G>H'*?"A_K,-61'RJ*MH]@59>UZWL<7JPO*F!]\8:PILFJ_"V, ML/=/BTQSI^\W.&I*"SX=QY/%N(:L7<_R M8HYW.>'GP(6..;'O'=< I/<]+%65)TAM895?&U8NT+W ?0TU$"ZOWM! !U"7 M&+R+4J,W?."54?E+]XS B:CQ:R3LYHB&0J@&%DY0JO>3(+P"*W_CGMP]J>[B M*X47_F1&+; M7 ?S1V8*D=)2^SO'"VT_TBGMC'^!@V$;A_U=99YG^D?C>JKO MBF)J%161#5X&= JF\S*!FK3!5\"FT )?7$@V?$I534:'(E"C-O:)C=_HH^4' M=P1[6WX:G)V13:Z4XK*"0='LB8V55[BNC2P$2.>)+> @Q2<*HN32Z@/**5O7 M)A$./(>[Q:X,'SSQ,#.'+G28MS>AU-[MZ[%,;%,)I3N*:)M, MF]XF/I51[>6@N\4ZF&GKH^<%0/<,X5E%X&6O#L M1XE4-0 %>5B;N%^/)1O$-R?/GTWZ73/Z5;603*Q>A#?/G@ MV0-_!DAIXQ<\F=!/9X32LF! J&Y#_:+SNVI2*I\+Z27?E5'^&R-1(#V)GK<4'0=*JAIY=G7N#(: MN$07SK,DG=82_@S#FAY&5"B6-[''NK$MYU2%9OK!'U&"-W 1+\^0KKXKTQY0Y*-II=:4YUL3\K>2 M84;^HV_R1.PD]U>\58TTFRB3]!:SG8_WA\7=J4M4D$0Y2)\Z2(WT/?1U*]+! M G'!?0'FO>/>!W[@ CQEX#2LY)=,?.WTAHIB)!<4?[$[V_!AZ4!"H[%4/$"G MCOT"/#SL\%CT5CA0:/KO^,'MU/&_ 7\!#&=CX[ .9I]O)"36*V MJR%!H2,EF18;TUVTVPJ?$H>_PN5(@3O:[<0[[\6I+3&D#WHV&D*GT!\VZM46 M[O&Y8+R2$07+;C9NF*@D.X!6SLAY MB>??<#<9;1S#23E67Y'9N:&O](-V+>DE86+M_$=27KEE%74'##?,$9_WN6KJ M,UF=GZO*Q984DY!1Y*6)(GY5X4 -"Q=>#PMO7WEBMJ.1A)$B;S04N;D+__,; M\/S#/2@QB*[ 3_2+ETTJ):%F9]![OFZ;:+1%7FRB)SG2=Y1G9[N:2=R515X;J,74+ZB@[TWB[;Z2]F-Q8NDA%:#NTBW2 MDAC;[^O$*7[$W.4[L-WM=2'M;7C M:N/E?/X>NCL;6EJY/)H23"&<^BUR="X53^5W^'5"=TL +P,Z>4A+!9(D,%W= MT-T2X%.J:C(Z%($:#=W=2)QGB:"@Z/7$G,(IVWM<"GG KC0O,HHE75K$-@YJ MAS- :J,Z_KD'."[A"K@[X4>UT@]*2SDZ>P0>UJJI2/UIJJI9AJ:OWQP+-6-! M_[6),"OL7\Y"=CD87$D2;;L2JSO0E9S!3[NB]P)Z?]R[ $QL)!#P_+;(7?3= M=VK7TE37&2;D(G8R(]S!%V@"VVQ[UDY_]YW8M32E?$H-L?=$)T^JPS_>(=T= M=-S*35YI+]Y)+U!OC20Y;?D.96B%HPLU.%N?/O;#SP"]"CO:\Y: M.WY?BSJ@A3UXOU#)&OS/E;M0Z7Z>X=0OWX5*=CI0\D)E8J/Y AQGXWA44NY7 M*#5D Y\!NSS@O/))7%A1I8BKB38XM5PME[J%O"HD<=S MY13!D() 'D4V(7N09@([_R+5;M&R=0=>@.7LL<[P.[@:J./[*FO /5- M?H)NE"5@1*6M'Z-8*M\HQP=O8!;;46*6$V!GJRPM%>BHYNE00]P&CH3MF88. M4:**RB:B>BG()0"8 9^"R;]4(DF, Z47(@JE()> +.6X5[B3$J47 M22C7;/YH"4C0&J"%1@Q./:GO(2CJV"D!<:HL-8QBJ7SLK'QK/_XS0-O\B8T& M11 .O)F_!>YJJ]OQ??[AJ-#,&W_>[TM+2#JW!/I9"-&8H#EM'V7Y\'775\O5 MJ%2)63>6UEF?_?P[Z44H3*JT?1)3/_O:O77J9S__3GT1"JM[Q\J32M34*+*MW*(EF\PU7FK\CZBFM*HH%287;J6 MMG78DV](4#[.:3B.+IW/M@:EZ=@A*2]G,D]?7< M=/8^C,1J4U0FTT(#1#..O-$3B)7^$WA3W8W>+'#[Z%X/SDY]="?3T>QQK*V& M_S,./7.3MN7WO#UHA-G3EE*C_6BVJ#-A3J4DM]+$3D%,%H!<)TOUB\Z7WQ)M MY^<+?NE4=KL]R!:_,X@]],NHFRW=!\R9Y5+906J\7@/\IN$XC^, /"/']J$= M0'LS0TM)"!1IZ+,WH#PG:HHJZ)E>)S1YLMU#K!0D=SP:2)P@E%:> #QR*1^N MBB LVNWZOSN!94YV>Z2HPYB(1P,?(TH:ZRMAJH@MZ&I2=&XV@H0'3TS21VX= PW ";[AX<>X,CT#Y _1F'ZX2Y#68CWU"65NUI0] 5GG2S%XN6 M^*8PEA:5)5Q3L@NZRFIM,KN+>X5^.?0\D-OX<-96E@\BY!1TY]+=U)(3\Y@6 MRK*<'P5I1SEJ*DN-NC(*ND!H*3O8%/@/CN?-@1M:BD>Z9016'-5RK+LV.@T> M_LAM#?VIK^)HELEW<2Q++?RR_+;24UV5 M&$K)Q=N= A#\T=#JLR_2>'M'E@HAZ">KXNM7)E'YR M71-YB,[643+D5#;96]V#!@%OKC94YD-]00493+N\+"8HX0Y:01*X)ZT+/LZ0 M6NDA:[A$%61![9(WIRJCS2B%957F +M REM/,2,>E^X0U3:2F;)NM M[/V'M@]#X> +6 (C<$.K6H5-?RX?<.&F'W_NHQE_3SM^\,WL];^W_XJL;JPQ M>4?N][.BL#G@(F;D1._YI6 $:G/=(<=@O+/ )Y_G;U^(&:&'*FONB M;$QCX$Z><&WK1Y)X5L6]+@V'5E9--DJTC2XKOTHT)@E)&@YZ=M5YZ(A*X.0Q MYI>Y!['ZDS"ZH14ZZ2R/4.87]8> M6(^$12SL'OY*^T1&L51VR*VY61KNG, F':F%M"TMD>B<$'[HH&BCJE7W,[4ND) .%6B!_B622,JJ5?*IZ9# M=&LZ3"F)<+D\@FZY+1*\W>P7XSD+[9,-_)4-N'U]U/_EN$F]*OO$W-THVSXQ M[HIV[(OV_*J%O=$.W7F+&\/KUBT7QA:8@04.2YJ']SAC!+J+&'_ G48/U%Y M0$0, %FTE*RA%6AXD/:=>D995DXT'E2!B09I!;$F0#C-K MQZ, ;9WH28.+RLJ/*0,8!7,\LZP]N,\<&@:VJB)Y#0!?\!Q'Y0&I>$^IP"5N M]Y>936P"2O)!4FK(QHFNEGZJ/HBDZ1AXW&F^!?]80S;@>3%A0+5$6$E6^(33 MN>Y3Y_B26M*C6X)- ;H5!)9UZ?=B'[UF[4,&\7EQ(-LP;G/)/;;F:TS_2RHT>02=94I MY**Z!,)Q.83CGD)(DTOL364G/DFL>[*'$M?:JLW)PI=6[0]"E44D8/M M\AF!,[0JLO%"*&0,MHLR5?3+F3;1[NWK\<]#%^@5?"+.:_E$>-@3XM@'#7?B M+7I"?'[WA #234%EB#7K"2'T>"[S)<@-$O2\-YL0]B6G1!^R B_N$J1[X'DQ MJ7$)(A>JQR67[QJDM)[T")?@DT>XFLBR7H7(YOS6/4.ZFOS+E2+K-7@3SF_= M\Z 21"Q(,X@MR:H@V/E-1DP9P"C8UC/+*NNT7W)O>GB]?%SL=(MP$4XL*QOX MC4[L_)KH\%H\?JB<[B;Q6IQ85A9X^35_@AJ7@ W,S!XP?MDX+[^&7I3N:P1< M_,,1M_@7WY^6)R =_R 5(EQ:/2)2(HUD\RD?=/\Y)T#WG_,^04>01C+/7S[H M1E,"=*-I1MCK@=+0$:1I)$91E^]^'?NI.%9508D^X,LJEO(!KF6\5>^0,ZW: M-(0J2Y);=7DBQTC (J$ $_E36T-=.U%*[XR??Z# G5S0LW?LU7,?DF BIC\NT:$2ZMEII\2]6ORG:^AK5)34!9Q>KZ MW50_K4W=<::55;<194GB68,&C!&X6+V%^=Q)Q63#7R@TA=-*N?AJO<^XUZ&+ M,Y*#1Z#CG_&TZT72Q;\Q9_8"1X-WXQ2VW.$JD5YR8LTU]3C8"\7&!PJ4V]"0)%1\= M&[P^ZNX?P+\/;)-^SBPN+"T-VH QSR(.)4GFC5:%/T_++P[ZOHWG[9'C[IWH MW@QOTX<;@-0)O&,6(BJY*K245>JGSLW%'3-/E 8E\[2K=A+V 6NXU<*R[]0Z M.3.SZJB!L#B=[:\/__P*@8NPVKX^@!=0=*O%5UDV?.**HFYK-!JDI>% M;6_-TH9LN-> D,*'RIJ09$M\Z',X@7JA'LZH*PBEAK205T:)@CRC^#W8]A:) M?,[-D?.WS1&:^#W8@XI*:RP!(RIM$!C%$K1A[,06.]*]+3I=X?\9_QF@O;&5 M&2I'DS7)[9:UOK2$H&.;)T4]B7NP<@Q?=&CA473ON/@=^/%$?@>>_>-/H^B* MDD M&\FY&;!2@"*HR"<+-RZD3+-5V2:FA @TH.!*V=ARR]L D M(KX'APQ?P#0+K\-L%TB_QA5&EUGI#(9'RMV*&;"B" MA+/;03\R ]@F#K8"[=C!C-L"<)9_5C*:/3Y.5M&I'P>(&,VFJ\GTRW@ZFHR7 M\A_W:=HYB%ER_N=L0S%SP$7G,T EC%BM Q>2GA%8(S@L#6#K:"HIB]Z0+B<; MP SX'$'EDTHY7&.!GFQO#PRXAL DAVX@E94%7SZH3B#F$JY#F G9'"=H#=W9 MJ-_1L;;XS$XI*16&7%@<<>053SX4YX%K;-&F9/9LP4T9D,3"O<&23T*5S^#" MS"R*K:Z<8G4(,6'$KH"[FZWGKF,&AO^[[KJZ[;\6C=;"@M)B1X?A9)BRB]8O M^TE^>B(,VGQ!Y8'G%*VI<#S-V#"6.,(GV$!CKKN^C;ZYA?OAQ@6AAK!U9VB^ M((X#ST<'Q 6P4&$3%WU=(>I[Z%2(5RIN:\>GO+5CN5H,5^,ODY$V'RY6T_%B M^74RUX9?%N/0\4'[?;+ZJ@WO?AM.5^/E*C2(+,8/J,I=6.&;ANI/E\,1#IJI M@'6$I,JRB)@EU12,K7$Y&%QW'6BG7*E\IH]8)NF.R ((>ON:_@O%58*] =GX MP(!LD4V\EKB2//I*]Y7J$9$O*!N*-0&A(TP1NXE/()IRP*--Q85G9$*\T\[)+)LF#ZU17 M\;7+%/7A^)OT5$7U1N)L13:HV5'+(RY"=$D6W)%C(5S#$"4O("47%7IZ)=F0 M%H%6G@,5="#G?%^RIL>VIIF[!.X+- #A-K*HF&Q$X)K=N822[O$L&ZAX.,2B M%8>NHY:5!5XNI H!9I1-S)1-L&X/44NO/C0HMU G1234/Z,B3XS:+'*]^_<> M57(5I6Y392;E%$O0"[V.[A8=XX^)YP7 O MP-+ Y<*%C+K=(H]X4_ C_1(:= MI;*T5*"C6D2'RN+*N9'BNL.. M:I(JGXH"Q]1'7]\E=WU'!\EH=!!X45:M-[2H)*A4 0%(V[_C-6>\&8K3+Q1N M!$F%E<>Y@G@-)#ONT-&A*&7J ]2?H05SSBY,=92G1'4I8V9S;HG34UFE)'3'BR]9WC^O O M-,?SC!*ES=3?E-1 P;;+ G1??4P.=.['M-6=;3150&O%0.0=OJ MXNF_]?U:8E' XL;A*J-+XB3R"'W;R5I==494EC%FRU4_-@OIP4$/#5M04C8. MU,*5/G'0)&[D*D\23I2&=RTN_(:842)TO\X6];<-W;Y5:I 'Q;*V+AYK;,4[?$&+/J$EWW@;YKS68ZZFC2&)JFDO MC8CELWS_+*NIKS &*Y]0*K\Z*I*4XM1.*BX;V'P LA& *&??\'_ T[1+?8U4 M5DT%/A#Q9*-#J;CRA0 ABT'VP2RKHP+2I5"=W,=7DEEY'RWF1:#_TS_?Q*]D M5)B3#3MMLB\J*AOBE:=V9N%47N4)QS3JFR=J';GA9YKIJ\NI_$R?MG+@9X&T M#7]!4=G K[W99Y51NE=/-3"G;^\+"TN'.RMNY9#W=-Y/CPSJ9)\O*#O87',\ MHWC*3^PI%S4JW+ER677<1*E5546;33HYGTZ4O&-=X%?7A!?)A[])!V;%];E< M*.F>SK' 1PP2D_JK+!"60U 5_F@DVT*2.O%T? M@TG/PRW4HHVZ?ZM[H4+20X$2,:B\6D8+:)4=7%^IA7HM01L(#= (W%1*<^#/ MT$Y/"5%5\@;""TC@TE02@8I:1S:"U+[OXA96T)N6SN] &-!7 6PZ6'3 :?CV MY.EZ]8@$/<&[3+Q^O3G)/MA%RQ_TED@0W9S9Z:7TC, %UNI])$HMV:6*,M7( MKN$8;.L>@#EP#0SQAN9&W^0+"G$7/B)T7@ Z=_E>DI<=_\)%8R"4NN@(6UXK MJY SM,T_5Y8$=41NY:5]C+ZAI9\ M1'-L+?S,&PJ(=M'Z3B+UZ/=11_J'/@3> NP3I-=S%]H&W.O6Q)XB7%<_@/4" M'AW;W]+<<"NW*=M\00:J8%I-T,MFKS].D[S MJP5]F'@FJM38VV(54>*>';!Y%7/O!$1W]2IMO2E6$07NUS&;7R_P1=A)5I[HU0JUQFJ2+J$6P]X:DZ/M$GDAV.]FM*6"S. MVED%?>K\618+*42(&'/@6L$X6;>!![%1<^3LGJ$=MC+%"1FQ+Q^WJ>[R=3(>KR6R*?GWXAOQFG@(->27&'EJ5#F+@&UM@!A:8K9-^ M#8T_ ^C!L%^WKZF?:+&T>)N1;3(H Z7@IEJ$Q))DEBV0@/),@5!:-DB% )3' MG4=ZB>'%_T2G=^HKA=)ZLD'.@PT;LN7B-III-'*'^1UZ%,?1TS(J@%*NUI,] M&).0RK\=*%#5X3:2?8P2+C"[9T)[,S)=!42K=\N9)>,SQ,J)QT,B",ZIZ<_6 M(]W;QG\A)1/D:4(V-G##ED>^MOA]G#%&CH=$3\0>VS[VL79UVT-;V?C/'),) M2VL]9)9(3?3KDJW@I+0$"!/=!];K AC.QL8I9U*:\<8_]\!&8W)HFP\.'IS' M8NQGY!H?Z3$_&U10O^[P"A26#&6D!P!?\(;#N]>A^YMNY5*Y5FPEJ]?SSG-% M-$,\;@VT7LFUM:]ZJ0PL:),_-'"W(QI.&YNNZ&I'$'DL1 MXRC$5-_19W3.5F2C2%TLN=C!K!!)5OF5JYM@I[M_%,?Q(153"&-F1/(X,TFM M_/HQ"CS?V0%W :SH"+.%>SH;*#7>!C%X%="#@)]WX 58SAZ8*V!L;<=R-J\+ M',F(SI226EEE70P&U]V:L9MA2Q4E"#)5=\F8F;\%;DZ--+90:KP-IO J0/GP M8(VZAW3/DO:L2705$&>3SF^LCC=V$Q,I$Z[#.#<,MPYQ$6ZKN: /RL8T;DHP MW8,UJ:Q^/?T6J;S0Q\N]45UFO<]?9 ]=_G5LZTFZTV.^Q=W<+(XOX[?>1U.!(XM-Z MOZ)_B-3CT036QBJ4^MK[Z&AP=)3IN5^!2QI8H=-_, PG0*?&N?Y*<;!LM0]9 M3"^E>9/0B[%33?MU@[7<1"/*!AO=C\NJ.*:^.([Y UI6H6:G0/!^K.QK[^-$ MS#BII.=60M=(X-_UY(%U8#W -6EI8*GZSM03IE966DR[S[*^#PJ_Y0'CEXWS M\BLPS.AS$]N#J-_8#0K:FZ'KXCRXN_2%1,ECG\N+B\O3ISYQHUK]K1= @#SC!L %0 '!D M9G,M,C R-3 S,S%X,3!Q+FAT;>R]9W?JR-8@_'U^!>^Y,\_M7N_!1QET.LP2 M('(6(OB+EI!*()1 1"_?DHB&##8V 9;8&[H-J@HU4[NI9CDF6Y)G -.- M238072#'9JH[_!UK6>.Q:,8JP+9578^E;%4>@-5/4.0!_@_^(Q:/K^9*B0[\ MJ67^7@_9?IA>S1P\)G\E?V$(1L:(WR3]&R-B]RPKSC\_AJX[_OWKUVPV>X!?/$B6$2X5P7'TQVJ@ MY\0'HCC>C%5$I_]@V8-?JP?!#XCU8%TUM9U9YWU;#T=C"(+_"A[W(=[6PR7+ M,UW;W_PB'.T Z6%@37^M'N[,/W?4G>EG^'IR]%>W4N:D(3#$N&HZKFA*F]<$ MT\KN[EM6/R-_+1^NAZIS-PX7L/.2]8)4$ZX?!"3XY=JBZ2B6;8@NI!><""7C M2#+^A#7'=I]C#'ZY XTZ/X8K%-]ZVWJX#92CN*5^P:?;\*HOD&$?/S)0#Y, M/MA=L&,1&)IX:>KEB-4/#M$*I6GZUSS@Q/6L0)(/OQX^V*7^,_;:F3-X^L0H M[^ 32/S#H+U$>0R+(U@.KTGQ^KYW'7'X,?O_[]VU5='?Q;SV1C7*W,MPJU*O?S M?_Z#4LA?A6KZ0:B(MC2,X>C/6"#)?_]:#O_[U_*-?4OV__U;5JS 7OYIRK+P S_ MA .J4+7:JK2$:NXV Y[->':(+0&%_PU6);0L 1?PU0=D7M4>E89?YTNU.-XU M1T)2J ]^Q$S1"%X.U-^L":'PTQ +MJ@73!G,2\#_$5,AW[0D 23)\>(1?VP@ M:G\T&5::8) LS01,0'_\BT"*HQA"H\3?OW86>-'UICW;AHO-JHXDZCT@VJPI M9Z!!V"RY[<=MM] O/_(JWM#MV9B1$LT9? =<M37,W:HA2L*^:9ZG*E//Q#X*""D$5;%IRA: -'*"*, M[4] '44HMBK5:4S-M N-'SL@,HY04[9@6I3B^D*=2B0_H3-#H3DMIFB2^1&3 M@:0:H@XU51Q?0[@RJK_K4)U#1P3(G&M)&A>^O.:Y@;X*')LEK/E0\@17]JVF MG4NT-%%">TBKDVCRS0;D_36H:]@N!BN*K8 EA&$/*PP[\T:?+\EN=H!DZ!D7 MK/==.MM >T6&M M2.?.;U/5H6:V/? ^&K\$:%O4/; #7,IXE!/..%Y&*+>1Y D_C^BU0:"2/Q^V M$VCZ-N"LKN=F#:TW1 Q\5A?,C- :/WX N+%G P%'^I3,5FHEC/1?95#;*L<0F!F:+9D>DQ#P[!FK:]A=@XK[X@GL@8U<)I_0\71!W9-:8(I M,#W 69XM 6<'5-/N:SDWN4CRG:I!:2T1@2+*0%UY"4)>!M0U5=/B6'5%75T M.6T%]E=RTY;C%HRQJ-J!'BY;SB[PF>Z,2S%Y14 F::U6;71M>M6> 49BT[8WE]5_%T1@IC$:<))*!.Q;Z^R]@U?\HYE10]9#FR/")I M1,].T-F/?VDD^,]GD_Q$@_H"R7.6)<]@"/P"C:=D=];U$FF*CRN/"T8.Q0!C#RK@*W M8$Z!XP: %LSPNVV63T/]K3[' -4O9Y-V+3?5:N0\Q]%U;EI5/F)U3U;>'T'! MCKK.JF8 8PCQ+G!*A<$K?8E'$&Z"2?F*72)SZ4_RGUZ17L>&TP:S-0'$F#2$ M:Z_;UL 6#6:N.D( H!":VV?/ UQ50 "ZD*$K+)&0K2$RP0Q!2E-TV4V]+!0M M&Z+)L_TMAXR18#@*N6,'=4)W5"L/%%3ET^D 5Q*T"$NBZ: M50C:$[KJ:SS!)T&D X>C*T3Y77W$)TD\B1CRP-9SANND^-DVHK!GTA7@)DP% MIBUC#$PG7!1CVZ(Y (&,I?RG(771#[YB9A#2+%0VH8_$.(YGC(-?.>Q\#"07 MR!EUJD+LRLU-R+A"MTCY[3Z-U&E6] =ML9!D!OD.]"N0A_?;F7.Y4>_"^-3. M47&A2N4T,4]4,*FG)0>9*&$<\^..D1*,C@:P;+4QRU?2Y?;@8QC_@'HX&><% MJ.I,5YUN(1U=(WVNI%MQ\]$"?$GO=OA.UK2,Y,OZX-U(KRWQG(,#7:=@+L/U MG+UO7W#:QQ)2JD9J7*_6;+)^I9%EI(II)?K0Y(H$ G@61+EUVXB, P% 83;^??O("W[VPDSKG#% ML3!-^SM(9O[SPU&-<>!,+[\;A@GN@'WCZTV(A[DC!SG/7WMSAA^=9>3U[]]A MOOOW"BLA!/OA^5I04J(>4(,; @"='&E)HT!HU@.>N_HKH>&KV71!9CM33:U0 M)0-XS;:O!-'K\N4@S%"N/P6ZQ%45%=BQ$'!P<#\A72CM)BCW?[R>S@&#@$#+ MCS)\V7RLJY+J+I<6DU7X--S]VG#D,3A__+N)O@R_Y=[VZS5I^'0)\ M',KW!@UA?MT-4X1Q! ^3FKM/UI_7O_NU0\KCE-T2V(^3ELD+ZM@U=9:/9[MV MEQEE4L":W4E[(FF)=;[ZHZ0]T:6#.MX-;0X+'5+7#PR29<*/S@ZU=SQ8.,:P MS!6YQ8*?<5G4SF@E)A6?.3;&M10FJN1^$=HGFA\%]YQ$AX2UW6 ?8R71*/S? M9I[-LPT>Y:VAV\*_?G)V#KEDM!0Q]H"@_CX.ZH]_P]#W-5AODS<( 24WOO+3 MA[,P!U/2G6%Q.$=9PU[46S9C42@2.2\@VLQ!Q!%H,LA3F&-OZ'F8(U06V(HY M5A\^Q!S8BCE8MYD3YZV\ADSH25P1^O,IZ]^8YL NS!Q82/&3-,?>T(M9E;?Y M'4O;&^)OQ199#+5FDR3 -1$M-"6.&:@X$CFV>*._\0S,F[(EQ\+'C[J>,BK* M*LO,AJR14/"4C7"&3%T[*WR*ZWFY4/*]5&X"5U1-(+.B;:KFP%F1N-?/$%): M+2$L8'ODF$19U]4;5T[BP[#>-GT9658#JR#J=5&5"^9J(WQ%YL=:Q2A5'@V)'F&IP=%VS5W".Q@F V& 2*GH&!*EK'.%HE] MAZHE.]4BZ_?T(=FNS\V)=>TZ_&3PKX,+#J0'/VJZ6T1&&&;Q1!L19ZB?[&4= MP6"N7> _VW2?+57X03(?L=UZ@C$[BC+6V5J*ZAGTM-3++B*;"(ZB[8X*@5\V MWG--;I0+B6F5+V7K'@'*?H)XO'H5_@7&.S+D/MEZMZ9Q83"OU=):IR0P[7C% MTXC!M:OQK[;>9V:#Y_4-'S7>R$(K.HU*KX-@I4?5S'2ZG9%*]=H'_;-.-7\A/?RN9C]ANOE(@\E-F7D/B+91@ M,J6ZSE+73N-/M=U1(?#+QIOT393MY^0F;\RP?':"NXE.XMKS*U]AO"-#[I.M M]Y 76M*@-$!9#,'EN=/M/$U7%F:*G'V @V MTYBZ71_AI'CM5OGSJ!J- .HY6?4\TR*181I%U SFU;B"/LH:=V']4LOZSE.2 M9KKC%#O=0HWM@'%W6!DTG$4CLL[3-FBK!(YKJT%' M@%#'!6?*G2;'KXL^567 C?N(Q%-6PV6U4:/*S"-+]"-*_$40HQ[[G"C*[R%N M93*M"/(C74+B(#_'$VHZT6W>B1M5P3[A*&C=MF1/AR4S3&ZQ2UE,R9^6] M&VM"]JW%@1ASW0 MMK/8M=']L^3]2ZF=W*)V\JG18VX S%:&K_&33'6:;#$>RD\OKJ_?@;CDZ8A+ MGO7L:N+)##:#+EVA+ 2?*N)<-3QC)0B;!'+8^#$K2JH.8=OSFZ>6/E7-P>Z8 MO0G*J@EJRH%I0OD[]+0,@03VND07@.'<=8@FRXDM.BFUI:&2CZ3CM<'FCW^# MCSOH/"J")SOVSQ&X[=V_0(B/O_H8!5?:YC427C()B"3.G\H->SZLMQTX"9@B MG.EY\J?6U]5!J(K6MF-491O><# QV)HG^B;;20_*_4C:CH/@[26 GL$7]63N ML90\-)1P$M+>$$N6CT;H,'7@#[.U ]Z]FFZGJA#&35>?#7FN@4 M/2\L>F.\S ,_PT\-NH9S>N0;5;22NF$F!M,>]-"_+J5 M>>C/'8#UYNE;%ON6+;J6[<-1AX@],=*5#F./*TAZQ%G 3T^Y^C"R15"G$_LU MP&^>\@4S[$D''">CJ)SOP#!GV7I[1?BT9Z>K[7&NK7'I7J.;]!=9<7X#A'\% M[F]$=RC*2_#-9?']#OG)5%,=L6RWI>5<+BT^)J'?WKTI\K\$_G5PP8&BC,N$ M\%E+8VM*T?U-O%-;D)?9N7?,(.NKF9J[EM1I @JYK1W76K2+DYMP7 MLR00$-5Q>9#6FSTQNC[[$=C6]VCL 7=.>NZ7Y&Y7R;Q:DOLT]*(%F1^^4R45 M7[C^(.NHK(>K$M')F5U6C9SZC_:=*E]:ODD(3_?MG)DWXIZ7;2X*#8!@4M)K M651\VB$CE]*)-F^$E^A\R9F\YYL FPMZ4_[FSSS$N0B1XI>#M.9NVF<]IF#" ML-@)!^ KUAA4!X5\G6NFD([2?_1UIU=.1[=;^VF ;Z5^CD-^':G_B]!^?317 MK[3,'#/U1KQ73HH)R12&%GW3M+]L+X7+;_N<4? SM#9DI7E'9SFJ2.0JFNUY MT:WNB+[@7SY@/*/D2_J8LA%S,-9\?]A+3U&3\,B[Y$>%^,EGM'_USN8P(*Y: M)HRB;+CHG*V[[ L\)LTD7Q*FR.>#C6;(]( 5%XZ.7EWV%8"MX?O/<==!IRWR^7<02 M8K9("\.ZA!BJF[6G1T'4;Y=9O$2SB^6B4/B2.+$ M3%PX]*Q9VA>W;[[Z:'AV/!U7\Z",L515+6'9SI1'H]LV_GZ ^QEK?\7FU%X; MA*CPLMC)UV3+\0V$DD@"49N%PC2Z&OO.RX?\^4LT(]BDMU13=4$96AZY8,*Y M!VI?!\M40,JOB"/+3NNBLW]YCB@#0[0U)R@B"CX$O1[7;G^KILAZ=HIP/#92 MIA4][IG%9.1VR39)KM/AW[Y.YP4$7$=D=QY.J$-=^53R/D%[7#[5++=X##!9 MO)L0%X5.Y,*'#U%^!^#O1.D@3V@98^ "9F"#G9,._LS!FD.#MK4X)=$)SO7B M6#>R[M*[R'X<^N_$ ZN3/D!N 6EH6KHU\)OJ8+AA!")58$=:?]'G#8[74MD" MGE+LVY+_5U#PG;@A[3FN90 [C*6#L'JHCC=-;-1&:F8X(P+QTE2C1"<8FHCN M,>AW<<(+X%\'%QS:&CV[,T@/IJF^H+8I%IN4,U21QREBO7"?YTK!=0X$N&9W.;6F K_$'H\D.+SF$ M3ETL9E!?0/ET69XIU0$A/D:X1O(Z',*+W7*QU]E^3>#WW'+A5QV-CQM<2BN) MC&N-U"9'1?<*QTC=_PK!@Z42![KL0Y\E>EWV-]-8YL %MI$!??=Y M9ZWPT*H^P2WVTQ=P@ NW M>IOML^''7[C/O^M[5-[!P#=5+'-7;J\2.FQ/8;[&MW=5=ONJ[/TQ9I/O2:6Z MRB!:VN6FG;F1:8P+=[_LKM0^6:G=@\R[>OMXE$D5ZM*L_$@P/"7F)[29S"%S MY>ZBW;59)+39/V93[=;_?,F5V M]\SNRNT-CMFPDA^GA13I(IY/H=(P9\8GP\@5U=]UV;?497>_[%94U^?DS,AA MO]S/25.9C:A4YL[LRN_TH\^Z9W=7;6URS3L-=C)RL/^-+3GQ1 MJ992C_3LKLWNVBP2VNQ;^V8WJYS6#[:IRRH*D()^$XZ. M&"A6-[3&M%B(7A7L78M$0XNLGYS 6;>I2 Z?@EHZ/L$IP-61/V?+29"G(IS( M<1GXO2J)!5-:B5[PJ[IMR9[DUFP.V%-5VG(NUK MB.5+BP/YDERT5^T),3/)RR+8!-@5HID]/<"-^VAZ.-^ MQ87;,+^#:3^M8?Y7,>*H9B,^@@@XZR^L%H^TV[WV*')N_IT1OZ"9P]OO<=@$ MSI8)[8N[G+VI.EK*3P%3&@:]KW;W/$4=.# ^ Z8'JF _?CTPS;/P]VE=ST:O M9IOH5F)1-%S,FTJ>I>VGO%RB=.#YE?(M+5+>(A.%UG \P#V50K? MM.O])IE2089*;Q'"I)9 NHT2(M?0 Q;CVD7+378(>_%/<<& M[5;)Y^YB>*(8'B/171*C*(FIZ%K#F92F3*E:;K+JO%(857&4:XC7E73>P_+= M&MYE\( ,,M&5P8D!Y(7=XEQ^HAG9=)]H8P1ZG3+(W&7P+H/GE\%/\4@'>5>Q MVUU\S(II>S W9KABC2.95HVB&-X]TBA)XDE7'D%Y'N5CZ^E0=A(IT'J]8I4 M=S@QAU"=!=&:*EC<0:\S#<+>TR"?)(IOJG[?*?;\6E&,]A[Y*#7*M9*+,:Y1 MS#2GM(I8F_2N4Q3O>^1W4;S0)OFGB&*SZ+4YTLNG>0I8CCO(Y]/L/)))D2CN MD]]%\:I$,=K[=%CSL2AVT%)%J]F=;H[GJMDT&\GLR'V?[BZ*^Z*X>^CX!DXC M53)5JSYA)P8/%*'F+ K*(Y:.I)-Z/XT4K?S-5QR9_I!,7NMI)&4B)=',@!.1 M>![#X[UJO5M.1])YO9]&NDOLVR7VBNNOLP,I46!DUM9*!6_4;OJ8-!Y$;DKS[HE^1 *C6O4YSJ3(6F*.Y_DTF:AU M=&TFQ\&U2N"]ZO,N@5=7]>EUY$0KR[5L)#=U]7*%9?2J=&U9FGO5Y[>6P$@* MECX:L&X9M-(LY99,Q&D_/B8FD3-M=ZZ_'JX_4NN\T8OLQ(/ I"UC;)GPH[/# ML$W@BJH)9%:T3=4+3,TQH\6V.04>1V];>\-Y+H&YWJC\$ MZTU7!'^(-QA)\@PO;,A9B(3?V0=K%&9JHRURF/[>#4$&&+.;N&W+7+U5F> M#_'&Z=K%Z-4QP6*4!<^9K;P\GU:QIG[M[/+UVN7KF\03 K"=_&."'*787,*S MVA4_R9&/%]_M. %3.PVA+].9'!?D65+A6 MH;&?4UAEIUDAQB8O' F^#'C]7 M.^S]^P'6>B KJG9;U#V0\AG' 6Y:%YU=35&!\N-78,0!W.TKW@Y,L/DS#R$5 M;6GHEV%$LEO#MAE3,,>>ZX0#T-64:+&DI9HU:ZA-S'RJ7S?G742,W.;;6H4< MQ=R3ECF,NH^'9:?A?.OBHN-(/Z=^N]Q] F?DVQ%%BT4Y'Z^R:A5)*WB-TYIN M9,W9^9DL4G3=*D:/HD(:3D>I J%1)JM*N8ENT_WLJ!W9P.JND#[C7HGS,ZY= MZX_&%N+S&C<'@.*T1\''OY'9BQ1AGUN:E*B+I@2X(0!NV9+"$&R'K&$ 4;5, MR;-MN.@0*VO:&F4CW^ERHSH"RA.$DO(#K!5=:W,,U"?2O@#KU5J<#Q&X76DG MYI6,U>:IR4!NT/V%T[?2NFSR=W*>#?KOB_0;R5]#+ M5:LSEKBZR$36,SL"V_IVS#W@;G3;!#E\U/E]]*\]9MH$;18*6LE74U,]Q61D M-[+5 A&A/Q1IY+./UZY-?^(CTKX)Y%13=4%9G0*Y8$)U-%#[.ECJPI2_++M_ M%MJU;%$&05G&VE(\5NAF!8EW9BRP;<]L=Y1NNWOKJN/T(/)T%#\9JWT<7](C M>;H^_>/^Z)OYC5G!"4GO5Y>XU3%ZF7RPW8^%5U']AKX\P5TWUGU M%5;-!!E :PSD%I"&IJ5; [^I#H8;=LTOXO&ZU2F,H$K%Y4&VB5)R_LZN'V'7 M5U!^9]E76'9]X"R\-#DX>3Y4QVMVS1I68N%;6I:=E&8E3F,F[6XMNG'B-;#K M"^C^%JQ:Z@EJFN>20P3P^58W4YW38G1K0K\N%KDD =^^"5VU7'"\!=89MBKQ M]93MMCR2$PL!H6B8S9D1K;I'O9!%$%BM"G9Q^'TZY M(644A;*)PVSKYFVFTL?*#:0C/FHC4>8DP_P^/!8ILK['QO!\(+ECB54U.%VEBDNGS'EJ@\LY\R;1%1@C!BK#43:=!! MC+GE)T$7-$@LLIM5=R48$;/_:2QO:V3-G6G5%VGR?$K9H($\6(8K.AC$I>);%''!?&U?7CV M!83=:*'0EW,I:XQURP<@1'EM',RTXE#'9DW$DJLIQ&!J*0[GTD3;B*PY_A0. M/8JL.W>>ESO#S:<=;-=U<=/2O*WJ/-?V,D766U2Y_+RMY;KJ]^3,<"/K&*)N MFBN/]!WX>LO>5>D4[VH3ABT5J6JYUG]\["XB&RS?L&6/<'>,K[7LONU@:F7> MX-E.>23U'6S>D5K?V_?\?,O^3;GS9K3:J-R8MFA8W[);'H%[%6?!K99.!)O',"V#?-,4>LX?GU3IE*IIL3 M@S!X=5S,&@!MXQ4ZLA'"%>F=*%BO#W#1*7IGF$3;)8SW!+YC=(S&N(K*J=QU M\\Y7ZITH<,S'^K/*LKJ\?*XNJG+!3(MCU17U%;=TYG3[<3H>99!)=83Q@[2G MJ^7(1GJG=DU\">3O:*'.P2F>D6[2QM"=LCEAZ@Q%T:",263U2J0YY>MZ:A(" M2FY=/!$$F4TP]J!N%1U0MX,&Z<;6X8X@J'SV//CY^G1FB9Z5DP6?X-5>)?&( MJ0;?TB(7'X7W/QP%=7W6XQ58+[:OC1!QE#Q7J0.D;RCZV,?HBZW+NCBMGF?Y MQP3B.Z.F)Q0=.1&]3/7'Z(M=E+Y82-_+URWLW"/#2< 4X<1/E"Z8,C!,B%]I MY^K?=KR12S']7H'UJ+;6T(9EOATO54N^"-E,>M%-KFQ@Y./I/1/?N,V-C=<>A2=EV)5%(T'_Z-.8-7] MH1%Q2>'7AF6&!%IQ7J9 ]S2YZI&L:O20G,34'#MZ*NN-;N@S,&_*]3PK1[1L M(#J>[8?(6N)M'-(<<27BT5$,U!S6E M98NFHP"[IN0L2Z[9'+"GJ@3V^&0YQ@9R;0IL^--U@FQNTZ5!H967DN6:KH%J#G M'^>1BX,^RC('(+]IOCEBA\ZC9?AYJVK,1QJMU;1&EK)173':D?53(JYEHF"3 MSLLMA[0,50,C7,B2+J*.G$Y[,6D74_K-&:;/U#)?RC?))=^@AZW3\WB[ODY- M;>)#;!UN9_I-)#FJC'*(42Q)XXG=I0:=R'+&@>#W.&P7HSTD?/*S+P R= SSKPXX=Z:@C[K:3M"P))[YP NFY)B('_(0-[[,>?U M'3#Q@@!K"O_Q[/5[SU>_EN:/<>JQD3'XN,4H.0/WBIE&9!V]Z.:U=FCR\=<> M(>96=3EY.7!W'VG9VG#5QW"K*)N1I_ EP'$A9FU5$J'D;TX"ND+=MF1/EH\3[02]:YOMPJ1Y*$-%#_^#5EJ&XR;RK_LZYI% M*:XOU*E$\A,Z,Q2:TV**)B]N=;Z(G8_UXWG;ONNC0G=U0IE8&I?-(Y-6WYB+ M?N0*;KY^%_2"_7.>MMP/J"!QOJ6"WD?B!,HG.LS8&K-BR2QK5:)=K@N1\\4. M*:YMX*]Y"_V)>?9WQ<_66_DUZ[79_[:!K+I945)UN-R]6O"II4]5<[ [9F^" MLFJ"FG)@FI /#STM!UZSO9I&E!:*D^C$)YK/.$V>GG>+G>@5D[_;BI[,C,\1 MN%V=_@(A/O[J8Q1L52O=WL MSP"OHEBF66]!5R+S#57UN_AU!Y5W_CP/?[YV60[O&66YP)6&&N@WZP6KT4\+ MT:NJB"C'?N*U.-^9AU^Z/8?*8YTTY;9&[*38X6G!(^/S5N1V92/*OY]T3\X5 M\N[!',+Y_5LZS6!EO&R32&V03\2';FE4J%]%@O2\>8:[?QM5_MWU;_EQ(:ZC M#8NW_[*3S\DG^K,,"=#?B9RWI6NVPP5KI8REQ%!BP"_'OW;W>V.=_# MFU4K: XS!B[8E"YLV@#VFU7#'L]QUC?0),$E!:'V*@X]!_1_XYI3M2 MVG+*E$J.>I'SF=\4R^D9T#>-#=\H%?6J3\A MKU-#? 5'1$%'['$$,T.S)=-C&AJ&-6M]#;-S6#D*-8:10]R!H/-X23=CBKKO MJM+^96^KDN,Z7+\?GOD3I3#X2?G;3S9Q+*,HJJX&W[,AJE:SC8M..T&VV!8/ MQCK;)DO4.$E'3C&_4H^]AZ*/AZ&GXW89!1]&[G[YDA("O4HG)W^$J;Q3'6)M>!NI*!7EBF+MBPX0=]+1R@BC.U/0!U% M*+8JU6E,S;2W3CL981,I\.]JC>%OUN]9/UM_#E[TRDMY+B-,L-2T8"MY7DOG M3;?2'M!BK?'\C:IC$1B:^ U_\H$7CN%X 4?ZE,Q6:B6-RM/3-E6@4,P]!F/P MB[>_,*-.(2^$\*T06VGPA:$O3B2V)%;RLA"G>Q7EZ:5R^(/MR:J> 2!;6_8[ M,?'L]\&7&6!:AFH>FO94DNY,\6MW]3MX^:7.?\.Y+,^6@+/\. 2B',H&_,&_ M?\-_Q!S7UZ&(&>(\/E-E=_@;19#_\]=8E&75',1UH+CPFP>'X)P#@)]2)#PJZT7PU^/ MU[]5H-S$%=%0=?_W?X,>(TZL"F:QIF6(YG]_+K^!_W:@M"G__2L<[:@+ "<* M7A.^^#?\,Q;\'U_]$;Q C UMH/SSXS^M6AI^=,:BN?/*\._?IF4;HKZ<=K9< M[^JK'_^VQ+X.8I822P>B;;J07L$L$*\B_/_X 'XE'5J^WWW+':Y6MD1M'*+Q M:;4KU#Y]N4N39ZA>/I1$7?HC&!'[_V-8^,L_]XBP1TTX]3XM@Z^.3']>LNBJ M"=;D1[<6 C'C6L;.5P'/!)\#W1D7=75@_@X\"6 OOU'-0-<'!/ZK;]F0JY_F MF,<<2U?EV'^0\#_KY\&$>("?O<=/K/+7078(%_]$I/5K,/C55'74?GA2X_=0 ME>&"X S_\Y\DAN!_;5AB?"[I,Y,A6VM6_N<_*(7\%2X2&B?3,D.;J4JQ ME*-)5)W%GPA,1]Y#O1F_7?).7T..<<11 ( EP64[F,"@5"$ MT"=D20!)$7K>BIA( 'PEY\M?M"2!)\39K#-BNRQ5FF9:8KZB91:-@'K[(Z5Q MBH[/]"K">MDQE:MTG$*G,X.T78]T0SN[ FVEQ25+U\6Q WZO_]AGTI5U":RG MM#3/.R97]%QKU]Z&W^S8R.F%;YBSX7EY_/P6VJT+KO"(F-#^K M*<@'FOX_VT1LW\H"1RUFVK/?6]!:<4M&MV9ITZ\_QF0V#[[X-1"T^@VAZ MU2W;/!?[T!9Z+O@K,([/@5SZ,:M_NO))T-'$E<+VR[4#LIZ+A&?4!D=%?U=K M*H%_ZO[S0X4_@8$RU%F6WA=UW7+[UOS'991JPX-A,K!UOPG&ENW^6,LVX2C= M1<4!;415T^.^_-@!1HF!+T,.::PU=C@PL$",+\0XWX :=]]X!JJ*3A#DDZHZ MH(7/QJ?GL_?O,I -GFFVV&:Y%VNR]5JS%:OS38YGJJU8JQ:X+2WHFRP-*(K' M:LT82OXA_[G\HI:-M?+LMF^S]FL"V[6RNB^]FTFW8G 2E,:)K5]LL!LU27D5 MT?L 7 =[7!3MOR*"A1.T7/^P=W/(J;3LF#L$L8U6BM7#7%PL;" 6.^!I;NG, MW[+H@K@!9QT&>BXNBW[ZA4I\80)\[B+3L,X96 M9_3ZJ7-X_7TT(:) (012Z8L"06"8T"=11* D5 )R B.PQ#.OW^RD!(O3\#EB MC%24;-5,L1!G#GG]O7*!%SNIK,@::BD]2?=:Z:ER]_JC[!G?O?Z[U[^;2@EV M_$-\[[G]LBT^5D:,,=*P86MB(W$RON@VSN/V$]_"[6\UF2I7")S[N]]_]_OO M:(^(6*XC"W>C^6++;?Z88EO&$F!A]S\QUXKM?K,6=K)HI^L\UC2 MD!E /QI]LO$FH! $B>,H'EQ$>K%=B/=L]5PBY(:8 M"(H-GC 0$YT8-P924.DDQU0SIKI.+#T,)&>ZVJBJ!2&S ".?!:^RGRC.NHE.52+-_.:@_J>R4DS@7P^)Z4A ME7*KP.4TCI@*MF93N3D3C'PV)Y)(]W&1J!F\829(NE% '&3>$*CGQ&_7IX5:BX$C;SUX1A]H] SY3"+Y@"1?F^=-_M:K"_NJ\H^7HT0G M.&PTMJUIH%W.GN!..S%OCWL^0P[?8\-#OH_! MZ*$&PP<[5O1LU9'5\+!$8-1W9"0<9@]$4UV$G_^,'N.^!P6%A^8#]Q!;W69D MQW9Y+%:U'OZ\!J*_'.V^(^;]7(*];?F1(T,T-28CRS9PG-6_@A;>Z$9;M@2J M9%@IO\ ;W*Q5*"AC)J,-!.*-A@U+DLE8!L3*8BQM>XM82I_*Q^.4.^]]-]Y+ MPS]K=LN:F5M!L5FRJ@V[0O606M<7RH5)-UM"W[:#S,% $[*<+MKB06X[?::? MKVR\?YI#NL)8:))K=AV^3#6E[5Q"!M$8S91)'?''U0[;XTZ5/L&REICK04U"W(0/JC.GZ*+4**3CR]*TAZO:IA';7AT&,E M:X2G=T^G*$TB)'(N8D9.M[W'H5OA//!?ZS84(74LZC%V#B0OV)F-U10EN*;L M1KQ7R%.Q@*GV?=3;+IAYE["?+E-_7#H+'UA%Q@;BGCJ@W? \BZ""CUX>6^7P/HBQVDE:G/O18'RV@4G$Q+N;9 MY^GRESU2))Z@D<,Z,0HG9?YX2I4'LH$F_G)B+:"#<8"1U3[0SR#TUKU P\0" M1MF2\*P1$!!ZPV^K$_^JLM?JAR M@VU(1G)_1R_1?Y;J,X 1))I(( (M)E"!("1"Z(L@*9 HIL@2H&2Q+^^GQ5&T MQ0@"AN6T>%6;HLG>!%#ZNMI\M_K,GE.$5LJVV)Q2;PY3LT1;Z0P.U:G)#277 M+&7M)AN?ZFZAY[7GBA7,B>V/S#?S,XZJSIK:9*9U1\,FUL2$1M )X+:3\CCV MD,#^S_[QRP?RI1.6&Z,^CG15V G08XD'+/EMH M'L ^]G1U&/NEX\MO0_!7N,LMU5T>C0>B-(Q)03?<-X4!AZ7J.R/4%D,?95D: M^<<;HZK#8OJ-T5E=%5.$[ GFTC!H.!ZSS-ALJ,)OGKRQ]X7LGZT/GCV\(+:C MEO]9.=$^BO5#K;-)O+-.K=2 MM)^Q_XT\!!V&R*7C/1;MV%34/7".(N3/UG+?F4U6"G2I/S<\DJVW&*Z?]8!6 MTCLC"TF!A62N"WY>XI%Z)LN=@P4^6S-'G@5>0GH+AKQKI+^\C1"H](OL(*RU M#;NR&7M5B*ZH9&M]V2QI\3HS'@,GQVE]YA6PJJ(CBY-CW/32+Y#CI SM()JTG61NSL4W7UX9N+NHH,5+W^\ NG/GS'1E&-_8%MP]Z%D MPD']$80J^%$X/F@-"M>SFBR\("-<2;AJ!#-K8M,[#PNA\#T-K[L4)@[()VN%,0RXBN MN#Q]L"?>3W-L9WV;G@Z6[$T@Y*KFVUM>.Q3CXJW8'\'#Q%\8##-6 ]RAZL!E MB^.@]/M3Q'RY\N64:^D%SI\/1PST1>I*-P@.\+L2T"V)[%.XCI-->\2K:3H[ M'B-&WS,N))&[VNBSQ'*W<":*$OKJ'LC;Y YRN1C3X>]!3)0D*'=VT$LZY#T[ M,#,'OXU!(L8//G ,*+#P+?9:J\>"*YI$T_\9V%"(7\=6V'X&/UK/>S5 4?7MQX'#>N:!\(?'%GO M>KAJ;ND6&##'L=C*<]AV%QZBMZ7TL;,CY]IXN?RNB@&AT-<]-TDDBH?I@U6% MQQ^#F.MW^%?0Z?T/Y&<O6.+1N/QNVIDAT[CX@!,HJF<_%,E7K-QIM; P>\SC/HF!?ROJ',APV;H#+L*ZZ^7EPM6EEXO;[C'7G@ZFU1+0D=(0 M# U3?:3Q].#S6/BVVUR\+!1[Z:F"\D+$^1/&;LM >B?\_+")O-Z\8IC?<(9 U]>$ MC_T!*1EF&98]'DZ(W_]\B/4@I%^O?+@ D. M&RH:J'&V&(IJTK)C5NP9BSUBCRVO.4GA-&0HG/Z)PO^3%+[FB#4:5M[($NJU M#!TH%]\N!8E93R\/6J]8RG*2BNC'L&6#U;-GSC[U5H^KN=OET/4MIQ8Y',5= M9.YV>2/-$^=9MZPZ8UWT R%9I4)/!F*;XJ>N&CE]B3MYM."?_VL[4]<7)0VZ M2IXI!RE=R_Z]IOG674NKM6$AZPU ?)D(%!7(:;]%?2;ZSBK:2- /^+H8Y_>& M;<);HY8W7<6V_G[*\7WD!JWD T+?+]"ROLT%6JOC+2*&]V69H@44(62!P$12 MH!4,%_HX1?<12D8(:>_02HCDLURE%*[SV8&N';W]@!,'M/*NH\&DRFS0)C1= MJ[;8:HN[E W96\O;MY$^>A:IX *#8N=#^ O7$1(T15(W?J0GF7Q(4"\D7F*; M?Q&;#U$^RW%*+>Z+X#[!&BE +R1MQT7I/2;[U-:O#QA^0RSWEN,"[Q6WSR#_ M.QH:O4V4/H6'7VH"^KP=[Z&FO"=S\&NEW%&A\BOF_>6^J="+/M"S^$5VWTGK MO\;QG\88&R>VSC1;A6RARE33!:935H#"9=)< ?8IO)8T^SQ_[@3=&351?( M?SX+*.^B]:)HW:7G2Z4GMOX_O2=),,;F:N5"AFFQF113A@:$Y?(LV^*$!$$2 MR>3[1"EM!>%SL*4'_PK5:%B^DQ)U*%0@Q@T!.)"3N8O0E8D0?K-"4:DWV3Q; MY0IMME"%']ERC>/.*@M;9B7,4QIC&PSAN.!41]ER[M)Q]=)!W*ATA#?;5X+$ M;"W+M6KI4KY6SK!-CFWPA59/H'$4QQ(7E)5PSW0(8R%@.ZO]U!@[\2!'W67F MVF6&_ 8RDV:X?+9[FY.I%@[I1T:C66FQ@ M1FK5#'2XV,QV1+)):0DD_CXQJ5HN<)91O6O%C@C-H6#_+C#7+C#)ZQ:89PDO MK"*:XF#)G1G5D;SP[CG1E!E3U'U'=022^&CF"WN(/;UE4ZSV]+:PX<+Z?8&% M>1*=0+:6-;_!F"9P/'UIA&ICL"SZO,O4U5CZSVQS8L@E$S?\MQUWYVFZFAWF;EVF<%OS1 1 M056=;>D.9.2Z;4E #EA72& TA5 ?%1;B(;:>/A24IQ?<)>'J)>&6K$>XKU^H MM?)LP=Y0@T MB='GV*\/)XYMS7RW%MOO7!\QKL=X\ZGK.2?JP+&4Y7:=0*(4B;^SQ&0G9[7]BECXCB#QM'S+=N_2 M(*#@';"\6"PT%7>)N7J)(9 ;DQ@\ Q0QR)[R8\OD@*E:]A,/"RA.$,2'PVS\ M(;9^2RQX36SYGBUAN0O&73 B)AA$!0[F1 6X_E;.5*!(FL(/W[WPML13,'UL M.?]V4O8N"7=)B)@DD+6@R4O!7+;/"!JJ$#2"T1\V"^1#+)PYMC7UG?WO[!\Q M]A<^S.C40VQ]\/K.WU?/W^@-\3?;S1=2A990J&;8[IOW$<)?Q5JUV&H:[KY? M<&?MJ+ V5\A5F1;?9#F!P*@D1;V9O9]FN//U=?,U]I5723WO;G>FOBX1N-O@ MJQ?_<>[>ZGAQN$/3NJ58R#)_[0*,AVMXZF&%)AZ"BN/=IAI;T^[,%9> KO_U MDCR=MT'*T58)&+%5,;U$)?;9/+:J5SK'U#/9&%$X^P6Q^LKZ-T=<8MO+C*W6&5LN]#)NQ$DWI+[4F&>G]47_0L[.QU>I MFC%W:'E!9:KS,[A_&T#.WERM_-5+?V85GHOD^YL)"@DU#NU9MBB71R43/[N1&9' 0MJ/='#F;UDL=FDI)6DCT]22%$/&_,X,AG$)5RB7XO(M MG?=E;9+E\_6\2D .09X/59D*6D8JPZDVH=(5/NVTYU0*#D6?#_7-<0E):,1 M$UG''PPR>1WU&P**/1]JC=5&GH)FD1?+';?KSHCY* V''J ]S>@*@DSB3;Y& M9!8M/D_EM3;DT0/$5P8-V\A5"E.6P[O(J-B2.6\Q$] #U!<66I\:>L,BG_9S M\SS7L'7*AK,>(%5WD4J5VMI@S$^4$;.(*^QC'ID%0Y]Q2E\>$V6BF.[Q1HYA M*V47,(7'1C#T&:O,(;.-R(K:8H&_B$_]"5%O%N#0 W2=H"P-<5K=YT40_-Q?4ZF\6X+'W9G G: L'-+MTUSDFVQHJH-L82; M)9-^./096%HGR;:K78KE.\-N P"H2 VH4.#0YS+-VT2FV5:J2,=&$Y.,SXW[ M.)3^ ^SR6*\4K03)4)HAEQR%&0Q[V114*0?8!Q1CQ2&]BYOF\EXKTI MG/4 N[C=7MV26XZE=;Q*19)!J:KVX%H/L N/>P51R:94=C)9*&Y1P-K9&9SU M +O(O=R"-KM&A^?2*#"(;G6863#!4&I_:-/PN]7R+,ZQ\:9-);PYZ"]8..L! MSAK[E$[,E&8/H0R-[)5,.N\1D 0'M,"$ID5<%1(V3XGN9#;%I5(::@'L +N, M>)X0;7M>X"DEWTP1.4\M-^$"#K#+0D\T"ME$JL67] Z%^+@YU":#8.@SL!IT M%[?+%2*-<&@[.2Y(CY)\ &<-?1-)")E9=HM)3T3 /.NL\# DX"7%)D6NA+)(Q1Y#X0^J@B"VBBGZ30OJ*( M">+MO]@3H--^@S]C9 3I+@;5;()/8U2\G(0&:\%#( YP9\9$NI,$VBFRJO68 MK)?8='8XA$,/L-RHRC5,\;'O()S4&)=KPC@A^)",!UA.("N5D9XK<'RI6FZ5 M#6K**%#SXP=8#A2)1JB.0MK MZ">J#1@?/A_:X#OSNB.ETIJ'=S+ 2PRILLL(Q $^LF=NT50:"5_S6E5Y$.=3 MQ,()U&M?1XAG7Y'#T;D^&L:V5V/1> [F2Q$N@#CAY."R^G MN7#SVY63NY,BV/3!_83,#?* ;*7YCU_;RQL4 M=Z)\)5'0!^K('LJ=+E]*%^0A<:=+].AR5V(1) I48O2=+A&D"_) $7?"7(PP M;RR:>=4S_@HD;*>)SUHB\BX-?N&M[]=Q\D84P# L^/*?']B/4S@ Q1[P%P7R M2^!_:=>C(MK2<'6L!_WYICLF(L (GR8*-\\'&2 !HP_L%UGAK@^C*09OXX/C M5\N\B^&/.B=+&7C/S3,1E9'@,M7KT8UWIO@LIB#.H26?RN]^_T>2 %"4:\(" MPW'L^KS .83C"[#QNG2< ;1E.C!BT%VNC/SE[-NW1\-M,SH=.>B^A-&##,W7 M*O?](Q0O6_]K=O?3GFU#2Q83'0>XSN_K<-0^T?!\.^%[<8\G,H)VY\Y7-AAN ME#M?3MY'ACVO)J Y#!JU- W!=29!#R\I^ -,/'4JZIM#";?FQWT!.T2V=-]U*>T"+M4;C1RPL*)LO?\4X0DT1\*":,DA["8M27%^H4XGD)W1F M*#2GQ11-,C]B,I!40]2=?W[$\1^Q9=^7?WZH<_>WZ1EQV7+CJQ$_8J9H0)1X M3GP@BN/?@3PRIAS\BWT21L9-B[;M0URV@T,7/V(.)!3\%9Q[78)G#0T;9],N M6QL49I[=J8P3J:">'O_Q+X'_3.#$W[]V47&;D=J72'CT0KHS27@$@[1/$G$4 M6\DX(0Q[6&'8F3?Z?$EVLP,D0\\X<_ %,CZ?Y/MB*F^J;*>GS$UZ3,W9QT#& MJ1__TLA/DGY)QJ\I:EVZ)MS0LMVX"VPCIII3X+C&^?R2;Z>BOCC*/5](].7! MZ_7[&*%@M:!<%9[$ZH"Z25,^4LQC?*:IS;4?F>XGU)W^6-\BW("61>9S(*FVZ: M^6S%+_)S+I!OZ,,DH'P3]$UE-.HV&(NJ' /S<7!E]O+R%"ML#B[M;-'?XZAW M^R-?7$+YF2??1-:I:)6&WZ+?\CYI5^MB3>3X*LZGQ5)A M(5./S(P)FH-!]P5-_"2(ES*D5YZ"";OI_?BW9;FB?A'O)3*0WA,L]P3+U;@M MKZFL6;*BI(S:0.+CI#EOH?&17I\&70J#31T"^4EAE]K5B1@CWU,J]Y3*5;@F MKTFTK2 @VDG.,9DYU0@D.M@'0LB?=.)6DBC(*HEBC>$*_3!Y$A2L MCH,=LG#CYQY*W6M#OH.ZN6C:8RE==5TT71@'L6L!JX)#RB=)L4P](?@B*Y;9 ML5R2J=D",$$K8^A/D-1/DKI4W>FWD])[DEE$Q9ODM/V=-Q6Y2(H(9WB M=(3&)U)F,0[E%'H)1/(G0=UPJF+YBAK$E^C"5\9T(#H@%G)%W%+B'ORP3%R< MT8F(&/#W[,4]>W$%WL=&1LN!B#8# &L*[X P!CJ@UH YY3L*6U"0G&_T%AW. M\QI<([@> ;H?^$^*>JD&[B[>]V3&/9GQN6[+6P6:;J^CU$NBT_B_(Y-@DG4:NU6VS%#&2 M9YJN#8KR(%A-4$M!_*1)_-83% 434FR@!K??W-,1]W3$/1WQY3[$DT0N-V&K MP&7GDNX%>'Q!EQ&&WA^1ZIC7,+]6[V<:;%[NAMYIB7M: M(C*.R3L%O>HJ+.9,DG-$G)F=*J[SI>%\%@AZX+1@/W'D)4&_OO1$!BC MH$< M<\7Y^7V4;Z>I[NF**U-!%W0UUJ)5,"7+ "UQOE%$!_2.EXR+A#2:SGG/-SJS M(CNUYM-9<"ES<,SDWI?CGKVX9R_.[R2\24230W:4MBL9C>5 H3H9^(7'9*T1 MB&BP<7'SN8SP^$P, AB_'PWYS&S&5Q\3^]ILQU=#'P$%>,GBC*Y'B^$\:N1\Q^>STQU=+QA>G1[X:_ @H MAHM6=9RH&IRS MIP<.I5>VO&";+ K:ZXR]U+\:S AHJ8N?C#V@E89^)9,H&!*AB8U4M[68SC(M M=B:@8:-3/$G_I!/8/:-RH:X=MRG-SSMV?$]QOORYV$-G72B[9J;SR3KO(21O M9_,8V68;@3Q#+P-'R9]8\OQ5H]\^]+B'7Q$M,KE?8WF7B*\V^=\>#5]6N'$1 M/$0S$C_CO'N_%UC:'*^/<5OL,?P M";<5U9?"=+P'I\*U&D9#J:L(5>I1\SDAUW.9!EQ5>*+\)_[BS:QWR;R>L.R, M^X/?0#0_XZ:A5V53E!J5A$(JKU^QJL,=8M'X#F4B;+ M3_FCXZK-S&"Y<79@/K(875D0]:E9SL2A:D-75S33R*4*ER+&W/>H_3M$[3?@ MM;Q'RA=.9<9)65]DC<&B7BDVQFZ5'P12'IPRIWXF+^#!1,%=>7XYXE92_1X^ M76-BXX;V7*_?XUC)V4DZ*-/,UF<&FTEJ'=[(-!J9C#)%9P(6MLQ#\9\(?JF6 M-M].1.\;S]RO>K4X56TA@S- MQK G=!J!A ?)CI]4XK9R'9N.>C:8 M.[M)OR[736/=]Q9B=EP' MD00R24WR> =1)[X_J*"8YFE0!RW;ZR5^HOBEW(QO)Y_W9,>U">AG=-A[54*! M7!^3,R?O:QY%CN@BWP/)Z2R0T*"1#/D3>;'%U$VD.M*[_D',4F*Z90[B+K - M2('^.6]$C@SHDXNSF^I2]7%DN_C_VOO0Y42[M^_O[5UB9F:I[Z@D][$+NF:Y"Q5U1 M$;[YZYG\MCF!,ZYEM^YSK6=/ -FW*PPF&^:4+%:;C%<)RD861W?H#: S4CH!<"I!+<3F6R1?U M>TE;R[Q5#H8"2I5"O*[+W64VC/6;3/3[PVO"KLEEL7U%\\5=0R]B(L[[&:'@ MN 1<&?> 2:=/X/P0E[*U::FUT8D2V]\,(AND:30KDPB7J*3=_B-"@%X9P+$! M'!NG2L7\4%?#IA],PV5!P%7G-6Q?D;Z6&/@##GY!WV7E,1TZ:G%5J4C7MFLG^ODB OOASDWC M!=99KS2279<0ISX59&)6+>7!#Y6*6>7$.B'/K M_WF3,,Z]^@M O],D?^[K5^?EX^PK>=V1CZIB1D>(]W\VK+H)87(%E?+N1^MNN1CC! M_G)A_+R@ ]^MB/4%1I6/NC&=DV\M][F3GQ?O1X^9?WY\$BWH2UU1DW.H-Y5< MU1,;;:$R74L+F:U)C;(B0O2P,?EC]Q3QIGE.;DNN*JCY>!9C9YX32J)WMCYCZN+9@(MH?C0Q?.I6?C YL M/2A+E#1;LWVYX];QAN.Q6/CP/9(6&-Y;<_'FB\Q<4S@3QTWTB/EK8LC(9G2)BT4P^<&+.GS M0M,9Y32WU_Z5Z/S^ZH_ISOF-Y3>1RLG_$W/62,EZW?_M&4M_^,'Q01+%)_<_M-J,;S?_[J92+ECB.'8LP]:M^9G89GRQ:^-O5S M!H%?M(SA%+:PL"7:!;$['UVD^MV$4S2.HSGV59]%MTOX^@&,@I5!]'>)4-+7PD+P+04FLS4>&A=6-0%E[N<4^H)NGSJ#43Q" MS-?S91_F.E0Y'.-JV.U>Z1'TJVMO=A;3*ETI5F%T*/<8CLJW>362E2S\NP?0 MO]\<-&Y!@#XXDL%4BQ,H*P?!$FPW!YU!X))F)#P$\HADTP1,SETW(5@?T"3? M[O(&YE 3(U^;=OOZNM:O^=$!G8 ?LTCZKLC'3/2XN1K]8ZF:ZQ_R\^)T>A-" MQ/UQ=&/R+8+4O2KPBS&CL&W1E75D)_ MG>W9DY%1$85(G##JD8+3*>"OQ0G$RT 8^#K#P->?[_Q"TQ.K=4^.8\YO3"1D M-:\:*E*I0 4+ZF-<*&))8WI0? VBWS<3_;Z!=.5/Z'-1$,ML4-9J;#"C^P1) M8_/Y7(OUF?Q8GZ\OZL]$[XL7(9G1>5E7(-W.R-)<]R43N'.O,9AR0QG*UV\Z M_%2N5J1;%3N_U:P]B-/TX//$KB\7S+Z3"QCI*Q5PA]I.&;[YG?=57) M"]SU?Y5>MB?UY*8@CNK,)G>?L=6Q6F;S("J"ER-PG$*+N3%CO;P M'4$?X3T7CUVM8^N+5($*'EN8S7."+O>'*)V;Y&2W'5$%>:3WM!W;>46!^?A>:DLCBH0,S)JF[KD%H6RM0FB\W!RT0)"HH]D M-KWS':C$]<($&KBY[L'-=2K%/ME&_IYFL]V:@Y.=$B^@I&[ 3A,)QNM$LR.; M%B'H1VQ/>?Z_K]KA)T(SJJ+^FV MJK"2:T>T\UZH66&K91'Z1(N/'KSO-CI=7SB#YEQF:^@T8%<#KC5DHZ-UZ0IZO#FPX79PB\M"B=ISRP[UMQ5IZKMZ4LU8SH>:'@(&A[>:BQOP$ M[1!DIRWBR447*$Y%Y\1]95I N<%5%^"JB[-:+Y]2;Q-!F\V2MU+8$LN4D7YY MQ51%)E;O^(H+G'R$L73!W,UX@=Z[Y")) 3JV[7(Q5+APEQ 6 8/B!&-3O0@4 M_.?IW$%G6/D%8.)I+L!@;.53 .EFY5[7S>4:1JVR[AK])D?#2 20R:T8&$4_ MTGL2: ! G-+O*ZC\E5L^.:^2S!.]7\Q=M MC>+4>EU^U=9H'!$F^@M>53.2'$?.)'L==TN(;\KPMJ<%W\GDG?BUGJK$GQ(+ M/XFW%75;LF4],KR2OC+;:S?^$FPI4"*E4/[]"D84??G\,_KQ/#O95"4WUJ7I MWXKNS4UI_920<;>X'TJ2:&ST[^EVVDCV&QU]\ZQI\+_B5;]X[*MG0;)JFG]_ M9-0^/^%8K-MQ"L53K,)2Q$E^_K^7B_D)(9#LF([[](P3+XBWHPN:0(:F0F-7 ME0Q(FD1O?Y+,4%I[NZ52R#>"?#ZX/?W FIC &>H;3/\KDWR,T LC$IJD6&9) M*^@%V78(!9GJQ'_:_=GS=PFZ/"6/_7ON>$FIQY.KFE*<>_Z&93N&^\[\"8UV MC=?\QI%O62+%\*-L!-@+/9(R4S?&K']TN?S[:O51M[!N+( 99Q(KCA_KQP^= MD%[JQ7Z-V)$DH2P4D?;G;'>4_?GE:Y:D2+W]923]\E_QB,S_9=#D+__]A@EO MF/ES ]J]JU3L4",7[WU]<[S:KL8?[_46>IVQI\Z@1<9.]YC1EW):H02 M<]7=UM1D)"N"9]\[]Q)2 /5R%:]W5"3>*CYY!-@I-*K@Q$2-=)G&$5C$HU.3 M2-,36&%>-X'46OU&;LNE%D",JWT&PG%"/3[^U(CN"[ M&V-DE V^.<1JY8**4PHCHNF1X^QL*8_(\LI0Z[VJ,FGEZRVC'8TDWH[$%RS5 M\L)P9-2D 3_5QI XH\+H> J_'3FAI[.1T!CF#;(@5?-,.8>IT4@\/;*R M=Q@8#@8*U%]RA%B3XI&I>=I5:]S2QEF-7J2,;6R^X9 -@^26X[)? MW=2F;%N,I"$U-+]QZFBIU& ,O8>HME S9]@J&HJDASHJ92I*KD4)G-WGJYK: M1+NS,#XBI(86L;Q:G)=-"D;M:5 TQI/1PM=$9 ]'LWFF"4TPF15XI[%I;]PU MOHB?NH>EXYI7'FKU40#K!3Z/-B.I7LE:/)1\.S180QVODUC5]*'9K$=;O"$%2S=7$!18\Z*G[N%56,2YZ6B>A5FH53)K^$ICRN5H M:'8/6T?AS#:<^I!=&,4>P:E2AY.BH7OXVM:+/;=3XHM&B6R+O#EUB-8PTI,] MW,J:865[@U M+/9+_=6$[<%!UB2K\#BG2HWHJ7NX58)'2Z_%3]LL5!AX>:>MSK)\**)[N&75 M*GF*,&MM&&5S(W[1Z(XU/!F:TL# :ZZEK))?LQ8Z0YK17ZT)AXF'IE30/A)L5XN'IB904&2M0?:764$->%.TT,)XI"6W:J?ALCFLEL/&)H1K:W\5 M(DTW&P%2?/A/#0U8'<4':-."^3#;D$S3QIK]Z*D_)2LYSOTX%FW=*-&1R)3F MGOKT_.'E)AH?(W9'B-A&EK=&^.LS2]K*A5,G#=]]?NOS 72[X7XN9D)2WY / MBQQ>6. OGN]$SYR83OB\-S__&XJ]3$_;$UY\*< OCU:[+?^5[2Z-HW-\X+^U MW0]]I-KOC4@&?M[^>'4\_C.7[+HHT_+TD/W[M35U4SC>@74R_#VHJJ M9!J2*T^W#G\,>7Q.G!S_?N8<4*EK4:G7U\J^OF+V XU"?U>C$.S;!>0-'U2A MXN2OU]IR-)OL0@7F>*)R:^ ;9P$= EG/FFSWY55WU*5J!ZKW=" U26#U["3X ME)H<,KWPW-VY#FV?_;X?Y[*Z>'T1,P\I$M3%R\0Q%.'R5WTB34@E#%=_ MTGCXSMB2N8YF[%W90>+BY/OCR,D9./O/PVYC9T]^_RB-^M7"#YT97PA<*7Z. MB(B[ZIFN\Z*4QG-]L>4Z2B#[G,NK[E*756:E>^)*2P<\GTG2H]MPBVCX[:GB& MH?6;3LUA=9^'A9Z37YL):I#)%8XXB?T:-:[4I_ +::I$@J"Y237.4%=-)=.1 MK/F!3:S+IL'IK*X+;-]TWC/G?J?#N6ER/5#])0/OIZ8GBA[K^0ZT"9DJV2L% MFL)!/VB/0M^;5\D_:R=\"-">M>4%7Y!KN"&-^CU/E&E.$$(QN9:3>,3@?4TI M@#OD*,;?!6KIF9'K/2?1N#U)3OS?? :0.QB6)CCBL!WX'6(N*N^H9_? MXG3E1;FL4'#7"*"JE3*?P3X'4#3KMM5QUW%ZD"GKL#V)#W M#;OG)\#U .P;ZQ!>-8W1I+UN"34.P@;V3*3$UI_UGC\$4*H%P4;QLJT*-::P ML4>"ZVVPN" Q=NAE'[/9= OZ&W9MG=*FNV\DV1IP $Q^SUIC0J18LP.F;:!H MAQL;J%M"Z^<_,O+E_B#OA.TL7*/SB"$N3*<20?7U*[\#/=[J\ M3$ 'D%-TWIRBBR,#<"4!0EQ(BM&1*'$-GHHOY=;F'<_?=@!F5_.X<=UALVRO ME,TWE'-T#,_$%><'@@/T=:_Z: ?D*Y;I6SS'/>],SN183O7+7C\XOYTX%P,X MP$[E38\5FYOLW&![7%N!3[:G^JRZ9FOF8H22)H=Q@U!,KAY$T$>:($ Z!#C# MGCK= >##J1SDO\('T]XL9^:XH<-!Q>!P86EWY7S>O\!S_ M"S9W5$^-&R\DAWC@O3^^.'^;^F M]R/*"FI]JZ##9'XB6!/99 S$)JNL#!&CMCR(A]Q^A,GKAMP*#&6$TUXDS MCKM)\B+0757)Z';$>TV/ M+Y20/$_U07D+*&\!Y2VW8W.]5'QN4OFA[4RB['L0%YFXCI6QIFK6XYZ]]/W%GBV;K]LY<\R(3-_7;FU MQ6W5VM8JMNQ8:JSO$5A&U(B>M B?Y^KOKILJ9@$ M"'HOM6&/[F:) M(:+IV,[K8]/[:0!YOS;L$\2R:D"64>5-G^_(G+< M>G41H:_+(\OUP,W1O3-?A1NOGG.(/J5Z@HI868&A^^,0#6.X2?PS)/V)=,5K M<,]\/?@U5B.ZJ\_6G2^M?KIN0&.:6_';W%Q9VWTX:9X]S\_=*W4[B(C,_8A4 MYQ+=W8[K2BO58U>^*T6[E&Y+[KKBJY87@62\!M=)TC6?_3X?N;);%#L<+"$\ MA ,8KE/CQJJ3JVHBDG3.11]IF@1^GYOW^]QB2=PE8,:Q#:,S80;I3Y:-#KIL M"U!_WJ((9<;(1F4Y1/%3PZ[)/<7$\+&U6 8\9\)@!C]E%PO-I3+H( M=G!RVUPR(44)P@KF:\0'0\7>+WN8ERX=AX;,,KTN[/)7+*4LO47$W"X<70 M, S-H[B<$T$CM4T A[%TH !XOXY0;P=P8W\-'H".4YM5GX:.=0/V6&;,+87% M1FZ%LR8Q*LCM&#KBV^#I]%7P]^$$ W=$78 O[.[H .Z( JX<0(A+*B@[$B5N MSA&QS;:.#(ZYJTY5V].7:N*8 #=%@825?6JY;S]D.)O([E.C&(+%=(6,KW9^0P?Q C*;J&ID9NJ^KA[3G+P[E +=D2^[._(E(/:Q[<:X_PS_0[N99_V/ )N/ MM%_X 14E2;=_%85ED'F>;C-ACN5G;7_!"')%6T0V8-(M&?E,&Z[;<W"H8DN?4^ M;)$.29>11BN0&!%->C;C!/#Z@5*I"R(4J)ZZ3.OQSW'I76-2FG898-< MT[D)LH;SZTX8 U3L!\1OP0_XY2RG?"J_":0WW5'AUU!SF?4 M_! :>TVRY]3@D$5U"M-@8R%UQ+:(XMMF0P0%'':@W.K0: '*JB[ WOI-P&CR M"#61%ET7EGJ]PJA)6JRDA3%@1+84C1VO=!T<\H O#N3;74*^W<61 3B! "$N M)/7KCHNL?F$P/?=WRBW5Y>-))I"0]J3!/SQIMMT0)8PI3F"T M(QKRC!08LQ^*:-)A%OX&?Z9I-S@JGBAQXJXPYG,9$@!F#N.W/S+,E$FLTC)] MO02OYZ7JBH)YMM9.8(9,8.8SM\C>@/NAH)N!KRK Y0#R'$">PXV96CO=_@@% M^YL [HQQO0YP!\-H 0(,_A^AP-_:3,0E4R M4C1S25/C,ETKLINVYE$F\+9-5J(5R4'<+^FLV"? "P:I % M ;(@P#$09$&<\X+=R_*W':G3Q,[Q5H49=[U06PA,LDVY1:-ZH5;)%XXCPM\+UY#Q(+G*.;;:B.:% 2TR99*;!_N]60MS/6P7!C/ M-[X-CGZ$J;3C'IPS09+$J2#H&C,E+@^%CEWJ^*>;C M!C7-EF-^.QNO]'MZ+W^$T)]0BOC MST^Z'SU$WM<@C%?5C"3'/68E>QWQ:*NW3<=7O>U'W\GDG?A]<40K^I1TRTON M$"CJMF3+NF1F(EGUU>0&JLQ?@BT%2J3$RNM,&45?/O^,?CQ/4395R8UU?_JW MHGMS4UH_)6SJ'GB"?(;1IQ]P&1,X0WV#Z7]EDH\12&%$0I,4 MRRQI!;T@VPYD(5.=^$^[/WO^+@'(I^2Q?\\=3X^U]RFY@4)?JF]8MF.X[\R? M4.0;^9K?./(M2Z08?I1+-K 7 "YEIFX,J__HG'#YV07NK%?HW8D22A+!21]N=L=Y3]^>5KEJ1(O?UE'(O^*QZ1 M^;\,FOSEO]\PX0TS?^ZANQ=NOWKG\<]LD1)L%^$L18TGD1&+PY/H!S;.BF,X MBXGRF"!H%:$03%$>MH0X#"-3X/:N(F[9VRH4,SQ7%[H5KLD_;L&NTLQ_2_BR M703?9;IL@VUV>:[(1T)0*W/U MOAV;90Z0Y%&D,P-'O61>2Y9H%M\FPA$WV* M5E,I1#,N9'Y./,-%JWPQ]7BK0K)_9[9+.-E6E=Y37[>Q?+TIO=I$QJ?;4+\X M2]W.^%,G\"+KQCOW1%/@]'*NKW=3!/W\P66GS%D\BX\G$B62)(6(N$K"(DVJ MI$C!*$S)LHP2LKS3 ^G9M)O.)C-H;9D>'/1R&T,NA\6FW8X-T[\2R49UK(BHBU-NAI&$YA4G/LP7)<7-#VX8);!I&-F[V[O5N?A!9EGL>:O:PI==DLRI;$BBTM9I#E1H3/Q1%W@X==S0* M7H;9HM$/ MVSW(@,0)7Q6;0V^T:D/ZLWI!$5JT5V3($P^1"C$>F*4413;=3E^I3@ZQ# MT]F8S+O=93(T-=-E%8I>CMN. 5DX1*\U5S%SR= 446?=$50))-R":ZZ#B@Q4 M MI+;:(BFF5K7A5Z6&/FHU61[/AT4#DY;-9CPR1516DUD$[XXV!EFHLQ*&P;,. M'X],$36[6C0R32D^MZSZ TA>"21"B2Q4=5A[Q,1# M4Y3::/U>OTY77YJN^NVF$U3*LM4NJH[#3LLOX%S5%'!C,94BT:F9DK7 M?4JTL6E1"&J!0Q;ZN38CQ"/30C7GF&IEU%0MF&>#OA"X);8#)4.Q]**([K)F M"#V#1YVU[.=[7+G"Q$/)U 1@IY==RDI?L,S M5".N6A/-+M00,])_*KW^8G=:SU:47"!8=GL2EE:S5;$81B-3Z^^LO5J^P>DC M0>?JQ<)JTG$JE7AD>OUPK:(&TYJ[AGF9LO#BF"Q"5/SZ]/KQ7H"6IW,O$-#N M/+]6S2XZ"+1X:&K]@\!;KKL-5H(A9X&* \&HU;O)T-3Z:\-"G\,EQS8"LS-= M6=:JN2AJ(IU>_T0KX[366N2,&I+'.YL5ERO2[6AD:OV+=MZ>P9L.+ 16@5($ MQ5I4T'AD2E!UR8%):3Y#A'XSM(H-NM?WC'ADFE*3YK2HCD2D()1R.D<8S=!S M5V$\-$6I.CO7B35'D=%&T:9'#9%PJ77RU!2EF#XZ#KR^(L)J4%^'A77-)"-) MH?=0RB\(0\]'( >N87:[M%1[>9.,AZ)IK>[)*).MK$KP&LX.ZV6YVNK83+2H M-%6[^$;!C2FS$72K*]FHGU6FNA8/33VU4J2X'+1T4!@E5]E-*%MA.<*_:&B* M R-6.QZ:8D$'G3+:;!U2L&XV6[4R6B%A-YEKFEHM ML=,IH[X[%_A01D69MR7:3AZ;)A<^8V&IH5KT:I/&F:XAF!HLVYPUG+::3#;L2GI\D9S6"6U M4L/(-W+$P)0[G5*03"%-,(+1+1EIE!L"Z;$J4](&@LDE*TL3;% 8"#DDNRRP M/,W)HS[37C2MZ+EHFF C93JT_0X=L*I?[ME-A&E,ENUX:(I@;C9;-:I+:&:@ M]$QG WU:#V?)T!3!2@JUIN;T>,36=+Y*4F1^Z/:2H2FA:;<$9D#V!X@@33LH MW\L'5&F9S#5-VQHO*35KN6P9O$7K*]R4I]TFDXQ-T9:L&"8OUEM=N)9W)X13 MH&>N&TT!2]-@5:JC1:;6F['DS%:J@J[4LUTF'IK:N1?KE9:#UJC!6KTR!/DS M7!_GPWAH:NNF1$>B&O7]8FZ. M$H-D!NG->]5&AE@GV\JS?&D^$]8JTAN9V[$IXC(CI>A."_.1P+?:A;&)5P2< M2HCP8_M.W' _W%E;#[[LF*8T]]2GYP\O#T"Q^V?G^HE]&_+6>?+:UY3V3L I M#Y'O/K_UV7&X/2Q]+C:/XHDWZ_V(P@O/R8OG.]$S)Z83/I^KGO\-Q=&,IZUG M+HR(\$N7V.ZX]LKG(HT])W:NG\(5!G^#B5]&,[X0 WOIY?S#>!A* ;Y<'E_( M;_"'!0N +V?3EP^CYH OY^$+_(W^,#$*\.4\?"&^(6#?OT"^@'W_,OD"?UR( M"=AR+G,,;"^7R!< 8Y?)E^CX O3E OD"].4R^0*V_8MD2_8; 6#L OD"8.Q2 M^8(!?;E OE#?,!SPY?+X G#L4OE" 'VY0+[0WRBPOUP@7P".72I?,!+PY?+X M0GTC/^Q4 ?CR1WSY8N.077+2RZ8TD^2_$Y:!?YHNU"EKY6-4OV&RR(X9?_F_ M!Q1Y^%T/$9Y [!XBO2ZO1^:K3%+N>XKJ^KB6^:-BMSU4';]'TCW%6MVIJZJ9 M1O2+J9=A;455,@W)E:?;NC\,V14 QFTW?E1R ;T$>GEDLFQ3YLY EB^JVMD) MMP"M EKU)_D/@"Q[TP^ 6@&U^NEQ_5V'*X*(0( X!8/GTAXALDD=Z6V>( M:+9Q(I=D@B,$<+Q? *& _ #'.W"\ ZT"CG?@> =J=6[Y 8[W?48SYT]5%]C+ M)Q,A.'7[[]6+4-?QWQZY@'L98/*7% K_;87"OF'[:72[U2=YQ[(<>UMBPON. M; #\!FZSWY:FEJ0K4,4&,G0RR"*^[8\UWRYB=5U5\@)W#3#K#)A%?R-O[=0" MTH7 \?=0IM3<5:>J[>E+%8@2. ;_OB@EN]HT^JRZWNY>5' HOI%#,?4G5(EI M$)L]+W^>(-?J=JU)?BJYJG[ MHE50)[JL ]DZNFR][ZV[7>&J.Q[8$(\O6>\Z[VY7LMA%H/OK0_OS9%E5CRM2 M]*]$ZC417B\Z)YF2+:O>8Z:@RJHU5MUT?TO\:/IV?.+\KK.3/I6K,^W;.XW$ MO%"DY#+TET3"WA(I\U]]%4W;+KJ2')??9 );]SOJY'\/0O1!Y'W)5B17$;WD MO")68<9=+]06 I-L4V[1J%[H5=H/F>1:]M7V#QE/Y"8B@HH8(L8R)@8>I$G2 M/'Z8KUJ1;F_U,8[>.';T3X]9Z=Z/4=O\F,0?WTC$5K1[@K405Q[*YN5.LROR MD#R::P\9195U2S*]_SU V$-FXKB6Y/_O05_Y3W9@08KC0[L1#QE;LB*J[E[Q MM#U\<8'OQPI*SP^]_SQ*1>@5 X3 %\0%FEM6W$E9,/)EVV_T M-%KBVM>'#B]"@=NY[($'7Q#+RX;14(SHL5"YVZ<#>17# _'PG3P2,H M]I?% M:+JL>=56X-[CX;4G%B M[TX:42UZT![ (*85IU"K;GHP6@L*RP:V*BVZ6@P86 08!/V($>D]]=\ ,DY5 MMGX;F)&N.P>8\4O,Z*B^I-NJPDJN'1'&VP&&F67L_F0R-UDN1PXM>ED;%C?A MR0"CWUSZ[:K5%EE]G7/GFW#5MZ $,,B'[S3V2%,4P(O3X05Q%KTZ-E[0J80X M@!>_/K'_+ -*^AB\JN:HV+)CJ<\VQQ(2M17'Y8U^361Z4",P<.UT-D>NOW(Z M_0&R%M9V>R+5)SEDR"800C]\QQX)+!T* ARL@[(MX$@Z1;&YT>0T[O\ID.T M,NVOVF.AIOA%#2[0(6\?W9<_*W%VE1WUES"$.A+;#;,!V8C=="CZ\!W%R4<8 MRW[@A?B]3((SRFO%\X(X-2#C3")VQ&>[Z(T1G3*Z';/'5K?,#75_FE&MN>FL M574W8AZX\E3RU,S$46<<$&IF"$AE8[,,YJ.P7_LI8_%756BJ4?<:$54=92M.Y+=B78RJ+43 M[%8DU_L\UV_C_K< #MM( M_T6!0U+DBAYB<4?'\&L0U-N04_(4&G=6D_.@.]C',>?^BNZ-EO-9 5XT9ZB@ MY0-3K__QJ36]F_4D,U#?W+!1Q4YI(K$)"25>*]C(K,W4<$ M/=9V=CN6WJ4I"0!S .;O!#Z!G-ZHG&YC;[<@J-MH&Q#4FQ54XOCL/8F@;L,\ M0%!O5E#CV,(M".HVFG!1@GK:""B^H,5^1/37AZ];J%G\4O!AI;JR[B5CG7G\O7>E<=43 MAR%N)(YXKY&)Y)?<5N#9G0XH>\"DJG!:J=B820)O")U&/^B,.9:)H"["$E"> M>-HPQ8WBR774*![:"@82?NF5 0<.>5RZ@(,HR**U9*T0IRJ[! MAK';%OWX^'EUE28]U?.C]\7Q&S?ZZ.JRKRJ[>$_,^,.%MOVO\^GY2OB^MD@]Q5Z6XS6,F^D7*N2O%GK"O M>'?O(DOJ"C+SOP[%(#$<9(%?N^S>;Z3\YG/WKB._^XI$%Z057U.$]/U&_E)E M7?!9Q"T8-28'A9Z+\MW)GT1*7[UJ&Q]EY&AN[MXD"'4ZE4;+W*HCJ&YSKN60 M18>&&!&!MU=_Q%=3_GY %.#ZS>/Z)>9DIU9[\);;-X$-2;+4,S3D'<]OJ/[4 MV0<208'"X&JA0!O67,/G'M)OR58[ 0DL;KV-[2F7_TKK;8 3(+7],LR(*S( M+TUV0=(ZD-UKE5V0CGY?!MK!\]%_T[ :F+,\--FX90,B5^5"JU,=\SDM-JSB M'/1?&E97EXB>D <:2YZJQ%V'YJKM)6S*J*OXLWH-H<=[SD,_:(08Y$3?2,X- MR(F^=4&]#3F]P)SH2_9+G;BA#*/, L^/9^5UG7?>G;BS<['YD']A/;PL^.NH MT9*\2 !XU5WJLKHM$^JHLJ/9R1/W]6^3V85=@?U00#<%O%ZME IP)101).Y# M0SYF$0)TX@=)[ #_KUU.01+[3ZR6_1@K6?>;5_'5]L1GEI'SED !;E).P,P&Z#AU:'AQ=/LW8(#H%A ML7[9)!YHUF]DZ%^P9J6(>-FE/AW5EW1;55C)M>.F#;M<"IGLUM'!HXZ_:=A8-E,0 M=+'0A[GB%-MH@V&[7V1B#-G>]TU0MU5G\]_QJS>$:BP9T21-)?IE3C+CF[^] MQTQ#;;?_\S!AFN>Z*&KS0=BS1=<8*QJ5Z"JI^B(PKCB=SD M@)=$+)BFN)Z[M4&TL_.,MH"8?K;W1[?")&OA M^+5Q>1?Y\Y0:[9!@P'9<-: MY$++];5BIZ")"!9? ('1CPB6A@)0[W2XH.J9=>@C"OWS<%'06T2*S]H$EP\3 M\OI-761!R#1!Q?MTY M-D*0%XXP0']>EC;B&56N,- 3NUYDB/0T* R3XXXO.?X46]&CE#=;HM&58 MDUH+@[76++],T()Z^$X@R&,6!T5DGPF8WZ):G,S$?K^3F()(BLXRX92ULA,L MY\*\I9 'ZR2VV[.39>Y1CHG:'"K58(K .D[35:NW[ WBA%ULUV/P$<:/97.# M#?7\.G7L#767$7#!R'%\/]S5X,;>W?1=O]U8;41_3G*846+Y @UF579(S F$]7WS MX';XN\A!8LLR7!;L'@SELTR!%\-A?NOFBU,9Z.PC_(<]2P%P_")QX<:!8Y>A M (#C!!D(TM@C.:K?K++KH3DE>JV5O7!.9X50TM3@2EV=$!;=5K66Q>J!VMU: M(722%I6E 90<,^/@QJ%DEUIPP5!R#L4<#^LNJ&)@6!.ZP]@J M.6B5F4BPLV]'LF6,* 45(6 M9XZH)4-CE4H8C4P_U)QWD*D_$VC8PMB-2WNB M0-KQ0U'D[5"]Z6-UJ%/I&!(-3QW-JBSS0EO$TXOJ5I=3CNOG(:-D=<8F++7= M7(F)1J9FBHW;VBQ'L56VAJ#D)M_&^GXM'AE[[UX/G>91E9GSH6CTNWYEQUD.\,^C 4 <=()J9A MA0GC1:76K\UAS/%GD@=S_GR=*S)+VC TD4BO'V] H5@9#1F8"\HHI125+, B39OS,%*5D&<'5!EN=PA+#X4Y^N6Y[[78T M,DVIGFLZ[D1Q#!A"LP;"HF4BR,4EJU!H;58T MI^&.8!WS@VQ^S,YU-7YHFE*SMOR]41 MPNI"4,&+DN]O6DPT-$TIJ&@.F]U5)X MM%I=+J!YMY4+Q6R:4DK7KL)U@Q%8 MRYAA@\E<:U+%>&1JIH5@91O-ANC":]+?Y$L*P2)*.QJ9FNA$*"_':[*3%4J# M16?9Y^K">!:/C(^\;XC*J=5"0W>S\#K?49H#EJW.._'K8XOV]="Z0=3+W1K- M"%9AK>16>D74I%"DTFO2-A"J+)ER'UX' 4:OV2J,:5HT,K4F6IMUAO!()%FT M-Q^Z4[8W13I,-#*M*"UEL+&P#3D7^I5^*\<@;JE9:<=#L;=#/0?1!(R8=P4^ M]&:]@L4$="-^?WK]1@4NCXQLL234F'QGOJ#8#0\E0U/KA_@L65S.85S@?'@T M'=%K?+@*13J]_LE(\>QZKE\UT!I'=XJBCLSY=C0RM?X^-BSIC?QL;G!^3W3U M%KYIS;5H9'K]HP%?G\/6HLBJ5428\!NW))A,/#2U?AOC:UI]@Y*LQ31U.&_5 MNLXJ>6IJ_?4N3(@_O-A1&B6+$SRR?WQ*0HD%]GE_,VTAL;EI.S]$UALI'] MY*DIL5Y41XV5#Q=KL*6HM8+B$RW=_W%%U1O":L5:7K?IFL'5@P4K&#U1I'_< M5/-Z['QM8.7":J4)O,5LAF@'FEFEI/EZFEXEMS2C27&.PV2=*4VJN4K%#+9S M2!&,[R\+%8S/FK E4UH@YEHKOM1^;NK^1KH9A!7];%-F:R*U+CMFE9A5M;B7 M36IIS7ENW)KULK!0&Z,K@[ KO>R42=K>I! K"YMT41K(;+](=[MRN\O4V*1# M3HH/E+DL!KCNY&&KIA8W8\I!>G)[U_OT]5 F;VVD;C13.&^T*E(MQTZK_61H MFEZXG2^H;;A*&B6[9*Q6\YX%MY.6JFEZA1TGL"MDM2OT\YHW#.KPQ*UK<7)N MB@9(#R<<;.:@@MI9#G2FD.\.%]L\WA3 FAVEJOFP:_3GXC1K>UE6+B=E RD: M5.A.M9MK]Q&8Y&>S>6^B#@PF>6I:P$JCB9 ?0;T)O.[P?H4:+*K1SE&;.RQ4&;.-I9G$4U/3'6@+)V<+K9)1Z[G18UFSY;#A+MOQSRXG.VP^NAZF8> M-IAZOB3T)ZUY'UO.FMFR]AS[?3VV'+[]'.UYB[53 M+UL@Z@*[KG5'P8*9%Y&X5 W?(S0#O#.>^BU/4$M!NP?;ALJ$R="453)QQ5EG M@$ =ME0P6Y!3;!7CS0;98Q63?CM;JFF4+JQGR]Z$S/?@R"Z-AZ;M$KS*ER>- MH#]CR?4,)]GVG+0G3#(V;<)UO([3(19]@^O/K+!3+[3RVG9LBKC&!LM5G:P^ MAG5JTFVOY1*V6"1S^&&:)(?1YU/6SL4@.Z8IS3WUZ?G#RW,:&1W.IMN#F"6M MH.20;O_P.$"F.O%?NB"@Q%>0?+-SV<#PO^+3G>\^OW7W-&1[ZCM0"KVB+_<\ MWXF>.3&=\/G,^/QO*/:V/(U=53*@,"+"WW/'2W*(GES5E'Q]J;YYYNZ(G+SX M>:@T]APS\-4W"SW)T7@[\ MNMV@M/WX>U0D)&'$B1OSJ.A# B--IQ(>I_( 1 M)V+$KVY0 8PX$2-^=0$,8 38K.^+$;^X,P'PX61&$]@B+H(1 )DNA!&_NJP' M, )HQ'TQ NS5E\&'7UW/!!@!D.G>&/'QC5: $2=BQ*\NY *, -!T;XSX^ XS MP(@3,>)75[ !1@!HNC=&?'QK'6#$R:RFCR_= XSX&B/^_.JZ2?+?"4O*WB<$ M]8WX BD.W,SWVND@.V;\Y?\>4.3A=[TM>*J;[XXJ9VQH2\WW53R])N/X/1JF M:H@>OG>GKJIF&M$OIEZ&M155>:_G*?ZZYRE0-:!JA[UF\D1T^)7VG)TRZ0LG M[U-"TG=,WB<=TM=& DT!6/KA+6GW28;T]9% 48"B?'SG)) 0("$ 2C]QAR10 M%* H'U\@>9]T2-\)"33E5C7EIU/Q=WV*"'(&-]BA?88OVM(=]!ZD6Q*5/PG, M 3JDKY*[,5 %WG, %,![#KSGP'L.O.< 2R_'/L^F;M6^0O/\Q^U/P#H'WF, M)PR\Q_>I*%0Q092$.H\WY0+<.<4N$-_(Z_^0 #22<#9\?,FS<\+,(&P@#/D1\+R\D+# MF%I(]F]PHKQ6C:&^1(9XT;'Y\?+G"9)O;LB,XZ>2JWJ'@]B3Q\6.(S!_#JV1 M\-S\&8"QHI7Y5[P_7ZKPO.MFN"'AR4MS/>7\!=)SZ)R5&Y*80^]5-R(P?PXW MU#?\YH4'[%6G=DW=D/ 4U(DNZT!Z3NFNNB'QJ3L>V+9.Z;VZ(=EA%X'NKP_M MT))E53VNT- IH7F]ZM>KS$FF9,NJ]Y@IJ+)JC54WW9@..YH*'9\:GW;OT:=R M[J6=6Z>1B1>ZD5R8^^)]&2SZ'[S]7_2^S'_U531GN^A*^HD_\] M"-$'D?U?;/V0\D9O$ M5TECB!A+E!AXD"9)\_AAOFI%NKI5MSC^X-C1/SUFI7L_1FTS+1)_7BRG::V>%4ATU MVS4/5E9#1B3CFZPQZA&EZ/_^YS7ICN/U29?;G0%*_WF4>KEKU7^!+X@+ M-+>LN).R8.3+MM_H:;3$M:]/^5]$LK9SV:/]PQ;J5@(/[<#DLM5:B=->:&:U M2/N)A^_DD10?[)?IDI\KU?MT\SR@]Q_J_<\RRSAQKF+O_-8[#"#6-L*.2TI' ML$*T7%Q@?K:?#8^- 2R-#: 0"7$A'VHP&S:[C!Z$$090#]_Q+/:(TL2M($%* M"9Y/E$=PF5^K)IS. G[.^DND=+LC[A2!CE00(AL#'BY-D49I/ D6B^:?;(9[ M7K4UCO?H0[>B!FMVR'-"L+!J(KI2[6XGU@<$?OB.((\X"=^*/H"=\5@[8[J: M]>QX$&/ 7Y>U'9X0 ?9NA1&9H@?MP0#+6--2S6^:@J6A=;HS"'+U:GPJ1K ( M W#LD8X]2&] X-\ !8Y6Z7NE,) NU04PD(:!CNI+NJTJK.3:$26\'08(C0I> M7C(K#H:Z",X4:BV3)4^' ;Q89PI9K4_"EBD.F5$YD)N#Q X@'[[3U".,I^UB M &'@P#B+)IS< B@4^E7 +V'(Q_UG,DM=ZODO8KMNQ8Z@X5IH+8E;6:AK"1 MP"DK;S *#R8E0P1GCK5[68_LPWZXS!"8UNH7$8X;0#]_11XS* E X8:O3 M*P6%=*_2LX/"J1UG2DA->-91#;8_ZYF,'+9S?/;@>OQ6?<-LJ1@TC6S;6!-# MI"=BV*BZBM4712/U1:E'&O_([_U[P?)32F='G0>N/)4\->-,(@[$9ZKH)4E% MY8%0Z*X@9QO:OHZ]^@NNNT+@2O&C1$1,]!$7NXZ([903_^-H5J%"#PVE&1"L M;@WADLQPGHO_CG+/E8GW]%.FN"9 M92NG2KS6%K-QG#M:\K$V;?K.U&4;TKZK)6^#WY>S<2=EB^@A@AIW"/>)__FN M5DP>6V.!^)[46KDH9EZXX?)^_*&_MHT2VV-I5J)U)V2%Z="'?L?W^%4#)A6- M=-Q5P: 650'="'"3(WHV5 DCNR6.1NXS7(#B -S_?(3R.@XVGW4RW"@X[($% MJ-$C8;8E>BPYRRYLK,;U_ X3PP+V\)U\I.ATVN[AW)!WI2?;6.1=+7D;M;P< M*P*8A'\<2+NK)6]#;D!^;X*9VYC/72UY&QVZ*].,"9%BS0Z8MH&B'6YLH&X) MK3,G-:ER9;PTM9B9S>81!)]AG-/.F;%)%8>&?FE276499<7S@KA4\FVH**/; M,?-L=G&=6:F\Y:57-8!50E MFGK$BE9$4D?9NF+8G;@G@UH[86]%LK[/22.9>2GZG]DV]%F^-QKU)K.!!=[R/:P,#*]^AK:F_ M9$OB,MJ4)8NT%K]C(/]B]^M)9J"^N_GMV?OF$T23(&U:,"P\3S9("ZNQ9+SW M40_?D4<:N9DRXKLN'@3 #X#_FHK=@/S>0876P03X LNT@ #?07W1P03X HN, M@ #?02W, 1'XW@IB3A40.?1YKX-34[_!X;S X[.1E9_#/1P/8U\G^NL#W^77 MSWPI)+)275G?5MHX\_A[[QIBO,<.>UR=RMYKC"/Y);<57'8GR\H>E:^*"-09 ME:>,4;*E\5(02-91-)&.PQO(\:(;=[6='[UPYMAQB\O1>I!N<\&)T,<./UR. M&()8PZ=LS\]N0BZ.+5:$OQC M?9&*L-2N2F3\29$/7Q'C]BA\$IUX;+J@ D MWR4DG[O&!(CA-15"'-N_#^3P1N3PR 4-QW;3 SF\$3D\JKG1R^(/>=N]-'595]5 M=I[VF/N'OHH",>!U3*?$B9!GA0U? MAK0A5=!$!$[Z56%']+K?>UP=U!1L ]("L M=B"_(*L=9+4# 099[4" ;T. 05;[>07X\E.TGQ/4O=A[[.\:^KR?I>U+J^1# M?#5$?+M4)OI%RN8(>UGNOV-X&/!DYFIN[-]VA,\P-JV1[P,%HR4+L=:$VTTJ,B""[ M6[:IJTSH!O![.[G#?X/^]/MU.TEK>E;MO./Y#=6?.ON4?("'N,P4UI*!EOJM M26$])Z'U5LFQA^_88Y9.]T8$7>I!G;B+<[$)DG]A@;PLG>NHT9*\2"!XU5WJLKJMJ^FHLJ/9R1/W M6'.HVR"FN*CXQKHMZ1#IB39,AR*"QBU#R$>$.-;-'+=E[%RZKH&] NP5((D; MR"](X@8"?","#)*X@0!?M0"#).X;/FX>W%M_OB-BL='F.T))5H3^@-$'=60L MM#0M/B)N+WW]^(QX^:GR,:U<=1J12U^J&=/Q0(I[[+MW7$5UH>W@)V2^RGB. MJ2N9?\#)?Q>DV" %_L^]]N=C]N619.?ZOT_YO[<^"]@[ M,SO76)EDP/8Q<@JSU9++P7_BC7GE,ZC8LF.I3=7G)EUI]9#Q(M)%3]SC2IFT MIL24*@]X0^4# 1]('M44$$Q'RX3M&8Z#4XZ#A@5NTZW>Q H 1OYW;(\N! M%9C14(7SIZJ[1Y=WL&$-6ZCH,).-P-O=LK):-M&.>0;86(^MN31PZ"Q<&I%^ MKCN=-[1QF, &_?"=P%$ &P<-RMPB;.PB- VCABC^4WU-@<,->!8=0I;Q18_ MDKPU8N02]8X#+#26;FQ_[?44_QV_>F2HQL(03=14HE_F)#.^7-9[S#0D5YYN M-0!#'KX[.("ZEF/7M9Q;KUY1Z9_'K'DY]TK/E^5Q^? 1/SSNVJ>Z MWG8N^THVFWU2MC6Y+/#=6<%RJFW)688Q?A /WS^ZBOZJMM:+A(Z+U*>#(\>[ MU4;G7NFU(L?']47!7ZQ$FHS:M;$S,+$1?^D=\VG4,3-RT2QPPPG0JV, M]=?*HI*G1UJ,(M3#=YQ"(C,$OA4L.4.QT.VIRLG,]/>[/,$;H^JU&\,^C-9& MNEWH#_J-Y<&Z/.WV]V29^UH[06S9G<%CU@@DH3O"%"JWMA*S?=N_[3%+W8S" M@,WW;)OON^5;YU[IB;U]5X,A>W?;=[V#HQS/8[5!51+0 @=W%;7<:]G)MALW MB$,(_)%$TC;\X0( ]XXC[Y;*G5N]#@XD[Y;1G7NE5P4D[Z0@4'TF,M01M,V6 M?&S0#TEUN?'^^!K-3Z-(?X Z>Z67XV&, M]+4\RA*S'%O*!DZOL:9X8G3TV$*NA;(MK8R4C,"2_3%>+?&S30( //3[;?_3F4D?%*3+W+N#]]Y M5][4??R>0=6XG;6"KQIR0A*-YX,D7=EFQ9E\S, MCTW+R_PEV%*@1%JJ_/OPJW]_K9^%4T5?/O^,?CS_M6RJDAMCS/1O1??FIK1^ M2B1N]\(?Z)',(?KW=$M")/LM5O$=UL+PO^)9O7CLJV=!LFJ:?W^4>_/\A"-+ M"HK_A)T=]! IXB0__]_+Q?S$5DAV3,=]>@;0%\3;T05-L%13H;&K2@8D3:*W M/TEF**V]9[B.#-X?F71//T X)G"&^@;3_\HD'Q$XR49ZV,,R2UI!+\BV@V[( M5"<17[9_]OQ=@KM/R6/_GCM>$CAYHJ,I3T8N,U7*K[[ZN%[-Q; ^*:W?+P_ M1&KZ0R>DEWJQ7R-V)$DH"T6D_3G;'65_?OF:)2E2;W\92;_\5SPB\W\9-/G+ M?[]APAMF_MR9=R_:Y98)L\6\A$GZ)%5 K11 N9G_/-<,5,/.-, M,N6C[H/)-WJ\4?E/Z;WBHX3"5UO6^+B[]1_,4KH&,1ARE"I! :$^7H2WRBR!.:R.[D7GJV,V&< ML61+:O?@VG0Z&PY4N#E?A7%>[]N1;5.@^V35F,%23UZ;8[6FJ7I;1-,C*81< MT/.B46/SCMR:;JQ0(1TF&DF\'6DTLB,/XY0^J^-5;YF?=7'>8R+C&WX[LLM- M-X6LL&C!G(8TZQTMR")\6\33(ZM5 62WD^F1Q,R4W59NW!365%:H^6@NNY+:8C8]$BDNAI8UZR^, MFD?EB&;!0KEL6Z32(]EY 9K5\I()KU>^WAOI85FK,2*='CF?M?FU%$X&+ 0) MZYH[8N1J]$P$3@\5'8=21VAS*4#DH-P?!FPK7&MQ9_K4T*(]7O?YDL08T)1U M%@.KNM'YI.UI:FA!0W-09U/ML%)US)0V%;+&U)/L[-10H1B(<[,8L$9^V6IFZ;47;-!3>Z/&O.[@EZ.O*:%#61D9I5O8V-;Y.+>%( M]_9PJSX76U:NL6BP"V5,D'-V13/92/GV<$M=SK!6B>I2<$W5ZGTHJ\FU2/O0 M/=SJ]3H%=6/1J$"6^AJ*;^C"TM=$= ^W A6M3<@Q.C,6%;EKBY*6=9UHZ!YN MX:HV(*K+K ;7ZCIIE_6N4;*CH7NXM5*%H-^T^PRL]I45XR+ZQG&CN>[AEIA; M5SBC(-<,OE]JMTMN;SU7HZ%[N+69+@Q=%*I](R_PG!X6VY"+1W3=PRU)&0K. M+-<(870>#)8->#%JNF$\]/^S]Z;-B2-=VO#WYUZ(XQ'DGLU3,=(4!@ MS+X9VU\((24@(R30PO;KW]RTL-FN*K!EK#OB[L*@)3//DM9;4_J43>W)7 M2,[S_5YL<9\U%'/=GC3A (X0MKR:9?A[L]SMQ0;YVKC<6\=R1@M=>O#4[H-B MCP:964HLO117;+\XX@OY\2!^A =BFF ,GUNS#=NXZZRV@%N#CCE&'HV#2Y=# M+5^+5]BAN!G$7_3<+#9Z>8(:^ @/V,83^R -)8LMC1J9[%7"W4B2SW5DI\-(C[+)H M3];&*C?3Q4I]^B2)@APO=UN#^!%VX6KW]\F1/FGT4G:F7.MOY=@3!Z=UA%V& M7*=3*>>>VKU4'FTRE:<.Q'N&!B?!4JVX3HB+.;#XCOY3OTG5I#/?O M(U)0O:^6''GY(E9F!E0'0JZ?KL%+CQ#6ZNM;9U);)*9 !=*]=%<;W67@YG:$ ML*OQLSJ7A>)PJL;2S>5S8UN/ZRUTZ<&666&9[EDVB9('=CG M:@?T :@Q9-S\ALOR\G,^1];)F\<4GR" %Z^2F0Q6R4P.V'5]^CQJ;9J]2B,6 M?]1?!IE!\T_2WYNF,5+M*A2LUQ++].ZZE>CDJNEI3!@51XMR>UNHK 8)%.P0 MOV'CEZEY&\GI5Y73UQWQURBGEZYF^SXYO4MGFF/A.6VSC9&6J_?RTIV81O&N M;Q>TOPIS.]"7D;$-Q@209+*J 4:GZ %]BS[+R/2>F\9212[;X8;YRT$95ZK^ M]RDK/+(NKM6Z.%LUL[/Z3/&,HY3?/9S^QW(O_(V9%)4/P:(P$) M'TF5RAN6?:QM1W*92-[GY,IXV@>-90UT8FK'0%5LXE@])2,_222WD9_DXN#B ME^5VR%?OV)S=J;$+SER.2K%Q:1E'<@MA12;Q9@W:+^\MV<<9,EHG1B:=P^ C M%!2)8 Q1=P+&!$N@.P 3&*W'F:!':)8D,JPB;\H7QBQY7VCS5$*1UGO#KAI8 MF;2:D>=KL:&E.[EQ<3Q]:K8&601<,NG#@,E(YB.9CYPI8<$[OR?SVYC27R2< MSL,T]:R7GF7K[KG<6PUP6;Y4_,H\*2@A0Y)E$[@01U$M&?(DA#GP;VL"5RIF M W/&J/H2T*#,R#;[BK;9IZ4HABIV[,NG>@BNL.X:V^9Q]F A(8B%$2!^>Y5R/KX.\(C^1]#%\FJH'*V+@R%B<_:.I$I;G MJ#I&9 Y=DR,DJHX1L?[W\ 2S)9#;@D0C#)&XY_M2QOI DB3?"UO0I7"'U^4Q/DBUSKH5-Y* M2W#EKHK$KHUFW!CUH'Y"(A>, 3]]^'EW;[(M$(\[XNPQTQ@.VO6468)F&RY/ M&C]R^AD)\G<7Y,]VN5QA7.,9!'DUYKBDP+;N>T[:3I<>[&2J(6-!1AU!V->J MYUR'\P4C,@;.,!;Y6B(+*_*UA!*Q'%I87J06$=J3)E4I*6D)==:_8RO;L:/7 M4H9RUVD-.%RS-''#\:\&:D6B'XE^Y%P)F7/EO:+/Y<:)B1A/)E@PFV3:FBGD%\UR M*FY*IC$LB"U[BI([<)'23.0LB00W#BXN<9EKMZ_P@J#N+L=XA# 2HFT"0;]48E2;21PR2RFB*'27A1BCB; M:\8&@#81VZJ?G?5:=&U[P)JC9-5XZJ5>9/"D%6/9EP9$+EG2A@Z./7*?1(H@ MXJ@H]NC04P=Y7M\38H/IZFLM+>GO:D%?M4E=9UN5%"XX1AZ+<9.-1 M!YA(?"/_RN?X5]X6WVF3'Y2>EL^"F*I6&G&632\K$RR^* &(N_Y&,%[)4-KE M)7*D1/;35W6D? M4XO9[Z*OV).]8D$S ='7;9J\7:O5$^4-\O. M?2:;A!J.(RWJDNRE#H!"QON1"O@.+I1O@6Q^507P'% [M7PRP2XR27%[K_<+ MW?P*J0"2Y?RJ"OB"SI/]S)[(=7(./6:8"C!CY.*?W'S-6(:F*LQ_L/A_5Z/4 M,*[YY+F&RTG\">&U.YD%0=5VTD.L\8EE-O:@Z+W*XW;./JZYQ;(X'O"X@FDB MP4853"-5\%OX)E(%GQMN^^NJH- 4R\G"HR-/G73U99(:)3?LB,RDMC+J@$\E '-*D*R&UZ%FI0X6E;P9/] M(PK6&=])JUI^T6?[SUW.W&SE4I.']F0 H%+I50=3@F'B#PM&J%MSF+<88,=;$,.V8#4QW-\-]>R-#(#I;CL)+PN(& M<"6Y" 6YYLDQKA^YP>(JZ$I>TC2K,>H@<4;2_'H3[ON79/(A\61.I_VD9"32 MBEW0LN,!C\O)'IO8H@OE#7QVD MY,IV)B"=@"S][ W+ON8P_$J6O@N0'%.>2-;E<=!W5'#?;,Z?G^SS\0[,B\,> MJLFZAB O'-4$6)%UWU1DZK/\/.5GBUEO<=><3I[ORYU8&RHR7'>6O\G&HT:Y MD:"'VZT1+D&_.);Y34&O/&YFW)1MWXGJ9+KFVZ585KO'@DX02^JJHTB.H9BY MB0)#[ WV\0"XEG.T=I'E=KV6VZ=AG9"9>-\ _C2I<#A>2>Z\GU$-68K MJZ69GSW8T_S0WK;S#>YI/%D-^#0)_N#8J"9+I"8^ BE]>S7QX>#IE]3$;#)9 M;5ZT)=NOYXU.1S$?AP]CI"9PSA'[>ENQK^CS\1QD:(T9>P*8.050E\9/WTS\ MOZ=Q&'F!S@6#YLK(^AGP9Q<-TS-U&B-7R;VAWP8=D:TM[Q,Q=C,1]7RN&T_9 M=U"_X:*Z1\ZX(C]0).I?Q0]T[% +S9/C_[DZ'T=@RQXZEJH#RV(D!'R9[QO-'B:WR&>OT_? "R?MH1Q5&,"J [LQ0C'<]!?E M"&)HZ)EL47WI#\2\5GZ9Q88KM;(0!CPN9LOQV9LT=S'8$*F:2-5<;X;-!?'* M%TCCI9F[1U-&HHR1/U(7(=8-4OU;3 M6FV^IJST%=('^,PEE;A 1FW8+(M?2;(=J;JDRQ=+L@W;TH3'Z+H61?D5HE4^ M)0LW9#2/6/\R&"'DK$_FNS_K]^]SIZ8?CG"#8 ZN9NACDF*B@*'M'5JX 0GP M(_H^L.')AA7EH$1'DE\F^N#*SI8 M U-62?2@91ORE#'F2)ZC$AH11/^JUNF5;^,=)*8-(J4B%=]CH0#/+_%*+C%^ M[+)\0ZG<:#>*D@&94'R,2^&NQR:^\/L9[!3XYO>-C;)HM3_-F+7:? M+XA2J8(%'GGF#S.FOF;8PG$80QO^4@SCY43,-4F/+).O:)E$C6R_%B!!Z5K' MDMS-C5P:JH-8>JIVU62MH@P'"5$8Q!.DF@7'1ZZ$2&"_@H?@V@#%*8'-/6OW M]92>7_?4;;98BZWF_B!\BU1ZN4*LD'D/HFLJ:_J/CF8[Y">&B GYY/#:2714:;)QTE1 M'K8&<5QY-'X3/P)GHNR*2!=\5<_*Q^N"CZHW<09=P$Z+2?[):MZ+?&N3S#L+ MN[]FL2Y +>!NTMG#CK=?N_I$&\R#U;ID8S8S=.)RB6RV*-[[:^=_O.M4.&+N MB+FC9(8P[>-PP_:WI<8HC_K01Q7 MW$S=9++77'#S#&U;C^4R1*D,WSM_/&K;>FUG.R?RQ(JN\+_:MM6(]>9:;FL8 MTWYQ)B32K7EB\CP>Q''ESE3Z)IN,0D\B]1'U;;U:8/9+VN-DEFG'O%N]Y'HO M!38VZ'&I0DTNZ@\KI$92J !P.GDU?5NYS*&Z.$!FY-:8!D8V'E/4Z/(Z#]&_ M9=I-"%8A8O7O,.?/#RPYWRI\<6<$>84X&@&9!$^LY8FDCP$#P0I@R&>+@>B' ME,34%?(!Q5@L(52(>KQ&1D/D<[@BGP/1!(V12/5 &ZJ!AHX,"?1_T1?[-K!L M4Y5MH.!*F+JR^T7@RK(N:PXB3$&UYH8E:25(X3F\ _Z-IJKJ#E :LR7 MD9&WI70[NYFRJ6?9SN?N6\-FN36(XV*:"?:PN4"DDR*=%#DRKL21$0J5=-)! M4E]SHUGB<3;L;92,(W?TB7K?6"'=E(*Z*748I/M%W2/D%?A*8\#LJ MVVO1G*'S97SYX-D_4GA-N("& M6>"20+% #YUU.#0=5*U.UK*B][/]#:^;DB MB9V9JHOKE&UEGU>#!*Y$FDC=9%(7"[Z-5,+750FA\_E\>604'I7@F/6UE4TE M=3:FMN>]=.RQZ8Q;2"6@9*7X39J__FJD^5-HB)%L9@C@?3J*V$&5VO#21T9J M9*1&CK-+.T[Z3)[X\Z:];PUY%L8MCMI!==?1/ V1_[A1;] O% M7GTXG7W)B*>T8#[5-II-\7GU= MK;%ZDK/#@1ZK3B7C:=%O/#UNGAT!:0T4?YV\X9-OE@'Z'UN"#'$!>LMPBL D MWZ@Z%&?[)PZB#K#!HTMX%%:G MPXHL6Q_H%_3\A[ MN?1M%GY#]0;+_A<:=N"Q.\^*R4#3_GD-F+M/N-1ZT^5%:9(,Z_\?OC)UL#CX MO_\O.!G?+(W)AF:8/UU%&%@\NBX\UHEC$!N:0)K&I!%\^T])6TD;BTXUP]TF M/27[TU.F:(&9##)/&/R18V_C2;PF!R2;2>M88-FH"B8)!/0V]SNL/G_BQ_X# ME07N2/X3U[M2EV"/9)3@MC'_R7-(RP;IG8!;8/* X!?9UN(^*X1 13,V)P:?W1TI7U MO]PER<%2DQ\A]\M_H2N8_V9X?.??>T38(Z:_P](7DJ].//Z\9#E0,R?%BA"K M62@RG4:UURTWZIT;XAHJU_.W9U2DOSJD?*->$.L=L<# 3W!LY8+0A7]TNO"? MFECO=IA&D(R"$HU1UQIX8C@7QEW7Y@?[1%OI./"!A##7@E'@ZR<7! "A9=I#(\/(@ MPV9& X5+9!)9EN4RZ=$/HF(D+ZAKEN! ?9U-B(WG=#[F;.QJOCE&A[K[5\I% M0TXF1^M*KU(K3[AV)IML#58#_O#*A^+&'N3F&5QZ,LY>>/?#BXO&17<0KN6ZNT4Q.5/3, M@W%F[?Q(UU>M)EO)SI7M.%_9+HJK0?+P[4I)?O%UZ&DN;4DIY[C7BB7SI,3XKWR]7 M@_3AV^L%_J'&-1]F;'_]/)RDS$FQ<]<:9 ZOO"_%.@^Y9PZPF_PDQ>IFKKF8 MC.&5!^,L/&D;-EGOZ&(_^R+E+'-SQ]?0E0?CC-EM_GE3'EIB7M06+$@7$T,! MO3VU?Z73'Q@#)Z5W>@VA^/*BMZQ\;;$:9 _'F57U0K.P47.BT^V^Y(LM:>(\ MM."5!^-4LLI3OU'7^FRGQR>VC?ECJ07'F3T<)\@GZF !EO%>K-6L;OK"JM@; M0)YG#U]_I\A/C_;V\5%4RX:X?9FI]URAA2X]I"=?T(>+ZL!A*]I=8IYZBBW+ M)?S4@P$LZ[UM*UV$ <<=#N#Y(=](*MW!7$REG)A8JZFK MAHDO/1@ JZ>MO%1>5Z;J!O"/\7I\O++'Z-+XP0K,+6T5?WDTV7YVT^1J[+BZ M3>%+#\8ZL_3X,!F;:+W2PFCFY!X['T-2P,%8I\ZHTX^-RIU>RNAGZVSQ,5Z4X6(=T2<5.;U9.;%,5LQG5O5F,WO? M7+^LT*4'8YTY8)%N/YEWO7RGWC:26B\^Z.-+#P; *I-\W,I7;18TV 9KU(3* M4QY?ZHH MCP\!$]<&A"]:]+< C_=#\%=!2%>BG81G),)7MR%UX> C#T Q;;I MOM6UE\WX'<,NS_T 6:XB"X172*ZO-N9G(P460@)\^KI M34242(M%=-D]$GLU8B0BS!\1YBRM.%\'S)^Q+NY;\G .0U.%3[T#VA*@>:$W M2+H5HZ_YH//KU[7+52T1M.W0E__W(_GC-Y^^EYXG,)@AW%,5%&N#T!S 9()FYSJ>JR,0.DV^7U62P?*?F? M'1G_ 1D >/?[['E^LPJ)92R@722?32C$QWI3LNON8]K)=EG R]-$=S%KOB16 M ])IFW\M7C_,QF0DXY^4Y1/E!GYX89VW93Q>6.1Z-HQ4>RD, M<'/N5.J\:= A= [X& 9A%FD&!V9;"+MHCH)[5&%0,P,2\@JXC;D-DN@$$8^& M2@TQFBIA/:&>$>F$;)U"9/9\N@[Y*#P4PJF'3'U>&B(U7$&O(CEW.P0>T:+M M13.VF-_5-+;/WR<;=[%"&ACC 6[BGC%B""P($+WS)F(;S:(UJUKQ(1$2X]''(K M/Y2L$WJ!N_)XB1!MZI\YU:8)YM0;@ \7YHXI3]!Q :JG:J(S!'N#ZZZBDJMS M?+9@FU!81L T@<*,3&,&KP/X<$*R+ ?8QLG[HQ0;G3X&@58A.3T8*Z,K)^" MLI1T&5A%PVQ2P6^,BNH:* *6Y:XOZD4HZ4TBZ/0WHTFE7- 5T97Q(R[%^]'3 M;)N.FVLV+\1RI59!?'X&J"1+'#4KB0(T(AUQ]0$:N'H:_\^56?_-X_C !#)0 MEQ ZHMJ."5#E9B3U2LZQZX;]!.P3<6".;;;C*]4$8K\&:JN9 MH_/=&:K$!J%$ZH:->O!$>B.*8;C6&(8_T1N" X1*?@3$BJBH36N0JRQ6J"YC MZL>_Z<1U135T;$.>QH;0E$/YPS.X6!8F$R.3]8,/0:Z:R$<3V5^1CR;F-8]B5?JBUC!AM+)PNSIV3Q,5=9H1*QR!W#92-W M3*0.KMT=\T6!T"7406>6$]9.>Y7LJ,1@&?YT=&(;.D3KBP M@D=HD.O/X.7#7 MZ*#=L LW0YQ+<@133)[8R;K ]9MLJM](9).I9]9R<+\(B"GB-ZDD?U4.E\;I M1%M&,J'&@+_@.!EC:$NJCO[$+!0S1C$'7D_"9B+'2V1I79_CY:S((.+LZ^3L MR(?P\82/H8% US-VFT2K>US9$=?U!X2#4W MJ:<:ZS1$IWX_Y;J<@_LCP1V?2YQ_OP^SD1!D];D)<&%[>$T!#&UFI.J2+B,( M(!O67@V/@_@8AHGBS2/;*G(W7--I#K6MD#(HNKH@CU1!F6J"LBY0/= D:N"( MNAV9LJ:-GJ3E=%.3!X] -]1)'+=XB__X-\FR411,I#TBS\POQ>+^#VZ*^%7: MVI.;O7KNJ+7Z.P7@:\SOQ[\= # @FL$;-Y!G2''\NF$#BWRT#=2W'+X/Q;G M3[B@O63#/ZA>E30&;@4V(+E-.WVAS[TN_.LF PT[9_74/EY&RV=[!; )US]YHES^K!Y$OKO M_]OI%.5I+=3FU#!_NJHIL'AT77BLI<8@1AI122/X]I^2MI(V%IUJAKM-IEQ[ M]:>GWM ",YE;-OM?#/[(L;?Q)%Z3 Y*A%JJ!9=OK:X]OVVVDBA_[9C\L2G#; MF/_D.:3W@O1.<+?IY '!+[+WQ'WB_*_$3$P$L?ZCV\B?E@P=82=M1S+H5S_^ M[6)+R!@A$4=-9RU/)J2@7!R7"+HD>&5C<&G]T=*5];_<)'SGWWM$V".FO^?1%Y*O3CS>)0MMI1Y/*YE$2AD.LOPP.4AP:7:032G* M()$9IN1XBDNGTFY'W_,0\D UO=%)OEDH,IU&M=I7,_?!OK!UQM= ML0.)WZ@7Q'I'+, /\(YR0>B*A6*Y+M3S9:$Z2,8_;QZ89]$.2GD6CYC,I=M@ MO($SP9$SWM"93A=^41/KW0[<8NI"KU"&O_^-5X!@\+HS@X.4SV%Q['IPN&Z#+N!\,@!;*' [--AUP-K5R O0< MHQEWR^2$3KG#-(I,LRUV(#D$Q)2,4"\PG5ZM)K2?T&^=+I;S0KW+"/E\ MHU?OENLEI@GIFB^+G8^@FH]4X),P73:'5.DGU/MM,[9\$3M%17RJ+L:Z>-^Z MY#J_!VX>6WG,A$@]!]GP,D#SQ;%L=;1Y#6GNCZX[ 8R*Y%V=,8Z+_Q!-*6R4 M@[!QY,%&RX>-GG]N DR@ZLQ$6@)F"(!.DMY1?-!PPV!%B!I/PLE;KB+4Y5OF M+U27%X$YGOTG3[ L_HO[YV^4:6\Y$@HV,G#Y7M/17&R+@I%,,'8TO)QX?=$5 M'2 [)CU7A%>XGEJX-^^Z(9.PNU]H.H6Y!^9/)F^N^5( M)EPF;<.TP=PP;08^J@BW8#( ]+XY.O(Z8S]#; D1_XX%($) 0H'E!?0(IL%_#.Z DN/0_%B,0 M83@AE167.OXL&8!;6!;@ZLZ&P/2Z6#+H&.D&#DN#OWI#AVH"/Q0,30>Q$I_& M%R9OKT^%$U*Y1RR4S>AR8\*H\.O5Q(#:(6:L=/@TRQE:JJ)"%D4*%UF"^!Z@ MJ="P(IH-/@;))1X@]54P0TG#-17P0W$@*7'"6N%:U!-+2$1\ &Z4)P2D> M9R;RUP1>@M4CM(9QTC>.=/DUL1@Z-J,8>#^P/7*A=0WN%2:*SJ7[[;FT.Z'( M_^Q OHLCP!Z*SA8AS69H-![F>\[EI_5Q,S<69]E,L]T22IFV*(01\_5(=2!O M"J%B:P(*/.D\H1$051$^4>W-F?$"95,KL'7HS3U_1ZDKHUD"$V0V^?J\G)#;>QGAG/WH3(Y'7()ET M5>')#>O4>$RP!-!")!>AO1DJ$RO89(O_)*0Z4=8*[P'0@M''*BY.@5?NAB"CI:0Y M[M)B/RBZ L-94NP".:EN=B@ZDQ1 T*RD;:B-!#G)6&'MBK9M&2HSU68@V2Q$ M1A7N'JKIHJ^Q82@K%4$^1#D#>91(20TZ*@A(-'7KL;D"W&0%:>W2W#4%"EW! M\FT!6G/#978T$!*U: RAV!%[XP8N](D<4DKG&[I:;O,TN#7+!/A[UHG'A,CQ M<,L(LNU@0$IPG8R1E:)"EC?=+<.P]D4$ 3]R!UI*]+V)V !@0;$0'_7D1]P"<-D/F#74E8K_0;!N>R3KS.&R.A^M:+*[. M(^SV/N"DGP2I 246[-]K!4Q-TUM!DG]$=RNR5;GU<>CHY@''RZ=P-"13P--H M&KJ!E &>(/%OG?)RO0P*JU**[XRG*4G2TP4C/WMN"H>^Q^/77=[W^ ?\#R=/ MX+&_,HP;EQ(>O%36/6B/$'V<;)S^\>FQP3,Y _[C;2Y%H9/S/%HJW/\@PQZ] MK3?'8,.]3^CTO-OJQBU^?8S-WC"D%QB#FX$Q?W6-.639=(+]^R?MCJZ>/EF% M$YK!O7U)A0O*C?\PIN";$E! _D7. +@IPV' 46/[#9O-R"(GS\!+@:TWY&/2 M9>Q5"6QX0=-DN*&P#TWY+^YOACIDD)1"%0C&ANGNBF.X<2-#$MXNC>$?8T]# M!AUF%&2:$@$8!B0'1&^>+^TO_N^=QJ6TO:G_2&(EO4 H9BDJ-CYOF3)42IKE M>1S@%DS5'O&D0)'6%6_A@HM =EN(/G1@6:=7@;A7*%WQ/AQX)'+Z>,^A=48A MWI"AZ6>I^+GP,@)-B=L(>SU1/$"O>8EDL24_26$=W;T9O@?<0] MAZ8").36E!1C3C"O15D2OXAR(WW?4:")H3E6S<@ZW4#=CE4TY77X#(STI*6D M:OBH$G>5M9!G5P:WE,=]9J.N+&D^UY!N!RI>?+C8UIPL#G+?F9#H=O KLK:N MLX+@0CHA^ES$&<''P.T((ELN[: #A60MT[^ MMO<.[Q8^T03*#F,[UXZB*=>KX# T,*N.4 F%60D*LR!R\A 3U. 4!25B;/SF75B'[,)>B!N):X1[3=MS MNR#%;X()M$'0CD!O<"\3B26/@%$0B01P$O-7QQG:&('!33*&0-C^U9!Q#\9! M'[P/LSS'&/57[3W&12.>(XEB('I<8KQO#[JAQ<>7*MR3@3Y!F["R"^,@UB,/ MHV]"9;&(R\8[T7*WO)$D>^XQ"GJ\5^T"2!_;'-^(,2H@!U*X]_S;F"9%3TT/ MS[C>NC-]0^S$ /!!:^R!HMOSHI%/115A$.^:[^A%AR$F6*I@!=QJMB8V!M$9 M)Q'U'4=ST%8F,N_#2N2E-"R"Y#U]@1;#.RD9 DBU)<"'K&2)+7H0>/(E>(03 M";\ PT@,;"7?M>92[%57QS$Z^2@OJ*6/?4.CV^ZT*9=-93-<*IVAT5\7=E2T MB:L8%3)'NRW*C>A#CL]#DD/1-@\=%)WYNG#'3AX'XB;SW!'NGK@'KC@^=% < MORXLP5'\+=,6'\1Z3V2*[48-!;)UVT*^VV'ZY>X=D^]UNHV:V/Z0Z"=*@K;O MK#_E'.JT^V*.!_6^6)DN[V>*^=C7"I<*@?KS8R=7&Y)34,L[EL"N[7?F*\VA M7AO$V6%*$6N-RC1UEUT^I,HICK?/G;#$[N0KQ2P@HYRE%<3\< /<35=RT-;2 M&%'"=0S'E('?-Y0E]*I+ICG(Y296[P7$-3;_H/.;Y^YXGJ@*/_ZU5\9!/A*S M@Y71 &+J.D;"WW_>X7\&NCFI:5=BE8TA' VP/X.;[S60;I%9 M>] <__.3$=#1#K09 T%;94BDL8F5Y),*-(5I2[-Y>+:J(*?2 [-M@%F/Q%$1 M_]XI3R9\F.*[^7W?GA=[QA '7HI-44S;#LJ%JX4M\BY7$5LW7CR&N_$'7$E_ M01M7\]#)5#=6.@I3\-^-WN:^_Y:.W?T6_6$XMH9\3G#;0Z4Y-(!/N'R31 ?%8TCLSQ9F&,R8! M4",#G M$NR>TJ0-Y-F?(U2.Y]@J!:QKUVU#W!.[6?7T,K2,/_XG^,,?S6'/;8:'!X?_ M2B9AYB 1\/_[CVPJG?UG/T5Q+UOPH[5^&;'=SB$F%2PLZ3=(##RQIR:7Y$FH MMU<<)!A&?!7QU1&^@N8YAF1HYPV$8KAN$)?3(KZ*^.H$7Q7HKK?#5H'X4Q34 M((.(@2(&.L% H1"\NO$0+Q4>=YK'CAX>X6()W;ADVT\5+4,!A$)X@$8-1)1YF:8Y.."2-!IG-9BH. M&B26*#H89.:2Z<<&XY,Y+^.!_H374*5(!"@W#&T"RZ ]Y/#7H%#C,:#7 I/X M@)TA\NK+-"C4-<])20,:,QNP157<>62(2/2AX6K8G>5Y')#CM^9H-HKS;OIL MUO"Y[)1C4AT\6\5:.UL1^YV*6)86SXW^W?CSW;QOE)WX\>^>M\6=/1.8/A.8 M_T6+AORAE."H"8LI<<-8Z*@/7@C5K#S!PJ#@_#J9!':B+ZB@TFPT*!$6R3LXN3?>HM2M?4?1 MS"7"B9MN=K.4R 9-SU /-^<]$Y5$/\$)''\X.:ITS^CI.:5CN6=WY*1.,W3X M$6@:S8R0_1"^3J?IN=D^7) ]WROUKYV2UI4FI]MR(BV('3T[7NO5K/+461T> MX1R_+KPQIM[\70=C:.34'YGINSX/DL-\OQMDJAE*/310*@#\POKIR>>.5&(Y M"S*E,;)72!+_(E**]Q7T*#AGXN@5U\BC:_ROY>RN"YYI^A;%"R%'L! MBPWW@96QZNHVVJZPN]PM5.?]]XLXU)5DR*T37Q15&2 M.I[+_+Q5C)^LRN%7 [Q "1,>9)!,(]9!S3R!HE"^SP<=<<)=!H0@X,.;3-!&V M*@+'2\>4Q>XQC )P*T&<-X\@-H[80.J):B L1,"< YR[A(Y$X'!)6M0MPDWT MA[_@*V+H)T:&+#,&?WOWGW@O3;_#M_CQ16 >M+TETT0G,1B4[QP7N6="?E24 M2Q-&);=Z;PU,PP7AI/>?]!9<\36UIW^Q@O;C42@H\4^X\!USP[)C'@"!;(?S MUG=G;RSI*OM !1H=!(Y8\ M<&Q_Q.<$D-\P0R!(ZC MB(96>NI)@+QQXK]+" M!NY;<:B\ZG[K8#5 4FJ\!7)P5H)%WHU6.09OBL%E]..Y"2XZ/N:]R?O<$:,K MK^QP@(O?E+>0&=:C.VM&0[-0EBA<8PA\L:L%\X])!X?^D"RZL]+0;YC4ZG"3<\:*\-G;?WX/!$MNQ #&3I M!:&A6VV,>JK0UN]5;')(G0[)QR#48@I$\!"^\QW-#JYVX070*&Z6,2($!@F0 MQH9C[^!.%$2,UQC"453F8HXK&E@!+.L.X(8!M^/;&T;6#$>AY07@6):J!(>@ M WMEF%-TCV\ZXG&2@"?KT.>SFRKOA^'M@!SZ=2 6B(CR 2_ON),"U:1N28TO2+ M"W.A6-YU.#QX?_[EU^P[<$-XKHX+6?![-H+O1<)>;FH-TCQ;]"ID#/=1/3-2 MU6S77_Z+/.3***0G+@ %4-D3$PE/8 KP5M5$;$"=ZB10\4MP\6]L1 =KBZB- M,F%,:QMA$">*VL<(AQX$W'V"CKE_WA_[^UJA5]X%KXD5TAB] IA6;(%N@ M$R3"?#3$%N>P,5:@CM&+HXQ)0EB3%-(Q42T>US?C.F@#-]S3&]RB/&BW\Z<# M!X2*W).$, T1V\$;:G@4VT=G*'K;UV^[ZLVM4(0Z*Z/+ M ^'2)\)X2;X>+JD@4U!#%AL[+7; "/5@6$$(1,I+^0?:[@#((?L>Q%' "",? M&LM"WB-!)@1>F2BO.@NHM^A[7:_>_0M(]#'(O;S*[T01+-W M-7+JJ1!) #1@-TL20A*R-(^&KY\"3CYN(G<3'UEG?T9>"#T.%S"A>$.[2 F^U*VI1931 MKL.*7(,#$&A:V\[.X!4U]6IVX?,FQT9*A=Q+8QUHGH$+J7">)=0>;JHG?-S^ M<$XY,OW9>N?#Z#(3E12A%#H\%7LUQ6ZO2-!.@@(=WU^HP"M6@*JOV#N/CW>=XF:W TU'^J4*KF)Y*A2 :U$4INH&\ M&Y@8O[8][P63[,:;06ANKU!U#BJTN-RJ^R+/_#Y $MY&32 %:7D;W L.I-H$ M,U+D^+5B57KJ1H M"@WM5++N)2,V_-0XG!F'$N/>B-W@QG(AM5E)ZYY3BQ?&^6:YWC:/U <[?EUX M8S>.)@GNI,>%1@B.#O75P(Y]!L9QM;$10*EF8YHGO[<7G,%BI3$/M.Y6T,:! MHEF"JMJ:X$W9V$@:"G^$IO-F3FRCP_=X8U])",E;$Z)B24"JV\&;X'L+T D2 M*S&8#X0'Y+T0*W/7F@B/DG,5%($.9$)01Z ]R:O^N30]+WP26F6!MGQU\;SC>8PBDA+N0!>U#Q4'E5/>TYE58J)_D)R$8X(-]'*C> M+V1JR3.&/?K1"BTN7M1!H*+^*TXQ4B79I$-$WA,JB0?H^H91'"]909?L +FP MC]EG'J_X\(Y3G1B_(SJ]/W9ZS['1\7UT?']EQ_>2VU^XTUM- ME*&AODP;HE&?W&5:H/,X1LB?5NKQK@3S@K#>\.,DF[?-64^MJ\^;L3#@#Z^< M"<62 N'YEIV5A=9+MBP(N7(+7IG8O[(A0('IEXP>FW],V\NV7AK<%\?0VF#W MKQRNEP^)A^*F)Y9&)E]-U21M/A(&N WR[I7EE^9#55;3L6DGEXT+8FVFEF+H MRN3^E:7-@GUN;;C-=-,?JO>Y648J;5N#Q.';6]UJ#)H;C0>V$UN 65(;6X\M M=.7!VSOC7AJ,[@69S>NC4BNVB)G5PAA>>?#VI##6^D_INW&/;RD]I;[)&4^/ MK4'R\.T%*;'./B^*S2G(=Y];LTDJ/\JOX)4';W>$6"53[FF:Z"B5U:1L\)-R M$CW3??NOAVWPOQ2V$3\=MO&J[18.C(P< ;X)@48FN?[AX^:1[P%#9];>SL\@ MU.LZ&VGB"EY B)HHJCAF0"$G'05,@#G0%!5"Z MB% Z-'(. WAW*[7L6'C^.I"04K?-A#,_48O?=_^9"$LBO.;ZL%T_._5)(*8@ M8]'@FS7K-O RM_0=^NSWY$!G\Q!& ;^%&H7!&[#O?289-1$(D;>9G>E]HU6&H3J4OHH5:D[&K^5\1VQEC3SZ*GJU PC MIQOX:;(,[9RCB^56"A=.))<"YBI* M3C56 :/OAE9(NJ&3(SY2OUG))IA[C'WV?CL&+.NXKB<)>D=UV(T9%*(17$7# M_"Q7M4OY$RSPIN=X)WG:C2OW(\B-8)!Y#.%Z^"TAJ)^S1;+W34"/VI!"/*SH MZBYKP'!&J0,>D]'??WY$W<%=*?;*V6&0?ZB=)IL!9\@Z2/9B]^U1+2,]&YO: MI5JM!(REH*%PNID\NA,G_+RO;_PO5%H@@T(6'!T0,D]D8O_LFHN'!@9[8.39 MIOM6U_BG=1.\$@2OF?:I]"T'C<_ 8NP5+ @8/X'G(T9&XNLNB?MW#-5(^$F, M:U3G\$VK-E VPKM4&EJHR>N^V71N:_8TV;GWDWW',[%;^>'$LI\J*<%'5 @! M%3C^-I&,*!$"2L1ON8@082 $$HE$1(D04(*_34YQC].X^9K!D5.,>Y)TZ14Y>29& MWS+<>4O0I8*L4A, I@9_F%B,B/NKU213GGAMI&F;D_\9GH4]WM!!%^ 0=_SS M2&S#([:$*(?_/<-4* ;_RC*)?"9G$KBWH>]375::_K9E^3^OZ ML1D__T.6 1B-/G:Z#=?C>AX5^]G3^?A]Q57&'S_Q@(QBWV?P;":^$R7TT9U? MJ+M[T,5.]L:H2\]P&J.282@-LT-.;X2U:OG7^BTF$$^BJ==P/['!VLQ6QN7N MG<(NYK,$+Y9SW,S9Z2/#[_2103UD8HIAQ^@%.^'?37(*X+G>O18R,?Z'&Z@@ M=1.#6;/ZL!5+Z6HKLY!4/B&NX/SX'_^FN(,F,F?;PSY;>/[K0GO9MQ:-1% T M$F<6C=ZZ6Y^M7Z;9:6/:*J9,3AO-'EH7%(V^%&L,%7XR$Z767&],N_QF6V_! M^26@:"0O(1H$ GRZ:'PIZZH9/#3]LK;355I*GZV.SKM3"S9FM;(>T$EBCRV/ M1CU5G*;25>TN.];NGM?"!7526HB5Y=E8WTQGR>0\/E3Z&5$4!@FT7<>SE]NN MKV)OCB3C,AOU,-&O*)\%"*3WEQFP'1?3S*#.)C2SE/[>4(W8_N4,+ M*ZY8T1VA->7Y=F,XYB&(1H>I>28I' B#DC'3'50.A)E2 M\CZE0/@\AK1(* 8[DZ EF0S=HG#61;UY Q=+(#^V56N:V^2 +D_@XDQWX#$N MP$3EJP[LMQ_3W6>[GH+,8#D!:NG)>/X-I>!&;!^\ MI^F%D7,'.@+W'X\IR=R#)O-%DKF25=.''ORG^0$'\%X[U_V"U>9UT M'RWD#%<8=R0V=L?'8T_UYF,U_QO8Y_?IOA [9F957N2GJ5I_EFL\.@8V#6&8DB 7X02Q,G+MAD#QC5D($1D462:>1 M):ZLVH'WH01\ E:R;K2+>B01V>_1Y5;N00_U%Y\IZV0)X23@I/[]^'Y+@;(# ME*%0\0%2+>%4DM=XFN>5I?*4F:IWFV8E/4K8M?+X,'/T^'7AK=]SM 1#:#9 M;T2D0!BI8>$5TL-5)Y1 V< 4F[IE"GZQ#%K#PFW=Y]8;-+PJ,+@W"=>I]$0S6WV!FTH:63 -XTJ1J"QE#S"LV0WL5PFFBZY>HBQ0< M*RXIJ>JD)V&("HJA2K7F3KV=$Y5V2,6.0%DAO]CS\7*,OU(:)V:,8K]5&H=> M>ND".87/J]MR\TK1%I*9BQG:.E&TI0(V;FH@HI,*5@?-PP)A;50LG'5**[FHC5!P=9Q:2DJ#T4B3*\(&.AO.?55TVO4*J$#+0/^ O M[K,4?]O&IZ:XM4 2O,+G:#(R>I_;\.MXN\'W5.@EM106X"3 M9?:QS-"RW7X;47OB[!NFMC'&8[IY2]D$$ZSQ9D#WVJ""P>R'A9NJ4%P)#+WF MS=Y3NK^!HF4B)$*T8Z91UI$V78@!R@]N)*M@.@O2A MT+2=W@G!5;./I9%;WEC([J;ZV)C0 VD0ETF1301L7'M4I?G/7JG2P-!)\;=; M)BJ*]4=%L;BH*%94%.M:BV*M7]0MMWQ:E*=.3LZU.U,Y68L+QXIBE8=R,5?G MJP.VG^:3(BB7QP5E!:\\*/=TEW9ZPT3\J<&"IZ>N4"H7FR!^M'Q6MJ3KBV5V MP++]]83MF<+T.9E;P2L/GEF+ZX[L//=8=C8QZD4V834?AL*Q\EF=N9V=/S>? MZZ*SO%LG7RJ*7!$%$F^Y>V6/RSS'&[;6$/GDUJ@E"HME?CH^5CYKK7;+FM,L M"B*?B$\F:T,5"@WA6/FL>G8\!5(MFQ93HK'M;5EC7#=6QTI=Q?*/B;Z]61:F M_57U1>6WRF#5I<==NU<6S9PMQHWG@5B*R0-MY:R.ECA3\KUXZ67SU.,3VJPYBI>>C='X;B;5Z<]MY%!L; MKOAH3FK-E#X^1LW"R]VF6>9R>H8C1)2OQ"W M2^".Y1]F3XOTRZ2?D%O':'3W\-A?+C.#I:C6,_<#VQIJ\_51&H&E\%P9=[L8C82!U2]V8OTLVZAHRZWX)$]J_56 1K]>M"W^2T7;$J>+ MMKWJL N=7;./CTF!K6!5Z-V.#.\KM\7DCJ!=OS:9AWM)\PA W6;(^M, ?&H M?@ZT9BQ2G@GU2_$M+>J EI@QO%=G%HYDHE)OR!ZCH\3%>D8F&JL.7V%9R/N% MC!T%3I6<:Q$G!+5"R:L"#;J#CCQ2) G;NO15FFN$T[[KR):F/^V5))9ETZ&8 MW"UNYRZHYU7:\2?XL\1>,&V#9HJ['^Q4H6..F:8!UPZT%M&TH;F.;&O_77[? M(]273;I!'DE@1[$Q"G"[(\;AB73'Y-Y-W+(0_"29BD M8-O^H_8+[$%F=Y!?B) 4Z$O5-'3, @;Z;@R/\3#XTF@.N^!Z8U-4[Q&D#,M M5#)90TTD< 5F["M!%>\0*8+5M%Q7J\L^WAIA?LA9BBJ44[G6H<:\_AUX3VL<.?/N L01M>3ZXNPL!H,.EB(H]SO3TD[)/HM M+OQ*_\,-=3)@?1)P,?@MPCWG#O(?KJGG@/MZK]=:P MHTQ11[B#MO>XW0<<* K:ELCK'4#U+Y6_X"$+;H#EMR6Z"2X0Z>5B["R:IDHD M?".4CL=@.RT\4\37M$+J;J^?'9KM>I$H86T_$GC7]8<.2=PFZL&.3KL+A1?:[?DDG1H3Z6.!V-3S,$G:#7H7\H-+_BAV7N!2^#U/#CR75%EUCQB(#PM> M1OW3\,EN%5FO8M],>H%;(3G*.UJ==6=8EE_1#TX(,HR&SI8\'>X5KCUR-!7T M&;NM;/9.!W$7^[4,@$*H3![,T->XIX^NP(6*3_>7::>_%SX^0,V5R'$!UD\* MH"SHKL%?ZBVXI1$ !U*)^Y%(]BX0P45P"17W7T^[G'BMS;R-^2^L*@R(4R'@ M^?M#"BL>*_J*>UL)NE)UM M=1:GV=ML^GN6;B*.ZULVZ7M(PU12*R)*^(C"W:8B80DC7=C;B"YAI$LD+Q%= M(KJ\GR[<+?]-BUY_"&%^,4_U37#\P8MP??7ZSCMAK^HF_U;533?Y+YZY_&Q? M*^EV9/ZO57B[8/G,M[:$SY#WX.0OS@H?(>EG9(4"D'$"SJO<$.F[T.N[=Y6T M?#\WOY+HC'1=B,J._*D G+&2:3^NI@C<0Y5^*D)X(=SSCNF MB=N=TQ@.?#C?- 'NH(T20;PP=G(Z)-/KR<'!WU=0ZR0,.P91%R%;AO\\Q\2P M&RV,92.#,WUOWG:O4Q@L^-RR;([N>M/\G6[7'L99J=':2]L6K$%C=*0T&PV8 MZ$P L*NH<3I\UTYR-!4\DJ/&E58SL)H(O90A/33* M6:TCR.,/UQOV4W:[S([CN>E,[0WC3\^5&#=!H>6I'__&;WB$M4[JC:]G@]8- M/28?0UJ83(P>^/FLP.I;ZL-/MCG>-LW/AZO"8UY](9"%90Y*I'Q$.\ZJL[O^ M8^>ER8+J@DW)=V.^:U\*5?EC.*(@D[JZ-O/+Y$1TJAFAG>KFQ.8"93U!8)5D M+U+Q\VL[+2*=\4Y4%2F-WX%8KVF-A]I#>ETK& ^]U&*LM++#K34T+X6I7M4: MC:%T%X_/!(E-"8FZ45_5%HZ&M$8*];LX+%]U9=XL7']W/[HU\E%=UMK\]+JF MG^;$^O29AT"7^@!L6XEI6W4I)WN+;&$R:"_O<]GDI;#3$=WG<'PYK0A/+U/^ ML;\JI[KF_;:*LK^Q*RK+9R)75*0E3#X%V"""MR1-?GO37K6&OHMC% M,5O(KCKZI4#2$?60KI=&R=$L*T]GE228@72C-\B@U'_L<2F M)9,<>XNA.6=N?G 8LKX*>PE5>[*5J6,T1E MM&P5%P5 :9M>IOW24&7B5I24)R;##5\LF5'VF*I$* M>RB9\7 N.+?0S_/V'ALH>VLY2"_BI%E[!;0EB.$2N&Y=A)T,.)3M2/VA^XEO M%BUTAJZ>2:3L&LH%Q_F (YS12U]#H%# M$'=PP:BDO8.NTRDNL61_.I8R74N4A"<[]5B7UEUA3%+C^/0-%W\MXN"Z^/D0 MU;MOR<-9#4T5/O4.G0FCF:(W2+H5HZ^)M, 9?$G?4PM<,OKHW6J@EH@I]XOA M5A936SO7R\53ZU9R3#+=^.0-^VHNQ]>SW7XAU2U8K?CKVW!?1<>%.-4E_$M( M,55XC*3K!UBOYKN,S/G=PVI3'8O]FI*1[[<#\% 9DRPY[B:9Y+]!GEPH!272 M->=";I&N^4 8]ZJR629JL>U+2;1[,4V_GS]RPJR57Y'D.JALN->4S56XGDAZ MW6%$[O6[HD*I(+YOSLU)U]:G3ST$ZO+CH-D1'7DWR)JK6JN2[:6ZL8XEK8W% M_9@FX?&9FU3FFQ:$BA1(J!3(2:_8IT\]! KD _'6$0T2O\O):R6=F$QG5E)Z M*N?OZF9E1?+T^!2$66]6,8@2]?XX44]0O!9QJD[(B]@KD(=WT) ,IR%)%LU" MLCXR!PFWY>S($Z X&FB,*&^UO30T05?*U!-9UOB[D!VGM7=+ MDZ'J8J3JF(1J>?EQIJ@2UO&B8>\OMD:K?\';;/R\H>OZ13< 29XP&R"9UQ_V M\$''D.GP<=N93AGC(8R]OTU=^ACQ-P]S?OE0$9_['!S5_.)1S\%%P8,>:6WF DGNX=@;O F?/\XA4A>N:R=DRW N=?$Y M,PN9ND@$U45B(*RX8D5WA-:4Y]N-X90W2WSU=Z*8/E%=2)-QKVMFI!+;:)39 M1JDX72ICVNZ*XVX2B3?[77WMH(;]4:._$0NHNB/1V09<60&'G:Q!H(5$9_*/ MHEIS3=K\Q M!!^@%ZNQ-@DO?9@].D0./W7E63 ::]L^KE4'.ZA,\"?7YA*M; M/%E#0<7[CC[TW_^WX]7T5 8ZCC?,GZ[1$E@]NC \UB%C$"-.4VD$7_]3TE;2 MQJ)SS7"WR91K#_WT#!^TPDSFELW^%X,_@-M"\H#B%U'\<9\Z_RLQ$Q.IL/_H-O)'Y01] MAIP/=9/V3]!4HU_]^!?'C2"S(D^"(RQ/;*2@C_>X2- EP2L;XX*22U?6_W*7 M) =+37Z$["__A:Y@_IOA\9U_[Q%ACY@'L1O\E,Q*4FHX MX%.R/$@DTMG!,)M*#8;2B)-YH RSK/R#+(3D*M*AMA2$QUJI)C"*_G#9PZL0KS9JTZ*4\<>:[-<9SB>:RUXY<$SLYG.W7RUUE=B9VY5&[U[ M3NNF4%]4]F!&*;' 5^*SAMA76KFL5OI6W3YF7JOK" EE2^FRU MS!8TE$EZ\/9);JVM1NM'BUT\&1IKEH51IX R%0[>WGT:/JG3+M0%E4'OJ3Q( M3=-Q#D7;'5PY?^EVV\W20&$KA6;=3@9=N3O.08IE,T..A:3GY>0@(:4S@Z&220^2K#R2,IE4)BN#_64!O/6,:J"9_E);Z^U ME-@HK-:)-->OOV3'QZAJ-UKYAU6VUF=5;B&V6P]%D[.$8U3EVI78RSJ6%GH- MJV3KA>&X+6V/4O6%2SZ)W9XYZ.7[L7&]68\]0'@3H.K>5NE&EG7FZ\(=.WD< MB)O,X>^(>N.)X@"Y-_#AYU^QNHO2GZ]&:S=L/,4-1C7(ZU\)W<9?8X'ZC MPKF W3+8B<_$N1L&V8PWV TCC<]N4=(MBT3G$%_!W34-- MO$BHXEZQ>&!BK(CKXP_A(/'Z[/88H-TDO&8#;H%[%.+HP%?9JC52X;6&RN,([?5P\DV_4*TWQ!>)V;K25"@U1F[5VH'KRE\*%O5!.2KVF3[R&1SL/ M;Z<(WJY+ICE0IL7^D]80GJ:S7O8^D]T^+*7JZL>_/)^Z/8P@9F8(Z!OZ+5." MVQ5Q(D+Z:7"QT/;L-9V :&EF,2O5GGA,8MTP,P-7X(=[_T321H0K52?BF.BDWH+Z#MF60TN M81>NX!U<0!1^^QJ]K0"92^R@HT_31K>7ZB4ZG<1X9MZ/()GME8%]M-:^Z4&( MYZL$!2WZ/E50J0* L?$M.7/H!NBI&% 9HLXEU.L,_[6@JE-'<'E1SQ)?9Q@, M-/9E\C9/IZCD9MF8S50;+N@-_--DCC\!]37Q'^%V3O$&ZO,.6#B2YNHZ.L[@ M+1.WOP<":>@ZVBT$O\&B)'55(QH3_'KDV [D:PN*EA4;2A;1=XZ%K0?\IVEL M),W>0!VX09S@.M8GJ.\#?K+$:(1_D$RHD \U#Z*BN4, M7X",QT@?I,#YP;_H<.",)BPPQN2 C2HN4S<$F9.Q)J< M>KC4)=,\N@+AZ9*#%MRG )JV>7CL,S*-V3)#0>*4-9<+C^HL!RW3]-W]4Z_6*(_^!*-=B,3QC1-_2*0' M&39U_^B,"NQT[117B,2ITR0.])NR<6#0C 0& 3\PR+,I,#\@NMQ Y6(A@ 85 MJ(9W)& !KZ\6-"B@OH*Z$%Y%^XIY:AGM=^[V0( "U"?(IX?V2&,4@YO\7 .8 ML\B.Z6_MZ.6!QTAD6X0:W():R=]S2G!3L2:0OK>>'W77;WK)E*J\8=E6UV@, M;3B*QJCH:".XSBZ]FP;'*4_UNUJI9QFK8:]Q-RBL#)T=\JO5A5*> EXV MU8;;COS/04#$Z=T&SP]M,F2&:(.D)+R@MWSX%+B^6X! 79XXT)2 MCOL?TVD9WK1&WK0\!(!QL.3ATAL*9Y'X**J)D E&?@2H6A;>7!'3NG;R""!, ML9I :TFU"?,3,\/[4%#H5 MVM>-;O^>G>1VCK,L0U;Q,P+8GJ &#!4"(!P^S@T808#OL_H#'J4NZ5T=F/P) M,M!%V:=%2/K Y?T)N!*$Q.Q$>F0*2.GQ8KB4IZ5CN M;Z^BXVN,L;V&',EW]_QZ50N&+KGG[>3&B^T(5]_]+?L!@OX%NK]%ZNXZ$QVQ MJKNN/,NJ"W"6[F^9T"4:Y8^U5FF:8"Y!,M$C%7(V0$-> MZ/6290'[7&U60K8FG](T+GS+<*;*VI]42?F3<]#V8RKI<=8@1S+!.Q, [*I! MXJ5P\(5[ 94]D8J>H"NXT1&54P&+'8V\R*>7@T7B24Y,4S5E^+A4N?JZ\2?E MN$^0_*<+].WKC>3-= MS?OR6.Y5Q&S[Y:4]ZV)T567T[?1B";FIOF^9G M!%;A,;"^%,K"8N!5:^VAW(:H]'+ M8_-986,69R5GPPP_:0ND%UWBADN\UK?@FSHN_@A&?0NU08%5I#9^#V6]IC<> M:@_I=:U@//12B['2R@ZWUM"\#*QZ56\\EM6>E)W4E^QB*)2>'HIISN+'I*T< M?Q//G+D_L('<:15Y1#&:]RN4A;TT38DJO/R>4QV4K61B31G')FSCW[I)JH4C_V) A:2FI>,) MB [";52@WR^CB@H=X^+&;E'4?;F[<-U0VNFCZ[=R::).+C4@60ZI;-N5UN): MUAQD$YRJ/=R*+^X!I\#>!;@Q@[33TV*DZI(NH^ 45!/;T)&4X=K! M@4*^0V"O /T*OV($3,MMMS W#6@/0K8=&P9N1$'[&GC\[?;70+GOM"$%'99D M']PTW!PTY=CKT0*'2#P5J(L(NA4:I;0CA+LT*//+0D/"':%1APO;[\@Q!CKN M10%G#!41JO/MM:V!S&\*;! QC-0U4"![:A8X(@WO\772GDW=G$]#4VVY.W\YC[$#,+UF^ M*NM/N:=I"VEJ^Z"%B]MX16)0D713A4+TUK+YA>$)5=]?'?ZX-ORP0NSNJG:< M^5RC%;Z#:0\%U9+A#@!UI'6H#I^WXVTMEWM0>T[\95D>\/'V[U.5\5LF)U2%>EYD.G>BV&7RC5JS41?KWDLN/E7O3YKE-KY^)-ZS[6%&^,XXL^?'K+K_DO[M? MN1-G_)F'9K_RQF9Z8_-U!&WC@+6VV?)!4?O4^M/,SVCR)4FAUJ]I6_9U[O!7&9M?R=1[>3B"G<#=6[KFMB+%1_-1^&E MD -(GWS4XMJIU\79JC"&BQM_=7&/]G!$2WY0M(XYUH+E M-=GQY1/!TO?(:* KC.4@%Q'N:)L=L6=UVR5456;^*C,K+RNSV-,:OC7B.ZT.P.J]HB>D(!>F3S0#VM(F MFF+^A_FHT270I#OIU.>-=1ZCYQM*G60H:Q1 ]9T]@1)O"/1G4/%3[?S5[W%S M^9/-Y)S!?7HBT.93HSHH[U2J<:_>4 M=HZHU_1^'L\MT[0HMTSU5*OXME9U] MKLW[J71RG2) JL=PIYJ**^VZMY*;@<$7U&Y--82^U5NHIYJ*YXNC.3YV58!U M]$*WX4U6>-H,3C45[Y'R4A4$.;&H450!.C_?-9EU> MV6LP''*G6L6KM%$MY=VNSR^D9C:_*M7E('6R57R%K,FYDN2,L<5&H]AYT%-G M.56DCT<.L:K9G^6S4X'8;$HDBR\5UPY$YG@DSZ0-=N;2FM"OR7F#2%;U29N# M!OO12$&H*2-[)GC\O$1TW5Y?;VO% (X\VJ4F1G(ELFLPV*)>*KA*H3,H$>B9 M1[M4USU3F= S$5L'ZS(_U_!\HWRR[3RQH>@&WVP/A;FCUAPZ9\L+IW6*ES8% M4/.[JS&K0V5$W,P&@V%).=F@'J/7UD)+*8Q>2$GC:5'.V K1.L5+V6%I-J_- M*KI0">HV$/,=)DV?Y*4-4YHF\6FN+"R6ZQEG.8-"O7VR07U79[HUF]6! %JE M$9^=3W1)RQ:GCM?JSEJL-WNE:O-^'4$CN#+(*?6!/+ M;+2B*67TSIHBTTU<$^T\AU3/HZ%*V^ETYOQ,YD$2;\FC82%8S.$$3M"^0(+2 MNK*9U 3:[Q!S7V,- J(8?H)0S(A-$>U&:LUW-CPE\57-=/!PZ!&?X((;N'AC MQ>CTJKZH&=BHW&H':.@1HV!"'X?OKR^$Y,+&9V+262FD>DJ<6GA/I==&CQ,: MI7ZMF.E,1L7J2_W.&.2K& Y+J^>$I(@-Z@%::5FZ5EZQE;3 M7+U33)\4$KN>= IV$1L(64^KY\P9&'4P]9209'U:#/+:N,KW#6:L6FU_:K'! M*2&IN3E?$.TQQB_:0C_'&,65.#X)N"#%*NG:9 8P?Y%)&V6SG5QAK6UAF-O]9+7B5/4WB%1B./UNXY[0W=QCH]OC\1Y+KK*$K+X^#(_=K?^,K/>Z?W M+M!?\%&C&?WD'6?=K*?<^%'P9QY>,NWZ7$,CR52M\$[# 8KF)=ZT00_O?_9= MA5$\ L[\O;\("5N"FDJH-3TG.&ARH43QL',VNB#;/1!=(X.PUR9J9(X:A^[N MB&W'&F\[K+\:N&UHZ]N6>=AI?O=J=W,L=OKUNP^[MLOH Y5;?LV9P.U7GK>++#S-),428$0T]GELB'WAOUK M=>N.._#^M"Q?G.X# M] V6_PEZ[\9@]ZCU2?"X2LU79X%T!+I=1:E$S0[P(E::X(WK/ZX[=\C\>6=*L[NNUPEKO,'FF:I,-&G>F>\[VC)/:>HX M #T6Z4N)]'UZ1=^@!0@1M[.]2H>/CPHU,^07\:7870AF& MS)SMASW=^)MA6I,W&+WAS49/U!9&:=?M%0(405Y)Z_AB'/[.-=E#KOF]*Z@' M$NNK-A/[+;GF,V.9F,\':7W12*['I-(?:PRW#;HGGPCBW;IUG]W]D3TJ%.99 M"6N, L)?BAN]5!J*+:G'=8YK/I;Q/Y7*>HI0J>D4>#]S*F+79 M,+\V["G/$J<2;SZO^P1N14(SE\#U7FHLADT$DM[:!@D#2"B!(_F2N&&CLL4H MY2:VQSZ?E^7"6LF70*YX([Z?'QN:2>ISC ]$&FDIJ2>"N9:6\N6D^<[>E4OK'U]" MG*^I;%Q)GDTA3ZV7=3 60*:J4V5QDI<$5$P ZB/44XHXKN+V8%Z5DBE;W+O6*O[>E?NO?I(8.4559\4S4^T(?%#M=K=H'J/H5BERAS]EH,5Y4ZX7GBZHKHZXTOU M M)#8 ?T=S>B7W))1[Q?)1(8THX-X%0W3OOG"[E>Y/BK&B"ZDB**\(RP:"E&K )U?U5'%7:B_X,P31;VKPL1M(7^E_-JIKI!-Q[*A M4*U#38I?^)H]OV?SN;^"B6EA<5^UKL\ 6XQZ+!?ZPKMH6\"(6Z(4Z1$%M MV_GAX8_CV2YUM1N];;A0W 9R?7W5I,+C!O _O8#*K%',_JM6XWMQ>QFS:S,. M?-9)KA65Y+-X&1L7>PT^7_JSL(^?3*K@6*Y[XA)X49NS6IF4*QA\W=SWI9PV M+:C;@FTX\<2DSA5WBI$B1HJ?NI>^*E(:>('D@# 0 MXK $B[O_@P*6P+#"/8-\X%Y(A?J**'A_T^AR&M*7 +D_4X?VH@6'[7_,_9"E ML.C1#O4,6B%);E6D!##7X2S63H5;WQ3UN&626=AEM2!T\$6U5K87?1E[J2U' M4^>R)6,8^(HP\-[MV@/!P!_J.A_'@;RE\XU)V$.X2DV55I,[3)J@#6.6$Y9QMDQ[@I M0O8K&-//5SI9@5:#^ICC12);:.VKV:52UZK"&S%)B0'C*OK45P6,/U2QSB#& MAJ[4)VQFX6"@S:SLY<3NS#(WM:T$HK!9>^*8U.=I:ECMC<;JLJ#N*^.E+EH9 M[_X.I;!BS]0RE(0VMQUK"<(">;&U^+6MQ=AI]$$D>Q&?TH'T[*"LH,SZ)5)= MR]@<,^H5DDIM6L.;0IF.C_C2PFQ.!(WU*T0U-6GJ*KLW+(JPG++R9[G4ORCYH[DFTD-"ZNH=AF*P3F%= MQ;K_42SE^R.%$G'4%4:6X[D6<[ZH!Y,[!2*;;S8*715Q_81A<6V]&#-BO]"-=*J/@89?T//=2DE?"OYJ-;,S]X!V\[>*BD-3: MJ?J8,BA3W!71(P@H[^<Y MB=8)!6U;KGJGV&=])UOOV86>WLD.6X/T>I.75C>]M2B-"^U-?8 +6$'QY\:B M5S1;557$,63)4]@30<:6? P2LR^:TDOTQR5U MIL@L-W*VS[W++-W9+7#OY4<"7B^B@V67.W!]U3ED7W@BT]9F/#_HZ@6ODY5& M:6[IE[KW\ M2$#/932[L]B35@;F%"/MI- IV0M)MN>8W[WI?6X=KZR50:MJ"EI!+:7J9*O$ M9#B$/6%X+W76"OQ,?J_M*_9]'D]=Z<36[6>T;N.PE*@U9OQ%!$IC5,:>^LQ* MI[-^3?47'_Z%*H4TM^"J-N$'L:466VI?U$ETM!^)OSZ;-G,@YKD#*8<_&P#] #&3.Q#V MG^+I"2@MUO5%O:!J:ZS!+;-DNY=NM3L02L/2Q!3S1-/'KO5_QV@2H\D7]?O< M"DVNJ6]=$4[\QIBJUF:C@4ZWLVFLLEAY&4=%< (U,XI^8D]4.O_WH[IRPG;. ML8WXV\!X[X[VYS;EDLT>[KW.2!B8]W &U<$I#%N4!VI9\S:*OFX6"QTQK7;9 M42#B83'B%/V4HL^E1<92'DOY23WGWNN,A)3?Q8UT6LSU40_K5B?\3%^/A_P, MSY7MC=)"8HY4E?03=<+R>:.I_,>3( 7_V0^K^W.X\_+%&%,SD[O&L) RKSCU MK;S^^";ZXP>E]^)L-?-=3YNLMQ]I)GRQ]QU/_Y@X3NQD;/_#44YV8BYIIK%. M:*9L^ J<1RY?@C.GTL3?N_"GK?F!U*QL[W]=WS[> >89,O'?AF:"_>Z%;6X] MR]YNSFOIA1]OC1J&0IOCV_^\CDA/2%Y"ANNR(&D3+A1Q-^%-X6>H,P5B;T<; M^QZ4U81G)1RP!*8/GA/O)VO!L5#Q=M&GWO1UCPO+00]V/ANDV%*3 1*B\#6HZXEDKA$OX,S?+ASB 4@F M)>&[VP8<:%7H62^^1* \'QA\D>"8W#D_9P*L;&#"U022F_A_%X:PG.^$+Q%Q M<:>J=*T#O05;U?71I+5N"I5&DAR8,S$M-E\#6NJ7 .UPI6]LLA<\H[=X5I<< M1^RL4[3KLMQ(+] B52[/2\6\&7S[!WL^+IN>@+0S]CMX[8VB#C>*$KD SU=, MGVOI!-%NC'7"*1!5[H8;I:\S7*%LMFQ!JOEEW[-7Y5RE]>T?_/G8.GW9J)T0 M;<7!FSH ).9PS5,WL96A&NKGFR#QIP3BAG!?T6J?H*B[-I!1AVYC_7Q!.=K^ MBA[T/>R:(V\_.>RL^$:W.9"B@F4I 5Q9.,^2"2FL:D@;V0:&/,%I>/<1^1-S M[4X1A!F&%81 B\[OK);LZ+M]PDYKEB'U)=L%W_<_'$X* M!4CO)C275LF0=N:+$ITTP,0[U*J3SG;N\).]&0[5@V_([[1_ZUYOV*[HP[XH M]NQEL*(M3SS?@L^<0,[>;\G^]R2R(+Z/'2#IR0!NPM^V!;4/2/WO#C D!"9O MGKDS+,(7[X=*8]@].H!OO_=Q+O@/7-K+OW]H9M)G&\/'=(GI$M/E ME5>29F+"1(\P1"PPD:1+#&01I4L,9%2>KM3<==PS=D9/$[Y_=G_.JEA]X3Y'E ;I[:ULW#_W#S;)U M)/ZT=XZ._RB^-):+S[7F%[D@WI.+GZZ?>#110HW6=%85C:ZMBF%\.TX]L5=JF!I%)HYE M.9;E"\LR*2I!>M+A+:#S_5G/X.2@E>DP?]+$XHPLT]5"R95J8*C/=6O>P>L NW,KVW6<;!]UTH>>]SVUOQFB_F\WP($/KS0*S?@Z1]< 9\ M/]S29JCXGX"I['29%:K>RDS^QU1R+^!<6 M\3"HE/C[P0S_O.4 .-6$[#L.,.7U-L;,V 6?*BB8[4)%>R*I*D?(8KBWDRQB MV_13^^/>^_1%58/N#US@3*7I._)4<@$GRY X*#^ >\&*4P5-;%IN56U+IG1Z M-&P%EK9T5ZXJIL+FG;%_(D:;&&VBF*K_YWD.MP ;N#GP32=09R47,HZ8'/$8 MO6R-.S@W*)>L%D0=^ML_S#'L_%&>_KU]*0-X[K_56 MKMY[KS,2CM\K9NF?\?NJ%1$TR&86YRO4I,]F2^0@7P]$&JE'+/U$4^^LM9DD=8K>8.? MLU9WT-9:4*;I#]S+/D#V/9HUHH5F^M)N=0^F] +][Z9-,X\L_;;%+>#Q[YZ5E(&AO$V-?Z5"G?92.6?1AP1U%[D7Y@> MIX[#C]&___4JUOK%-$&Y@I;S?2_!![NWVQ@B%&85)+>AW-($OOZ[9 32VMVM M-8T_IUY0\/L+"J =3J2?,?:_$^&/$$3(5+@I1S1#>8@'^_8J%7'WM=?9B.%C MWXTHWU$3Y:9'8;4FXLTG\4%)W._OCP]OR>+M(?!VJ"W])9) M,!:26;ZP(/G%VIZVH#E)?=MNP,M(*Y5=6/6FT>=I?Z5.\(U6*\EH)$Z^':I7 MR*E5[K&:GIPL4G*_7>6*02 2(O%V9#N3 MZF+:*O>I!K80.MPZIV4:LP9Z)HZ]';HLR7JS@?4&0J%6%66L)^'",!QZ--/N M0F^D'-X&@D:N-FFV,FN7& X-9=\.K=JX,2GT.F-,$AK^4&8RQ0+'P=/K:%%# M#J]03EWGA8*?%%O58)679FCDT:)R:3'%%L9"6R\($WM:*Z6&%HU&,F]'UFM* M*E_+3@EAK6B@)9;24]YOP9''RV_J!:*8V@0-/IF:-C*MR:37+Z,HA>/E3U=M M@DMWVII>D:IEOL%,2*L5#J7?#IUL&K7"A,'+ E@!2K<[!3!?HZD>[Y0]LEO= M[K2AZ\2\2_?\)#ZHVRV1.MZI]6B2S,LIHY-%.X9-ZU=?Q M:A/3\BQ3;J7)UK" [C2/=@JJ'NMVSV@H.H&#WLHK!IRFHF<>[U0]TRL[)$@Q M<*>*,S#IS$8IGD-#CW8*;/+ K8 A@]$:7L677#I+X>'0HYWJ:=56JK?N6!A- M6=R0*3;('!$./=XIJ]<-,!OGA6S?RQ=D;KRBLH&8$H^FVM/7&&E;[9J0G:X< MT\R)I4T&J2M'(YF>#(I4I945"&JR"K"*W1T3*AQYM/N",-Q@W>ZXKR?K"JYO M!C--IS@X\FCW5;MN^_4JEQ06ZV5VT-B=Y^O/LY:E;@:"&?%0III[$<*R796X9#CW:?(C =U!JUMMYH9DO6I%(R MAU,TT^/=MU0P;O-3 >,!FS3IBD"LE5$X]&CW_0+?KZ8>'F;:4B9+UA.E.;-OD9K\*11WM:+QL%FRAI0[Y1)35,K7*YA8LZ MQ1\]<]#JD([>TP=ZIXI;[?*XG,+AV],G\,2DQQU&\ZH\:%=R'$=97HC(P1;M!6V$;JB%>S%NF83'%EZ95 '"W)W&;:YP,T])A9 MC7FOZEDLW=.)TB!C&ZY?3PW#QQYS*TZTC>&PU1?U/N7K>4GU76L9SO:87[Q2M.8"S.VCT[@(^J.<2)9 M*\N.)F13LML86_E)?JZ>.H#[=8LPS2DN"$2?ZG$EJ5_L!FADZDBRFVZ!LV6M MKF5U/MM616-,G(E,.3IV4%4JM+9J][D)H M9.D*K[C&,N>A0^7H[=,.N6H5\72>[PPHCV4M>^5"":2.W][6:CFR-B)P?5ZM M#D;UUL;BQ]PI3!7XE>X7-K; 2RXYP\3TBIXJ"'V/YCF@NTO'SK:*>G_ 2Z-: M6^[H*33R:)ZU05K--1I8'EL7Q\7JPFY.\1KDD^.WEQW"'I:]8@OSZ]8$[J=0 MZ_LGJ;E4]'K!U<%:3[+&,W-1G]J:CA?\.=>BVL";*FT3E%S(%8J_L2F4T+?L7L+'%_6.A1W:N=7C56^ M8PR+'9T 9E_N+<0-V5)/[?RJ LJM/-79Z)5UBQ\[X\*TZYT\S6PVP\T\'P,Z M&'<\?)QM.B7W)$:G1[-!X*9RMCZO%-=M;^Y@O-,ZA;R%E5F?],LE3%CT\@-L M66NWE@9W@+QO3.-]F9O11MW4,IF>)OCD;%D2";(]R@0B&DIL'1OP&T#AO/=& MD]FC7=4VN, Y*M ,E/#J0D*Q:%LC ]E..YNI M V3? 7W-!8EJ-9OX"SD>".SO'Q^''^!__SMAF>^_?5?3BMF6M'I.= !(U"UO M5P,+IYX2N^?OJQ0E#LH4[=X4%F*2=I&LDI'0S*W_",T[-([0>JQP2>IA32KM M1TVJ;26^7>4_!25A3AQK#K^BN8?;\!RYXH:EMVL(*T(_A?7]-!>M?'M397_>5VJT$@_KCQ%SY=JK3'E*T+',YUEBTI-S6Q<>>JFE:<(_)E* MQ74.SG+!70I08,\Q62)(%AS*2URP)8*$.5L!/2;*O:H;8>F8+M&C"_V"9(DQ+()$B16Q:-(E5L2B29>8*!$D2@QB MT:1+#&+1I$M,E @2);8FHTF7V)J,)%EB#(L@46)%+)ITB16Q*/4L>#>TXA%S M0-\)6[@'W0^+3-\F#_:]&(&[5-Z^_[Y$J4GYG^[ 2_WV]._6;R?Q9R+]4/7; M:R>Z6URRLG^$V"?FEC_FEAR0P7P,G&.&^;,F /&Q>_T#$B_D@/OOBLR\^^^*S+\:\7SC[8E]'[.MX3%]''.]QCU?I45LI+C MK.$$8V:X1G/H3X<,G"S[6^DV@.CXWZ.E7P@G'XA)N#GJ_A7S MR!6TJ\?BDD>+5XH(K\1X$O-(S",QC\1G3GSFQ'AR.3SYO?OTB+6VYE"9<@>< M*&O^_5)6?\16'"%'P.TWYC/F]<7\UL%R5N.M\*I[I=YI9UZ29Y60-R77#I^R_LV>>]B'O[)Y+%XE^ MEO:Z,WY1[@NLZ*>2JZ[Z+;'M>/M_WS0HH2Z0ORN^LP:2LV_$:BL3]_OA)>DV MT:XQ>3NI;=O5NN0XXF*ZP5B]V7#U3AN?%V7&SU*"^NT?_'__\VK;_DDD$Q?= M2&EU@XV<<, +5"'P>-_J5>>XMKYY//)[98:OO^;_=[$S_88'>-@H^'!9Y#/]=F%[L$5R%%'HY,0%D5F6G$E1T+-%TZOU5%9JM%K?7D$!YXJ-R8'L M7TNV#:V5">;NC,+\+-VJL S'4E,(D@J0M;EDN/_W+4F^DO3OIC]/*I:7W(UX MV[_ZS 3#@B3?$BXD-?P"^6W?@7Y5)=.JY$]*?*$QU'!EDUJG5H%(BZEO_Y#I M)PK#]L*_W]U8^G_;.O_LTG_K(B5'PG^TJL1?L>R_*_L'>6:'*L$)-%!+G%O1 MC 4E:#7%Q#*-)C'M(C1(?_LG_82EC\'@WS$:Q+I K M\*CRH ^^$[#.=6:M7 M+S8(@?"+(E6=Y=E!586RC^-0%<">2")6!6+A_X+"CQ,[Z:>N)OUN4RKG\+6( M"]FJ$DSJ*B6-V-9M+0%#9_!!H*Y]#!3E 1'0JY[0Y9#\4]_^89\HEHW%/[8$ MOIHE\&#"_W%3@"7MX<9<3>K\@FJ[OI]-FP49F0(X\^T?YBE-T[$M$*L#L3KP MV1'AM#$PG@&Q;)X-L_U-'%W^'Q>,@&M@/" M#HL(=9.)Q/YXC.1UZWL;7U^UEOFZW2D+V=9P6.^2O6QQ=)V[Z]*(MEI!A[%U M&AB<*I5K+;L,-YZ]SHUK9 3SOLI6Q+;A8O ;A8"KS^ZC?0\2 MN)JK)V*2%"LDL4(20\JO^HJ'$]D31K*7@O"![HX)K"G-,7$ M^D@,'S%\W,7/_!Y^D/7)D!A6FRFA,NTU<&#(\WX_N*U!XXN-A0[4)E#B883=ASK#:? M%[ @1!0&ZB34$XWAL4T3*R6Q4A*#RFFC1O",?J6=S8RQ!CL2S$QK4V>;"$#0 M!3C[Q-*IBU^ W_.VN^M($ W@EB4@6R0\]!LIP'$J\$?DN?O",)RIA+_4 M(2_MI;D@MJSE:MK',:)CSRG6;;-+YCHYK%2ZU=Y0KL)C@!#'UC#(#_Q- (_\ M3Y,,?'XKV2Q'5,FJD\(::I%)3KW*K-1L764KU=089]==MB/0^61*J2QG$IAQ MW_[!L3@=^!'"_BZL$7T)]>GR]#+)#V9EQU;EEIA&-\SI)YQ-QZD #Y$*<%E'RU?PJCP: GS=(IQ2;$_55-'$ M.GZO19&!W]/*2"U -[WT$YLF8KT@AH O"@$7HAL7T0*P>Q&T@5!GRHR@ M*:ZC9[E1+>"H4@!PY"- MZ84(BDX28$2M2U,4X3CM.$+W0?N&6IO8@/ MRY5FKST.@*#A1*[=[#HBD[M.4O"X7F;%17&]QA8>L#,249?+5 O:^9_F*O7U MU@EV*6G@*[F/9?/3YC33XU6N>IVK4Y <4/EYJ[X6.OI:9'2;$^0@N-[5:60D MZ;Y*4<2V(0XYBY!K]346+/!AIYAI5[L" ;@\.6"D3:E_XRQ>TW&;?9&3^WPR M$)F:P+#-@L:)++IC)9[PJQ5>CIB4Q"'O5_"U1 PK/M?E[/V@XN/>E@(I P6; M)<="0REFU?FXNIGX 02/\#(VS1Y?Q,31[;&J$:L:CXT?IYTRQ&RHK5>5S4CP MVR358-*X5G1;$"NV^;G7NJV)F(C$2!$C1>3\N:^A8E,I%"EA-2KKV62O5\PX M6-)R;YR*:RZU[BK?IGJ"U!#;0@_#R&$;627HF.5FDXQ9)=L;X'3]'$1^=@PB=6-6-UX< 0Y;9GPVM+FUIO1 M0DB.@X9#+K/JI(XL$W1=3)#'*?J?.<6V;IFR-;>!IX5\(:D. '-$CCC']O8Y MMK_8(OJWKS?_1%I?& 9P+[RR[Q8U;M?GCKTB^?4<3U.=M$B[WL4S:E%MK[57 MDE?5#:$75BFVB%DLS/G M);/(%ZE5/C\7DKC(ED"3T]:S&]=L6?=FTFP BB.]DRMD?=,7QNM.>#JBJ[M8 MW8[5[5C=CO'C5_3M61,$U_>'(WE:2QT99R2EBPN:G87I8S;.K&E7W%PI#+T-6 MFG,!&[5$'$<7-FSJB<&/P[=BA+AN].?=Y>3:"/&SR-"[+SP*IN=]\.'C)B+3 MQ>H3?B, (6L2@3GC[6IU%2)&^ML_)/-$TG$F6JQ4Q$K%%U J3H=XYLQ M'!MTS!O?7$T4JZ#WQM6ID&UOU *G6:!:#$*,H+[]0Z6?:/Q<*'B,$;'=$=L= M#X$0'S<\=$WK.S*G=3%0K4TTM/T) M[87>"2DD>"*0W#\H.HFMZOIHTEHWA4HC20[,F9@6F^J[Z5-[3N1VDSS#D?W= M@KGM>@473'RCJDW 097(#LADQ+(V]O1%:NGES&I%)L;!MW_89_RHQ"::A@L7 MG[ FB9KDR-,$B3\ET&*>$VB#7^TG6-G =$'" >%)FO"L4SL('/0S7+-A6(&; M^$LS$][4\ETH^.Z_OX?\<_$-_K@B<+ >?KN<+F*%+IQ QK!D?2?E8U$P\_G* ML- A,)^M3(N3Y2H7$/!5 .*!#5_F.3ZXW/%R98$-T6;_A-V1(D,"2;8+ON]_ M.)P42BW=36@NK9(AB.0DG>W[DQS#_AO-W'/V;]T]#=^N MZ&,!#C3S3)\-VU&TY8GG6_"9$\A\^RW9_YY$!^[WL0,D/1G 3?C;MMPP:?9[ MR-&07]X\#Y7&KF7X'GBST!NK8P??^S@7_ 7?Z\52Q42Y#U'P MYS09TR6"=(&$.=M:(2;,G5#LF3U;WB"FR]V C(KI$D&Z0,*/Z"+\Q N&=A;Z\/^^I;[]YN))[)ED(A7G_I'(X/&KEVY=-G"IAA(Z M<1P $C7XAZF;X$T%*%LWQ#8S@,2?]BD"X]^OT13+R;TR.X[_/2T0Q.\*!$X^ M,_A#"01R<[WF]JNIMP_%!8_&!-0E("]B%XJ'SE?D<'YQRGM GIJ68:EKY"Z6 M#1^= YH)6T Y; ]($;7[1>ZJ(5N8HBM@V7N$?=^5J^7CW/#]8++*%4 M80"?[H5YPE5+#K_U*I\X"Z6N,>E(QDL#R &;HKLXT1=U.DLG*Q5:2\W&O]-K MX*A08&.RO_1Z>U/3?<&$$U>PGE5=3@+)I&3&3N@AQ4Y+;A4LAQ]T3+*" '=8@P;;@NNE4=3X<6C79[8Z?ZIO'=_:_V4[ MP$5:*UP;L"7($B&JHK[=O+D2"7U"O-JK7" MLC3F^@'$%:C"$:ESE00>PHL6UM=Y'9AY5K>+76;7=9G=/4+_?CZUNR\]8DC\ MP6CE:R+IZ92%4LGM+M:$+@DT;VG=FD"368H34T@5PY^P%!U[S&[O,;N[]-S/ MI7;WI4<,.-ZH<%R YRNFS[5T@F@WQCKA%(CJ[Y17^&/@J-I3JNMT/Z(#%I8Q;5J)N4XL_Z(B_-T;IFGDTX]XW'J000C=N,\ MG0@2!7^FXW20*-(%?\:9F#!7(\PO>M_>/51NL GG@O2&0')0R#*<42('Y-!Y M>C9L.QV*+T0:AO0/D>> MH&%8H^2X?4MZT%EER$Y9H-5LON[UTAI(!2(1!E\^X>PY9_+GTP$@9>C/<89' M$:X>)>S@O&$0H]'ET:@.Y]4-@+$$V^S $T"D=I1-R''7\7 M!9Y^PMCC$N&/IW4QL7;UN-K5I1$L5K'N#&I(H^H&U@DLLY/#R9RJ5$4LNVDO M4QRY-MNIUC98DGEBR0N&-45#J4K'2E6L5,5*U1WP!Y5<.(% ]7'!T<6NT.8; M9F$]SO>3DE0/MC%"S!--7C W)K+:%!MK4X^K3=VE>6.L=D4$]O*6?\J9-6BV M;)>:$F.=S@\G [Q-,TZ;$VF$>JDGEGHTO8O$PDP^;PH<($T\X,1JV&_#VQ=) MN<&C55SEH? L#-#<@IEQ LP0?LEOFE9P2&K/(!H^[MM@S8VR^B+3U^'W.@$8 M2)H M?1M2T;4R^YAAH)P 12P_!F9#&ZG"0K3Z)9Z^]9H%Q*/O%0MDA M(*,6&Z:5>+4FU!4CJ:V2VR5\+X;_$9>I03#PF2PM)">C52_T;T5S;4-: M?P\E;L=0+XCZ1EIPYIFUWT:S'SSVU;.2,C",O\\I-)<-L/QIY!A![4^F%^' M4\=1D^C?_WH5(OIRX*"T ,OYOC]5#G9OMS%$>,"H(+F-0 UMO>^2$4AK=Z^\ M[7KTA2?6]Y>3">UP(OV,L?^="'_$L6Q*0WY6^ M,'\%)>MDMTD:/^10.@R8/2T2NRT)=S:)'QX1NYW]\>%KDAQM]?:/D/WEO]"( MQ/] 847?_/7Y#WA\*S&X*VX]^\L(]H:3P1!;3$XRFQRPN,@H. M1 KRMJ)&=EU%Q.QQ8];% GLMV:..;@R-3;D0U,[G:'#1WGY]XX6YPM"Q4;&DO$ M\3,W725(%\V.BRU:+2?;J3I=WD-13T?/Y"H;HU6:&0#K:Z BMRJE4=]0H4YT MM"*--"=6T;/J@B_RXMH"@"V/40##T=N;T\*D8P_D,;]>%2NV+64&:AX]\^CM M6F4\T(N"W1:D4:\N9$9C'[M5*9;+9$^GCD;*$OU\K03_.5U#J>Q4MSCUV("KLJ86CDT2[)XX;8 M& [9A@!RD_9FSI0S1 MI>:]W2:0G,CN>T!3\@25$*LV28EIB:E$+'@% M/KO(8),6JZ53Y&GNZV$^E9[.FWK%U3K)GN5@I>5)[L,<.U\QE5X-ZQ=7?EH1 M*G8#["Z\W\@344IA2EVVL475]4E5&64;6NL4G_**P5?,/@'T^6#9\&V12U9G MW"D^'0GZ5.1-J8,U1*;1+ M"[TBIR#8\'IA-+3]MJI/NPWD>#G:I3R/MXR1HSJ\MJAA4F;JY3(&=XKW*V;3 MU-7,!N,+=J^"YWNMO+$,1/9XI%YL90EJT"SJA4YWU2S2!4P8<'#D,9(QE3LDM9M-UIPY-$\G5&9MH,IFQ.(H#W(L&QQ1)J0Y['CUSL3U6IP M3*/)9^MDIV5JD"?S M4TRO# H83:2HWF+;:O&-1(]32EJ>$(PXGF!ID<()"O[$ID4\1<#31 '$&#_B M*Z8DZKE6=U+&YJQ #G.--0;RZ)0XFO%FF#$PK)2<8(1%YW-\AG*IY,F31]!% MHZ,O9K:>7,@EL[YLME2C!>7TZ)G>"J3L>K-)\7U[S&4[8R55M-53LL_*4Q6G ML7H6ZTP:U+I664VU 7=*HN?MDFO)G65'+^!FO3?MN+.E=5+Z1LU4L:F7Y((@ M-PWIZ0H"[5QDJ=SY+0TQ=LEASJ)_6MO,<\7TT9?)U(RP(U5 M)U\IG)0IIL<7^VS&5[!&OZF7B65JD>H'I_A_/@\8KVOK64'K=9Q9E63I^O(0 M^]^8%_NLX-%&W=0RF9XF^.1L61()LCW*!"(:2FX=%O ;0.&\]T93%U,N#]1$ MS8-&@?Q*30P31-[HGP>F!VF."^U',06],0DGO/,B6>9NTL?IY;UJR1A+GK'&%IU% M,LARFT9*;L7IY;=,+V>0QS).S#S+!7%Z>4R4_:U,*J9+%.F"/U-QD8P($B:6 ME@@2!:)8+"Q1I$N,8E$JDO&N:OR(<2>?.-[PXT4Q]A4PV+,=5R-7X:+V;O?& MAR#[TW39;Y4S[X4$6<&.PBS_6W*_7#/E:IGTLV\OPR+!"M2/.[M_'< M 5[$ HWKP$MHYA*X'@J(U_$IZ:QLD#""Y\%5_D7'=ITM%6:>BMPT7 M"J*F[I,\\*@QTB^W7$@W ;=B*.FJIT^=*2I5C=G_.S:2E?:>::NY(K./U$G:VY$L/ 'SO$(K8- M,0S\,0S@Q$O9_^F0*$W[J]98J"A>7L5R;- Q?Z=?R/5QP/'9MBIE?<#/N4JN MD7;75'J]:Z.)DT\$<<$B4#[GF][SG#P1L5]1O]N+8?A%"B%9>!GZ&?N:\C&0@..M, ?!RD@>V.6+[ M9%J4*Y:UX/?#S%H$@ T3_*36Y<:"@FOJ.+?# K6=2]76!)/A-6E-6>O5)#T'N[Z3Z259B^E!DI#IV$\6V8:3UF)T$]C5OFO5=N.6[C*_W@"K%YL'<8N9S M8:XJ/<9A#84"-4\&V'"SUA#/GROK' '$-K\R] M)20&B/L#Q#6UHU]%B%9E055XM>SJ=!IGG&$RF4SW$4+0""%([()MU"+@EMD6 MA[9^4JXDMN1^6Q.Z=^'C6\4IWGN=D<"O*RHX)POSG I!-.WD+.W0/E:P2I0V M'&:E?F97TIDDG]C83W-)->;>7!]+]X-H)Q\5[W0 EJPD]E)"G_>636GL3\U" XK)G[C+-@_FX!W(]4IWDK;:YUS-PR5J/OVG\,__-$:WD!( M.#TX_3,@DCZ"A?#6[S4RO<&-6U>![P"0J%L>2!!/B?TQH5UZ BI:$@=0_'_TYP^[R4'V&PL01]70DBHR9!W2D(V58RUXFII"3, MC^20H\XD&OQC+E^"?$ZEB;\3[MKUP#SL,9+M_7__PAGJQV>A3OFNM K2SPSJ0N4>J799_9K M5A<[$S)IWZ,HXC/^14ON1HP0^#-YM@)83(C;53XDSM;@BBD18]/7(@3^3,>$ MB 0A\&'O9N5:MUBW"?G,Y_5IQU M"W=W#7.&SVPZP$7ABTO)\,/NPJ%O^J \V45"&D-&OF\F]4D"WR$:"GGC[DWT M"P4\(7=6--/C/V_TXDO)15$ P;[&*OG$I*^3LG$O&;^[1-,16/>E0ACO#$8KL@*^9!N50R?;DLUL>OU^>S\.3.[I\CCC[ MKT]S^?$5AOUW[EO>EG9_1TU2Z/BKI_F9=LYE.72V3ZK:^)HX]8=@%*Y3? MPROPVPI5'\E _,RV6E05H?<* MUMVU]LW58S_NOM;[H^!=^_*>P#\SU\[QWJ;I8'Y)-4&I/FDD,]RV@">!/S'T MN5:;GP\7[HX"/_'AW%TR;A@OUWA\%[MN6]P0,-.J-M3 2LS-AS0!-4P9B M[Z5*)P[UH-0%RW3>(Y+_7*QN&]B6@VHJ2.[W3Q6;'5$EY]$Q_+U,[5MNJG8";,MJ MNV$-HFT9Z=!D$:8S1]T1.9MI+T>YC/(7S89;1>7G6ZMWGP M-<(R3E23B6,KXMB*1]"%3L!8J4UV\LD"GQ,*C##JC_H#K=47W@ R$Z=="98DJ'HNL\I"V6F(ASX<'3%OGW#KHCL=G#=GT,2R!?C MTA_=Q@X;DIV2YQ_?1'_\H'1?G+_V'55V\T1-+$+F"G_8-:NH29[O:)X&W)?R M96["EM9;_0I*#G!.]-Z0PM$U5+,T0>)/"72H/"4"X #TIVW_CQ---^ B7U'F M%7/F?$="I!5Q<7=*=:V#(PM;U?71I+5N"I5&DAR8,S$M-M4_K1:S6_ZZBW[I MPJED#$O6=YPY%D41RV9!EE=TP%$TI?*37(\-OB4 Y&$;OM9S?' Y%+PR?T6R M;0ES@;8E:>*9.ML9]''K;[_3H_3@>Q_GD[A5P*/3!7].?]&N)A&G"_F<.ENZ M.B;,+?L*O'NNW& 3S@7F#H'D)'@3S2CQH9+B$;\9.'>5^(M;<\NJVZEG"H^4 M+_U/-X^;HVZ6?U2>>2GCQLW&(TN M]NE[AQ%>J6_]]L".9L#1]3O51ZB23 MULL,]6H7RV# *DYG:[.!G.+<:T]K8P/ ,)DU+H&X$ MN7HN'XA4&.KXQ!#G4CT^I0:6CC6P$P@6F7C,*,%9=%Q*,;;]!-OREN_\#-K, M.C'/+-UE2F^LU"$]GJ8R]1RWK?^;>GC];1NQ.?$]WP%'(00O(0:/JN'%3K98 M%8SA\@@N3Z"DJE1'A2QNVSS8E+U*FJOF5CUN6U\43SVETOA#:8#;;DVO&T=* M"@K5FH?9@=+G2?V+F.!'7I&\G,XN%N>EI J?;J6!751 :O2QSP68WT=0.'[MS;B21,8+! M\/>[G[W[TF-M\=V.&HODT,0(JIOF%]C:8(M69=U8M<3TA_KGG$@+.(AT^WW2 M'41F[[GGX),? =4'T=SX,\Z"^8GHN]!>"\,BR*P+>?[GBL/HOZ.'^=9 M]G?LF09[Y"=2S]A>2T"[!%YX+"'YGI7 $AAZ[V&8W"_$@/^9S)_8NW#Z2#+0 M')*&M+9\[_M$6P'E5%+#P=[M5K@3S] M*'V$(Z&F_QK=W@#-40#D[TYW^RMZ$)P5E&#C[\.HK]U'W_[)2H;L0UX"2L)W M47R4-X4G,OP]HDNSP7?_C&M(Y1-2/O'AH27PP/3 M\#\)2/ C-?0GN4ZH_N ^YG;_,?6<@)R4R%IS^+1UV(J6^1M^VU0M)$V.YNH) MN 1)!:&I[WI(MM1UN(=O.BHE=D6"W(0-',00X0. "L43C5UJ( BG!:D-&<<[ M;,D4:M3N\_8DA(1#_*B9OK0['P_ _N# D>&Z':1.3?^&1HP-P?=[*+!OT)K$ MWIQLS#-K>S\_QUX]*RD#PW@+G:],E0H4>ODM&(*W=O5F&/Z?H'V?7?FYHAQ/I9XS][T3X M(U0XR-1__SBF#Z:#D/>'.K&;PO:C M=U3,-W"P3W,<;=1-+9/I:8)/SI8ED2#;HTP@HJ'4MU,H(H7?%%-,6DDK%"[* MC )$BF)D,2V1I,A**053<(P=T_*W[19+>Z5^J"E<(U-RQOI\,Z65G.AE"G@+ MI7R^'5FNS5NE,9'OZ1J>6?I2F:MVVH%('(_T;6J2<.W.U[)X;I$ (Y\/4]QS+ R-I%Q,4WAE$C1;$J4)DQ*'),3 M1I%H@F(G1U1MY8LX-B.-!M;1AIEYP^OGD\/@%%5[I72]5V^S6=WOI1=%LE1P MJ8X*1Q[MEE%4G-ILB<\%HI.=8\M>O=^KM4[1?UZ@:6M6X"6]D4MEJ]-4FG-& MP2GZ=YGD,MDOZ%.LP=CVI)5.)64^.$5_WW=F&S?OMH3&9I#L+LU9M5E53]$* M)\L4L3X=8/W::(5+H[8OE-13-,NQO;14IV=K8;ZNC(QQ>H,M NX4 MS0QN5NGI;FDN] ,6.%M_A"QVUV>6O*U.KH>NIHI%"= MMOQ!:[A6FPP8-HEU"/B:.1\E-6+9I\AA88!'-,J+\K] G)L'(T&LXW6F.6542X0V>-G%MBZ,UHL MLVD,])VB7M#Q<=-24?6HHZ$N7K+X@51M8'2_![ .L=:*BW#HT?O57M?Q!R3 ML([I-IHUM3+#@K"(P]%3DT5KIF:EY! C5G;+]\Q)Q7 13S,3B9;3 (K#[AM7 M+D& +O@ :$"]'3YK[^PZ+BW F'DAJV+BV*OTP6504K=FH_PH 4*YYT9 M%Y[-^)4*$1REA+W1S/8V--0HH,E3Y;D.W[EN!8M#8SYTI;RN#?;#Z'HI4*% M?4H++2RH!8766AB" C7 B2;OZL?+T!21-#,!%KYFAR;9MMY%6(X56;>&L=4: M][3?L@![W;>0F'00JJ;,WG\%L2-!S@SZX'1WG2:C=EWT.7!1JT[Y"IZ1[/ M#57(1P^4O)=I*= ^=!/>%%HNZA39J>E7=FIB*BD?]7O8O@-$$AO3"E]K5'2Z MR"Y[=(G&">\VC@];F;C?H>1"H[LQV?J3M[Z/TRZ-$FU4BWQA6>,7>FE8;[#3 MV@2HIUT:'_!>3&H<61O+ H2X!2$7:TXE5QWNQJW3WRGOA32'1PQHLLB&Y MKC;1PIX]"2DQV7O>=^Z-]UT:+VG$6[_&?:3[M:]N'SZ!%K!K Q&Z[*"\V([F MPK7"-2'GY+;\#%KM'0K0A//+0K']24490Y(SZW:;Z?"+M9U11RMNP9/<)ZTH M&U$N1IA?K4D_'O:\2-& M4=Z[$M@?+/BER%7J=XM%Z]?20N>"Q41-[>2T!>Q'(N&J]O M2?;^X\N@7<36>H_\$N3^B=@V7"1]9.L_^7JYQ+]Y%?+;R2*O;\O1]1=0_>E[ JKFRMM%:C;^G8$=ISH M_Q#F]]U4E"\B[$RT&@Y$0=BOK<%\2-A]K]AOTEYM@OFLW4PVG-*FP* =!HU MM+Q@*,02\MKIS#OB 6%BN:'62U!L< MV>69,:E@=75;ZI(FSIENL6_F2KZ9NXO'_9PW=U]ZQ)#AVKK1.608%F8-M2VY M:Z&0L[Q>N5FKD@N4=0I5HA3[;G^5?=V0J];NB4OU1*=43Y@ $K52/7C42O5L MDYX2@>9-$_#-&H0)#:K>H3_1FB3VQ\MO)[NXCB>V)5,%W$ISP]]J\!US?UX+ MTX/$6MLQBJ6>-=231:K+- =KIUMJ':=P*;X3]E=[E$!BM%QIY:A'.1TM8P>63)4N86M:ZF1SJ29?FFAWH$$./%RB+^I:73KF6P] M"]L^=BCYT(#[B_('$Z;EH5(V2.845-P&94=!)E"088;"'\S08Q"6CQE+1EC/ MQYT"@%(.D3O:.T@21(]133@S]XUS&A6O\<)4Q%T"(LI=3*#,2S3)I(%:[(TE M5X-_@*)X4#T*\>ISHG?:Y;U[*JI^HUF*F["WY2+A1&T'GD .W,Y]B1SE5<8D M:NWG@3 Q,"%/(5J%I7!^5HWJ=-D3E&YV@+;WJ%CU7AI L4W0&/"N:X_WV;. MYBTG+VE.#Q4VXMS&)+-=6 >M*P?7T9B44-0+<#T7(4>8/8V*3A>!H63674\W3@*N/R/QD,R75 M+YZR=^M\/.8YSC"*8&!^G(X70:+@SZDX62**=('694R7Z-&%>/[_V?O2)E65 M9MWOYU<0Z]P=L?<]K0=04==^[XI Q7E6G+X8"(@(@C*(^NMO%:"M0MN3 ]W- MCMB]NK48JG*HS*S,?(BP&B^ = %Z+!;2)8!TP>Q&DB%A@D88/(I?1#,.Z7+7 M*LE7?);O>!KUA9,,WUX-=#B7OL-LKUC;\WIYX\TLJ$>(^_'D;\\*%PV5P+&" MI\W7E;GA\C;TB.4XS[X+=7G0=?F]2C@=/1Z@;,I %?(^6J_?D0MBWXT+XJ$^ MOZS/ Y8\UK<)")MV@E=G! A# H\SG\N6[>-]IT>MI^\K['6YA4#45ZH5"MC: M/"*Q+O&8TL" +8,=M Y^A>2%D^FW-B/V25Z!$G6YEG$OM*0CL^V]R-I?PG06 M[) *AVEF>EW(9@0JJU$R.(';;R#, M&'[(9IT-\=*LOVE-Z IGY 4TE[8ZBG![::Z.-JPURM4&J#EH4+7D+%VM*"VG M6AG,*783:<;]@5R_)!M_.1?<8Y_M\9X=D$28LW9FEB'R-(?3;;L^KJ*% MM&HQO<50'J*D4Y%-1-';U"H].H[RUXO!D]NWWS&]/Q:-XF.L6Q)2JD"C!(PH6)1(A70)(%SR*A1GN@4E M?'53N<,B7#JB'O*,!EOO0U/KQAE)03N^OK@N+^<\G"W&%?(>8M$D\:WR'L@% M]!X_U@WV) M<_UK]\9Y?X3ZWH>^O5L!4 .XFOL]7TK$4U?7/ ';8P%ADE_6 MJKJC?@K8[!ZFLD)#ZK%:#*+Y^>BQ5"JQ6^S0P4;**HM>4:,GF]G,[;Z./<53 MK_8?_&H65"JTH,XU5(![PC].704GX//C=5=>-34?U277>5K05\,"W2%U/*+4 M+;S$MIR6RJGX]5V_@.WD3B_YJ6F8&H\LG.:3[H'\TEV_T#X+[;/0/@N\CO/1 M;?%6+$^GI]VU%&DR\V%QIO4VG#4FH&Y+/.'8]PILP87ZC>Q[5'X/.*\?9*1= M$[@GZ+:79_+(W]]*+='*OF:#YZ@-"X8ZYX4^.FH^)^5Z<9ZH _NK+.9G'6M" MM,EQTH8;3>(>#?7/-S/ FD[+960-V^["K,>+MIA_6?+UZU\"MD@!.I%\..C% MXXXL'S[U[V[JO:!-?;1F ==JN^*XP-!;JU-(]#=8M=X4QBE;:SXEX]\KX'8Q M$Z7-+U7-+A?T21K__74RFX*H_W[8G!]_+'J]5?CBQA%A/Z)QH48$3AS#_D58 M4]-XF(H6VCW?-9P59F)]0:LEZ\BEC_&R6#1+*-Z*SVAFFZGVA&5IQ(C"&$/= MM(?T%3'H'VJ]O%V)@;E&KJK(?J36"G!T*SR"_%G:KZXJ[(L*L">KU* UQ!OH MRNSIM>EL2$H-:XQA4 '&GK#$%2&L@V;8H4?'CF$8*PQCA6&LGZ(2?10AM:[* MY>Y@L*!QBBN64GVIDL\+=E.,-\:Q0N#:$+CV4W/XGL"U649F30=\TM3A!BLJ MK+8'L@2+K*F6\ZE[6'[HK,8S[,S9C2_@>082JY/T"?\^G8"KSA@.@62!H@:6 MP3PZI#P_=3NT,R%]_T*C7'@4K)!U(!" YA5$WG,PBFN^4-&VV65UB>BR+= M&82U/;NQ!9Y_&(1PIF:_ Z"VSD.@5F0%%L& 1Z53IWL,1-JUKYDQ:QYACEL] M@R',+^;8O\F::/G>^*R6AZ M>=ZIY>BV)_>*L+PLGZO=4Z"/JS8/>+'V%8_O;<^##L&2WHX \.=_O6E'/UH] M=V%P>ZL0^(C378&9@L?_9F2+V>I[]PR+)HCG?6__;G"%D13L@X;8OP+;));X MZWF+/T%4WD2.UNVDHXY[V6E3'?NVKS9Y.-K)<0P:I<<$CV/19,)#\9LX!K%G MZOR'068:%,+_[C:ROIT?7MT7[=Y,4. A@K&3W.ING)'G!6@3LS_X-1R#_ W04O/*?,R*<$?/9\' ?Z'STBC$*1!]J,%$Q M'51JMQ]54LEC&$OW4'1;7!5[G2Y?&22$,1R*_7(TQO%EM\>D-E16@BCTO*93 M*]..H1AVGSK9WK*\';5P2YK'*Y241\5R/\L1BD'&DK="C/:V.'0Q._HM0+;K4'5ZQ>=N1<(C !39]\S&I@O2 MYI:*".88_7ACM6748%1!D4])VH\:ZB: M#HP_=6EG"H"WAI/2GB>U=":%_ TOA83 T7_AO?:SM3_"_OT'FCE'EYE+^,%M M+,0X# C"=QCK&KC)C-'X9RJXKT5N1'V\Y*;ZV":3YWMX>AY,'.!(0\LN5=4=%M"U!57'I"+8VHBCT0V(L* IA& K8D MM/U$!=!87#L&GL(+JB':[I$!<>N=A^E/T$V231:;CR69-;?V-4MCP2><57V7L>4033$?E2DI>U5@>.R:I*-!Z,I(M4'Q. M,+ J&DLE6$!2PU(=*]1C@!XKR.,8W=3^#RI(9Y7!DMI2"UF P1SU684R3U; M_ :L2G1[M" \T!G4%G'6S^G4^:PE M@7.W/7'$G216^,FQBD48**F'KN] 6EG^#?YW3ER+'&_K5I=\-;!_SK;,BJ4J M3*W(C2/I86T:2/+A'R??GG!N/]^LJAM /.UW]J?EJD=UZ>5N*S&].:5FLKP< M+P!:QN#YD)>2P"-UJ+GWX!E!T'@!AHD,^^SFK>1Y]^87#,J\,^2RK\,!FO'Y MN8UIUMZ=[-?QW0K3*"VOVMURD\XFMW0FCK99FK6]^?2+.V$4*2D.#4ZC6\?R M=D-U%Q\_;UM7IDK$-//M7:G%HSB;,KLJ$5GW$\+]U!T9*\>V$IY2:1&OI@LQ M$:T;M=:O/^E8\BF!OJSN@J3.'DJ>.ZHSQLRK'9:9EU&31S/D$!^VJ0FP./!$ M-$T$4IT]E#+W46?YU#0]6W!%'&TTY^TQ%VEN-PD@0'@\ZK/%'/19]UQR^,T2 M\@(TY4\\NW@T@$YG8F]CONIT*N#=WNIXQA_K>":NP)UQESN52MJJIDK;."T. M:\D1+B[HKF0]P/%D"SJZ1*6EBB[X/-6-H7T%:PN__L31'^9X)@YVU95)359D M?5:>;3!JH>V:78U4"0SU!PF[CN-)U+HS5%S6"E)'JD_Z>F=-X&7KIHYG]^1$ M44=.[@AG%Q$W$2>CYW?1_F<\'LP;56&*B70V6T"S&)'12J/6(\Z%%?40\+;_ M,4[,1C@E/YLF_FS3^!RR^I\P,8=2I3BZCB<'2H_N=Z: 3 1>RUHDW Q_.6'W MPTB-[N)H*I*>H?T=VDDW,[5L/R:,<>_(*5/OU G&6E"=%959=K%IM=RUP$CB M?&0C)D[!OK5NH[@EKZ:JW&*)D04V8/1\),'T\4PU;V2HSH2:SJN%K;##+" A MGI&TWF1JU8*91PLB4QTL>^F&J,-N1_'SDW4# V#3&0 M4N3 &B=\GKXJUL7JK*&CIC&OXHGQN$T/X4C/ MTZD9P\7X7*Q'B1S*\*/NV.@)L+6)Y^DUM=,5LH/L#.VP2706MRRZ5A+&A/?I M6BFF%\9%HTIM^=1$0COXRF*%<=([4MS4XF)OIT^E1:+2S];39&^%PL)>#S4- ML4G,K')E2!/QU$KJ1]A%K0Q'[JEYXY,'*,T\T,7P1J3"48NEK&YY/L,K_%0T MFE#W>@\?C'R9+M4F9!-EAM-N6JD0!7IG.=NIJ)A@)S(NC'./61Y^5$%$$:K6 MK#:&%(5DJ#J5+W619I6L=X)R^K G!N(<0S0/AQ" *D$R!LNFPN]M0>S)UV+0 MCPZXP'XO CM !B:!G7JPA@:!HVPQY-*.WT"<+(=\82F!DSE ML6T+-][F9XV"88]S=X\/Z9>U,%W@3ND8ZM).IP M4U$UPUF&9YL6.YW*WK*-(H$A)'V\ZV'G*\^#VXKP_)AW"02L0+!]0U'6Q(EI M[*WR6Z/]N7IK#-^J#FCQ;*#M7QA^ WM>P5GLK7!=[-.*F8A(C=QZP<_E4ER9 M?\)[MVW%##0;3M2G!JQ:P4XTRVR?A[C^)&F!>>\SD=PU[)@3G=5$V]""8&0> M%#+;SFMWFLJPDDFL:9S0I\/9 ,L;P(?X@WD-][]+,G:+MP0*'# M9"-1>9'(A@I?4K>_/WA;X(ZN701^:^;RI]8_#/0\!Q"N3?W#%I=RMCCL=(O[ M$#/D)FTT-:_-"^BB7&&7*VU "/W/,L/D=6:8G#/#X1WAZIT$&%X"I;/9H4;R MO7Q?C+>E1D?L\E.9W75BY*\_/HTF]^R R*KEI(/!/Z8,8 _727,Z;P BPB\F M/% -=N-_=Z0ZG?+V2=/2]D$0U=$/0 'N1SR[\O:(0SSCC+6>,]KLN(8I /6$ M8/L- ^IEJ)5%J%=AC.HM1L\=..)USPW>^>/:H.$NK^/A'9&8ZZF-$HO'9](" M'S4Z4E-.5GJV9PSL?/7] JU5E:. H\73#;'2FG7:6;RA CI GB# M)C^$:T\7\VBULEAVCL_[V! EP)Y-Q=51 <\*O_[HXN8%;CW3'M R=)*PS]CX M0:%/OTSKXP@(L#CMK%GN6:T>.AD=IF8GJ^F(8&QA7,M>93)ZVI<)X'= MMF=EAI4B'1;8IKP>J?&: >-SMND0@?LO'+=0.5YV1-Y^(QLL$GYAG<.*,[IN M+I9N_ WL[:9L.#GQKUWX/$O]+JB38,(\9\I@?_3GQH,I9>^;1]+2 ^_HL/3S M5/W0*0O C >2U\D8%J.3%8J89@=QC&WV12$$J+PK0"41B\9"+$2__'W'.K)I,A2N@#B?!R-6M(ET#2!8]BJ9 PP2,,'B62(5V"1Q>@R.(A74*Z MA'0)-Y@O31BPP81TN1U=WMGKYU7O\2NWN'F3!Q#L"1Z I).O 4G;DXW%H^E8 MH#IX?18UVL8/0QP@5@A)OJ_4N0A''@I!X(0 ?]=11 ^@ZB>#E9WN\_*!@P( M7ZM;]2MNWR/F[DBV]^=5FIQ=MMJ_&H;Z=:0#_V[2$;^>=%RT6;\4NWQL,(FBU,>^5M4G-SM]^ W'6V, 9O<(YH^/F@9[M/9_K-1A( MC$_' MQX\?*'\HBV([D.=T*A%+H0M.T.3"PM SM/7F'E8?3O[*,Z(&CZCYH^/IO2J M;:^P0Y_(I9K>I3N[>(QBMO%,,3^II5H"Z>"D(U@43W@;7%W)B J8,KFRS12P MV3U$53YF&4)5>7=5>=9(X$.JQ02@FY0*E*LC&O+;;K ME4AOL[%R?UZI$>4.+'A*WE15!H]9'FUC/U*1]E08+H>S^WJQI4?9R]^#5V]W MQ!;HWN?O3]N^@_W\G+8=OT]IS:5=XEDE^%;9@)UCPS7E\J:ARU(_O3-*JTBK M1^Y:X[C=BQV-XEXLUB\3JKPD:G]]R6ADP)3'O2.PH08-C :]I5G]Q31HN69E M\.:N7J0+2T*8*"MK6N:A!@6V=QR+QKW%BE\FG/T!#?HM0M-M492\9JR=7&S&:% M<<*VQF]JC =,2]W&/@_8),/(=V#6)53%/\6P?ZLJQG*]X\]$N19M'A]+#H/(@9]SJ%]NHU_P;41? M9,:+OL3C^7K+*M:RU9[PW?3+@TES/0;]%L'9_LN=>2[U'SIJ,023=,)8[M>* MY5Y:AFLAQW^'",!U@)'N$Y"]4^_1AN/X%Z BT$N*T[YMKT50 MP7E?/-C4O"@4XR51(6@SS764QJ:'EL76. FCL^EHS(M \EVCLS\HA\;[GW@?':STI*N MFSSG+*&C#1R8OA<[FNJ^/8J+L]2$:IGX%(WLB+7&# A9SEN__J323PDT]2)N M'Z3&W8%A;Z3!'[?X@I)O<3Q5'$F%!%/5K$:JU\3(7W^2L:=4(O[2XML==^$A MC+CFY>V3 QDKVF]TL3_PD]-MW].3]PA/[98XB]\+BF&/L'BV!;O-^!UNV,_# MOSMXO34U:H5R7D?-\7*8&?.DP(^%7W]P8"_Y"-XS#".4O3M0Z(/RIF3[>KD_ M*#6H/K\504%0N^=P&V /V"J)&S;!7N#JR^U^[88_48HAC<7TG=B:A[4 M*J^M ?7\6:*N*FM>AX2V44BZT$8X_A[BHM958\B#F>[7W1?K,#DBI&V-V8W1 MR*HHZM6A53Q;XZ TH J$XLFO* M!-CM,!Z%D^1G]?IK@^L;4W<2Y?=93R<&4L-2>$V?B4OX8*K3:#I*N63_[JN1 MNVEY0_*K:@/EY79VBJ8+P@2,S4- MT[6;&(C0=V1S!@7" UNG,=0 M:/;?+DZ/GS%Y4'BZ.9F#FT)]=P1_YCX ^&DN/)#KQ2DF^&C!\X8+%'2,F 8A MI("5"MQ \!6X!M(##',P7B'D->_@M=KX+$?(4N!_H()<])\#1?=PU1QG*Q!& M=E,,;B1I\3&>^HBDD0XBG"MP^VN?R4RMP8_N=NG=C'NQ'R SNO@X/#6XY$MMWU!1HY;XM-R5UC&_3-<7; C,@]&_ENJ]C$ MG'7TJ9)#L[UQ)!'!IOG1#'B::-2;!>A0:@\C[%(9\->SZQ_2\MU6U!%"6)99 M0CS)5ZCK2\:,PL[Y%$-GJ,*@.R;X0EP:@-<">Z_7)/8CHS_D[7'[UJ,FM:P, M%A9&%V?_9O;PI__==+)]Q!6A3 MJO9[WZ/N:/7]DI$(Q]VU?[%;L4-]3E;QR#)PK'!(]CT63"0_&;A)!CS]3Y M#X/,-*@T_KO;R/I&95]-N+$AA>!.EE5MT!S]$*1ECOL:^XN$NR3VRD:PXSBQ MN[+/'YZ2Q+/4SI> _=F_X0CD?\!N#:_\YXP(9\1\CMJ[#W0^>N'V>[(\PT:C MAEBUNLL12LS2N4BYJJ:GO"^\=1]-Y8V^5B#1[6[3Z,S6:1H?6G[PUI54KJ*E MQIR!,JNUN!ER6-ELPY&)\Y'L:)M6-YTD11,LD5-B4BI7;))^\-:4.*HRM6&\ M2G42_7R;)051%6%?&,_31265Q/F"0=,1L$97AI'I@6UTME( MC?S"RG4;[1RC^4)F2T.E9V:KD01-[-#=L*@M]7ZRY0=O/:T41+[4-7;TMBEM M^4Q]4L7'EA\4=19E&FPK&>O1'7XN]3>RPK$B!*WVS"@I])A1:=,9HEE^D-D- M%Q.UN6N!D?L9 47NXC8[P8N+&,][[.9W(#WC5Q/D(Y%\/YBR@R=<4J#*!BP= M.!#E.K#EH=G@;+D8 ;T![%-HRAB&^$WZDRC*SOM]#$J9.;+\#7N!KP*N#"9Z MBJE\#&7L?GFRD,B" :L%PQG.2[HX>L!-<4%MP;(@YM ][?[N [9UO=/ MVH^WD^MT"(_J_ VM6!W(R-H!,7R&S_5;IA,X76 B'P"6GQ!NO^A/"+"U(OMO MGC^W:69C,#/VWP[^*B,(&B_ 9;OL:#$.VJ_I72WH%3XRH''@V&?;'-M'-$;3 M]$".3U>JU,D7T55WLM@P6^NC+I)S&G3\.-TULS]@6L]G75ZPN$V2VI+UW9S3 MZHUF'8:UXA)TI]6T$IM&@!<;BWKQD\](A "ML!954P>ZUN>X#MWK6UN"& XH%8]R MA B;<.1>"?/.#)V/@?#]?:+8T%/%!FX$#P U'N%%.[CRM_B/HUC!@D[!9[P- MT?RWN/\8:,O]^T#Q!S=R)W84 7*5PJM3M2=IOY S!P<<&H:*> T8]E#[ M0"!2U33 3K.&:M#>;/@-K[&B[KRISAN&[,Q^:LHR#(;!]X).S0O[811L9@CK MPI*[K[H/-#%[/%1;$T,][2C]MZA#/QUH >+# P# F7;HBG..7S5W/[KEZ?FS MF';5X[_V0FF'XCUAB-/8K+T4GQ+FU2R?:N*Q+$MGF]UJ:3N?[JSA!\YJ/XSF\[+(XD!:H.9Q( MJ G$T^$P9U?==-X4;&YZ':_ZTQU$[7W$'NP!K6XF(SUBD]7; MDKA&>_U^+M=J2^2O/\"7=TZ>/.=14TU=>"EE6V(3'AAS/.(T,5C!9&$!G4)#MP)TA$L;<=6 *G7AG]BGDP68 FX3MXCE?1B:.B?"B M3_4$;^=8?0'*>KQ$]0EPW0==4I^B>"3#=*=K;:>6/VS,DX=CO.N<8]#MS%NEOR/M2]^4S97?O[5X\JK1#((>K?9UHA95-CO\IKO0M MO#4R*W'8-DUWI&Q3F4P'D_JF4!/@F>/KWIKMC=A$ONC>+!B.]W5N(('MRP_> MU=/>7WN"'L8%[\IQ86SG@W-LM^>#>.S@.SDQKM,]X*5D,^CC\,[K %L2>%4Z MY!KH5KDSLF<[8SC'S=J7>\*!(L=[GAZ"J >(^G>N0X^0RCYK;V#HYS$06V M86@F?XM\KX_8MT?!@9,B$5AI<%">KG'IA!+MP*)SA>I$BVWM>;!^ MC[0L9"G[6/RY1@&8BF#:&@,9("(#5PO>"HRQ0Q7P9FLGJN:J5V"5/D>5KT_S MAX<*H$$7S$1\SLFY:5PEG5"A?X3W/Z)/#I@K7+_^ .$5_R O4A46 MCRC P)_P8.9 *3 ;V[ _*04Z\V8<4\Y1C4O[N&^?87$X\'>_/-3Y'4;!$B) M.95UN CPA@K^LG0;2!2>ONG@/OH_O^\BT.R,YTR9;TS?5%=".J\-97YZ7CD" M:TKT+GB[#!@C'<1^6Q=SAB"R"6I;;R^IRC GQOE;B?VM*[CMW-5#"JB#5LP" MZC%+G?^]_^7XI6#*I/M",!^0=1(.3_,SO1E]J">KTM#V3]UGVSHS>F,WK'0T M?K&#Z5&VX=']H?:9 L[<+\G^[PAL,O#;R6:%BN'5-%(W8_@D3Y&9Z*IL&N=Y MBG?N0'!TW=NYX"0S^',M&D*B!(\H6)0(R1) LF#16#HD3/ (@]O%"R%=@D87 M+)H(Y26(=,&B%_L&AW3Y%%W>VRGV-=LXP#VQ;F-WWKCB[NI+ /PN^.'_^Y7X M]='E2!W5W^WK&['E!@%2(7+(OK0O8$LV.7GHR)RDN4"9:XQ[3 RK[NI H-T@NAB>'\L$5DB4JD0 M8F(^:5U(%7BMLPBY/T+R/ZJAG$.MP_%_[-",V-@NJN7I9,E)BZ[5F G6,M8D M!3C17W^PIUC\1OAPB>!)RR-T1N(QHG4'I1$\>,X'Z(P7NN=^3&>,<)ZH=RQE M1G4ZQ79SH\57U$!XA,Y()JP9NIVMXM**JEM%19U2N1KLVT% G8&CEY#BOYY; M"1,$[30@>*#/ :M)5I>0;%_#?PR:QKN#=W0?C+O7#J"^I4+[A!&T%R-2X7+/ M0N0J&5?%I16BAW.[=HV*;"M,>5O&NY'U0U3<+I,HD%D<7BVJLT*317H<7 MQG%H%N%/<>Q&& WW"!X$32-8M&F*6P7@6GS3'=7_07 MK64=XS*%2SG5-],(:5F@>JG&-(4V5CMT/9JP?:K9 AJ!@!H!3/[J1D_ '(,. M+\O@@8=LTR>G@));B(H(TU7AZ6(83+II,.G1X=5[6E8!G'[ 5.\GC#%7E@N. M) ,%3)Z(L:L%]YYG9).NH02;A2*56.5UF-4@2^O MY_V,N3'&Y#CAF&6IF+>F.(Q6W3Q:]6BQO*-Q%\#9!TPI?<(>?)]2JA*I;'NU MB"]H<5G.+WBL%ZNE'V(99OBJE" ZA1K%C)*KYC32MV(E"R@EVS),^F!X?>5P MF T?IH!$_\S MLXFTL'Q%,?8AQTV)%NM=6F K5B23)1&:UZZ-;V*>>@.*/ M8:^>];V$TOLU47O_]ZS9?HB;\A)N2CK$33G<-L1-.1.)KXZ;4K)F?'I22G90 MPB 4JCY#A7$:XJ;$/;@IJT5BL))V.;00H[)LO-00LPURC'M'KK@5,\P6X@,J MTC&MXG80TYKEEA_&"3-I6,(XMQ"E2G5<%?6JV1]M(!J*YYZ&3(Z'O1HZE_J\ M5*Q%>MS0*$",$\\]J4JDE:PSM14M=@MQ%*=UOFG XPW//7$9;36,VGPNX?4L MWFH,UVH&]T5#B>_:PWJ2CG71PI*I;6:U>$+AH6/LN6>WM#75:6Q&H>:R.?SR"8^[;;&2>_(IK2J]PPYNZ29R23=;O.% M5KDB #O:,S)93(XYU& 8R5R5AE:]ML47%6N<]HZ<1XALG)H390KGYSFCUEGL MZ$(+C/3.B&;FXU6+R=/\II-92%UY3(B"'[(.+G1TW9BA"[20:U*YFI7$:8WT M0];IJT.%(7/Z'"78H4"NAZ56L43Z(>O00Z+!X'BA1S4B.V*TMKK#_K+EAZRC MF37&F'1;'6E5FHV6_*B!E4>^R#H[/;Y.M6::+A%%=$R@)EW'8\(1LL[[<6@" MA2QC=R%!2(@9#)2 FQ@=",#)R_U,VKQN L*M@]Y!B\YH)VT._0>?0#V/0G. MI ZHM AX180Y++O;U?70".7.G4_\[>/G-;9Y!=K\NM.ZQGGOK;T;>ON=K)D, M$#]J9=(\UQM2>7PZCJS"?B=W[7>21&TK+2RQ#5KI<]CO)(!$P?!H2)< TB4D M2@") GQW+*1+ .F"1=.ID# W(\P[3ZU?M<"^XW%.D(ZO/;[P?0ZT7C$EOEIK MD9 /KM$D($K,=J!B_-FDA%_Q0)9B#& ]Y".30@T .H1K\:@)P MB;@OMTR[BNP[^B] E2.?%893L(IOHB&OPB!74XW?B%N:O(;8.^HUE&; ZO(. M:0U/2)E13$;;(BYZU+>LC;Y>?9VC$K]-RZAW(S9BN*=HSA^RT2\7I=VA]UVB MQ*G064Y0EB;4ED%)\U:=W'RF5O?#J$[4R@0&1$D!;VO"#_4&1%+MSA@7(DP_ MB$K=QE'U23Z?5>>),E<>;*7^"(]+BQG=YVK". &3T["G5.HVY;Z!$[)'U*+ M@\V +<.5JD_@R>"7US,Y<2URO%UNXFJ:6HLNS;;,BJ4J3*W(C2/I86WZ6$V# M!TW1[&/Y;@#+CE]!/PZZ<;87=XZ/"7005VFV*IVU4:;,-5OMY',JGNDB?X?VS&WTC",C M%^R93,G<1 ;)3(HRX[T4M:F5QX4".4Y">R9&>+M:_O,MY2T,L3S6[@F8@@I- MH8>IJ(^80J-.+;&5JM.XM"C5JBMKS&[Z!0OH,&@*I:.)*_;F#4*,)J]J4UX, MHS2!/E(/C9[':92#@%RP>\@97UCPJ%&F(AL*&P^GQI!9P_80P.[Q=FR\DM7S MP_;V,(X3&B_?W'AQ58T)%NTCEDMZ:.++K+$JH#PEXRR9T;4R;@$M!$^7T&C\ MT@GW%P_BH.?Y,C4?3.(P<>;# 9[OVF+QW9DUUU%)0BE!&;%)/T%WF$H=ZRJ= MS8#YJHDU/3J9&D8(B::RK9C$2JFNV<>%<=I)K$D0MX$W"IP0AE&?,+'FBHDU M]U(T0;%]/I570Q*9C!I92BR](+ITJMY.%78Y$J@@)Z\F^>'&LE^CF58@>K!U M9SQBN;1#&+>J3X#40SA8WC*%Y2UK2$ ;,ASPJ.Y\#89SI@9$&0$L ?[7>!Y9 M@%>;Z0@/'LTYMAP2-&OI\J=EIK5#)3 M?2JF%_2YLA)>.E.V27L7@KZ +/(1@M96Z]J8&Z4K:(0O;F)),9L](Y+0N*1"M)-_ %7[,ZQR2D H'6[7#K[HJ_.B%OI,ELC22"K%! MFN;377V;:#66:$P(^T[>L^_DJU@]81.JL)5>2)2W(8.'9'E8)[W+,. M.D)G"D2"UF>[6'3MJ&?-B7I2SU'/LQ/L3_6X".7D42?S?JU=KMS6Y5M)@Y.H M<9V^/P\'_PQ9X(,L$+^&M@O8Z7C^)-JL^:$M[>//WS))XGJ92C:^=; F=TU$ MZZ^>^G!M#.O@)9M/7C^,F9P?QO@6J1P.W#"?Y*K$!B]%TMMY$NU0)C_9+HKU MD07!]V*__J2?DMBE:I1/;IH!DZXKJHY$\%)7KXB&_>-5QUT/]X.K.MI$S$JF MYOR46DR+$2F;D'JL"=$XB5]_,.P)QU_-!P^SHCZ=:$#:R4ZG&4Q/,-%)XQ&+ MT5_+=GFW+-PY2SGQ+N:G%DM9W?)\A]?6(LO[YS0<$@'M5]:[,$OC^/NLJAMU MU1CR8,*L*BB 4L\E6<11JLJN@/75M!JST$:/2F82+3VA*.2O/_%8U)NI@@#N MD.'Z VHYB2&FHAWN#Y;X^07 '[J!V+%9!W!41X!*!O05=81W$RK /9 )CQS= M 49[$<:;(;>T!1D^]N/))+T>Y&4E?!J9K[$1R''5&W M*PQRBBIL9I(H1##<7!2I9 I0%X_&S_45 E]3']BS5LP=$;5$TI6P))$>7D,E7O3*9Z$J9D$D]$TENK@3@K&W7,[ZY/SIPS M8)\U]ZY47K@#B@NP/H#K&#F*O+9;*BI0J0M&5. CWJB@@2B;>W3H$Q9S)/M_ MSY#&]R#E]EJQ0WG6(R:%+;I=CRNE60*?Z_$6D,1G,'-[7#-&C(I-*3&@(^V8 MN&I%VN/!8C_NQCF")07,G>\RFYRHL[*JFYI/#I\XDO%I)[/"I4H-8_#J>#C- MK5VY #,'FMFX,,[&5\=NE/'G"?Y=4"3)*%*J9QLU"NF2 ZKS& V'>M_+H0%B M,!O; E!T'FH!C8>"BDRV5[?R/L@X'S;

3<2964 ]?Q.M R8-G /7VM M,'R$9E;9=7%(1\1J>;RWYI-UF/:!'M)S*+YJ+%:A4)IE\3WL7NM#3J60(&/8^B$ MX*A:HR(1Q?2Z1Y0(##>NS:?O8U-J/ZW#^K?!U++.!@+VXP;P9.SW\5$($?R( M)O'1,#6UJA1#%[8*FBJ-5R@PY'_]P:+>8.9?_[Q#%QPS^=FN]@$&JV$+"A@'_X:N6L10(W;)F/;L^D&[ MT%(UF;. GP8>Q4>@<(G.O@L>X*1*@7'@N>!AP#Z%CV,9V^QC%JJI&+H]NZDI MRWN'T$]ZEYH*XTNN&A /&SNOOYT3G\[6@S& SXQG=H#\(+N CRYLX?S=A?' M>=*#?$X?P\9OA9SPB+.FD"PG=CBDRL11R/H3,(98V;2=.Q$>!P,C_ GN1CXV M_CUB8;M*1-Z):S9!K]*YV;B]+F?2B<_L1/31S(&$NAN1[KL3K31JLD GFP*5 M+65B%)^A)@8*7 2,B/HX7>Y6]&2SO1U<^BZ+TYTQ1E\U9:X$N(HU#GK.U7"^ M:Y>=UF+\>O[MK^& MN K_ TO:CB(<%.H-)> (HV$VQ$NS_J8UH2NVNZ&W;F8CL3C!4<$?,S7>XG U;G(S(@MHB=PJG] M4G&JG>1*-Z30:& M;2Y8LM>1@9>C=^[5R RP+GR,!K?"%\4!WN7+:+$E-]5?(M_!)&OR"B,;(J^3 M"E=R!9QD6DMF:UMKKNT*%H6#OB8,-"IV4IT=6YPP,J.P/*+/>-YP#=?4.YFM:/VQV151R-ZGZ'J^&Y.+X&GC<4OG;9! MS3'A>>59?5BB,7,7_5PYY;HDV%,/9VVZ.9G;>DQ%&,>LAR%IQPM@8,DV)$VP M3&F?%[3W?68)W(Z-" /A\O6CA3>78@^']/;S)/?3].49HC>82>ML"9=XEHY, M.E)>2IG KB.2?KKO)", GDE&Q$W$20#X7;3_&>?X]B(V).M#JI/'9C&VC?56 MG.6;3?"I<+5S]*; %9)/ MCN1[_^N Q^R$>P_WG!]X'^G\<>W#.Z9>^MAZ,, M.MJ)(@IO^#C14#P<%?3L*,.1\/.#IK*;&CP?N?B^D?\+/1^7'*>"'!?O')4H ML3+PL&'"TNQ?3M27,K/];7N_KGP<&LF=Y8%@@/#+\\KYH]N>W"O"\K+\[Z4< MX.M60;V8W8S']QE=!V''46]I$_SY7R=U7(=,+=B"0-5^[_.TCU;/71C<3MT2 M^(A3)L9,P>-_,[+%;'5WKBGLJ";F]R'7&ZXPDH+-&A'[5PR-QA+VHGAH!ML; M'*W;28<#][+3)@?V;5^M5G,I;JC+WS@&D\&."1['HLF$A^(W2;>+/5/G/PPR MTZ!F_.]N(^N;:O2J?-N],J#H9)V&$/I!TIGCJC9_D7"7Q%[9"':<_.2N[/.' MIR3Q++7S)6!_]F\X OD?(*KPRG_.B'!&S.5YOPKGHQ=NOR?+V4GIY;-%]\PP M.'OOWEF!IIS) G=D8NJBPNLZ(L@J4(\P3J=PMC'(P,Q\4P;.^E24P6LJ4-NI MIGYJ_-F:EU\R=H3_.5 (KC5,33F$/6V-?:RMUXPFPIMY@W]S4Q-U3F2=XVDD MKVK>J[-@$Q-YYX!\<#^ZA+F%2 \("8T($_P C80M>S\X: M C=B#&3!;&%BE6D EPHZF&"1IR;LF.N^NOO]D6WHW2CY#6!"Q5Z4DP@/-"IA M;M#S.@'5#'9 25$MY7BUCVYP2F:PDO ^*LQ8@'.'7N^"F:O:@<3@Q721$P$+ M\+IKV)Z1_6)60I<=6Y56)5?M3 QZ)2U&%;784Y9$"QY*G.0E@)%2DYP,="W3 MD18JL*DW:*.83@MCW#M2J^C96&LQH]&*7!8DLUW3Y"T:*5;9](1QW#L2;3/#H=1([RB^ MWRLDTR6USJW@2,][&IM:5XF,RP,Z4A:Y=@_M1R)I$HSTO*>6&Z'YSBX[1%?K M52^1 WXV$8-HOYZG)]C()!]?]QOTMMCJ6]VB/.JK$(//,Q)K1%AF.>@DI&U% M*I1&A4U62$!T&\_(-<>D]68\59&81+/$SLS%6)K D;'SD4LTT=5^>ZZ,:)RQ M-*'4XTCH#F.H=^BXEQAJ:&+9H2)X@4ETMGE.6 %FPKQ#4U,"*PJ"H='; 9D; MDIQ MFD2#O60*;59U.B.,-U)%;.2;A')/E',V4,]=$K&J>ZN,FI,:+ZVS>M, MH\!M^A8,RGE>H!O/D-5U9;NC\);CY M1#%)^HD3-FB;A?O:HEBD]I!<8J?CYR:J58G44.G=!8=H /3((1* MN^4G3K5IOQ4?Q2,8^_)1$I%D3K51:J-3@=I4FVD4R3;5' R+N]-N2:PBMBM MEW[XIB+/FVAY3F7S^4RU@:?[QKQU3K\,HX.7A$:";1H 0\%)*H0;,CS4-PTG MCHF*1[GF^[M'C<#^^_GPYH7LU*? M@'VPSR5\H7C3-C.QABJIKM&IJ+:IAO\P-0= ])9 M<7BCB>OG8/!>_>'/!=(6Z1(A7-YS:^U8P&X-,LQ@V^J MFTN,.46;\4B;E69A=\>PN^,W:B@4=G?\3D0)NSL&DRQA=\=@$B;L[AA, MNH3='0-*E["[8]C=\4=WK0N[.UXZ[O=?LK"[X\^3D["U7]C=,62!L+OC?L[U M?;#Y=]B\\:LU;WP(NG< 6SU>U'!A;\&OV%OP(:P=O$Z$;^3LKV=WU]TSRJ]O M4#\"0]GC:CX W?Q>784?/<]WB>>;>S@$M;$+D$NGD*T*A-/;IN&Y4^=(;Z<3 M.#O=4!5YLDI,8N-*S4Z C/WZ$WM"8]Z^&/]\"^?I$>*>"((3F@+-'C&.QIBW]LO[KL"2#KRY_2J;DSMO/7C)M:VN/K9SSN":7/3 M$4YMS46Y4-8K,MF&%7O074X_H:G4[4!Q?IHP7TY1^UK2?#&KZ[L*\ZV]WL\* MLS[(S(>Y9:HE-<9:>XP/8KU2#@HS=(933PD4?0VEYNNZP[!@#SR#\JG#.JTZ M,R\7G3T=5YT=%879(\X@241=-^TN;;"RG7?!#=RA^QHU9"DS2NB9W]0S?W0V MQX,]]T=/_[V*VN[5@(=^_>W]^D=SQF/]_D?/_M-R\?6B OMR[# N\+,/VJ^^ MZSUZLL%S1AX467 EW..3^+DC,RVEY?J1/)H5NNVT-JWBI4X+O%<86_AY1_'7 MWNX?/=?@*80'12?>H1!JXW0\5DU+4W1%6V@:D]%1IPT5P@^(3SQ*-81K$,P3 M_3!'/C +$T81@IL=$.;;7WE=OE),P7E$W=,V[$J9;C^,KQ^=3/"P'>]G3?KG M^K\_;,YW.80/T!X4,,O$/H0/';0['NP&+*)US6*R $[]J@4G.=AMF+?+3=P( M5ZU%EV9;9L52%:96Y,:1]+ VO7;(&W\?3K!?WU=O\0EZB&>1[;RTS?+;,L4G MK'''Y(NE\EJ O=EC$"8-]<:WKU=K%NJ,MQUZ?T^E\98#[U!G?"@J?F.=$2_L M!ET3K\91<6,-2YV&7NA-;)0(PM897@323Y>L/;0^S3D="!WV[WC*'Y;3?R=S MQQ752\IK@6%%CHXM%33;+,UQ8;'@M;2-,'-[@^>G"7_@3_3#XOIO9+>\0?B+ MA1;=ZN=I3:H86+66;DK#6L\6_K=:+O]K8TK\\0"??@U C$" $>7W (-V&]2% M:K=!Y9_;H)X"SSK@MQ.>94R=/X&9AU"XHH(P[LF*VQSYZ1)6B^A@WNB CR"P MX^0EH"'&&6>CJNM'\#'/8#FGR: .6,V,6?,.?/4Y9DU0EOX4)\>%1S$7X KP MA',\H!<*2&S<11LW&((C.L#S#G .O/S"XD-84E-V\:XGJKU6+E55H"T177T! M].<,NPA2G0,*&C[F!'SGWB [)'C)_3MV#DA)U,99D;RF+K(VE)#]3"\FCQ<> MJR.,JSI;[;#[SBOY6#O,*:A[C]PL'?L3^Z/SY/^H2WA M7^:,$)#GQU(! ]Y-*J1$ "B!1U,_%$,D8(2 (I$,*7$]2KP_;'QYB[[UK+\? MWL$G9WAH>A_[!! (ZHFT!*OO/7Q* ) _0M:_^@S?!.SP*?/I*_/U53$\+ILP M7X^VR2]/VT^#S& M <>?C/YEMOXW(#>B?GA&^\"H'%BW..:-[-:R$G&1%M4.B9>W M.-O)M3Y1'OG)*9$VU+E/T>2RODM%"MMEBZYT:2&#I]MD117 FN*__F!/"2)] MFR+JU*-K@1YS[.IN.3]>;L^.'X,CMP,QG:$-:452E3)1KS8FH]%@]YFRYEO) M[<909SLEAK50L:^6VY5*=36L0KF-__H32UZUT/GN+LM1F3=RTE[MRSHGU]OS M?YBB>. &3[D=]VPUT; 9T%42ND8IJ,K5,^B";&0ZL4XVWEM8 502%7.P4AJ- M4E+JE\>VT M;+&[F-KI!C^BC^E]O/P Q:R"H)D>8"0LN:E^JI::@(%U5ROU1)GN],Q*TVFZ56"HS' OC!#000M?_/JY_*,R/-C,N M"[-655$F8O4U<@,(,3 QX M3O"50P)=U6#DT/T/=BW#X[?^J[UH;\O^MNW+>BO]%L5?MIMAFG2*87CH6+[4-K$P"_K?=X21. MO+9=[8M]@IDB=U:!=*.*I,]:M+>NQN"%!:^ &RY5(.J*D!-U5E9UTZ^\HFL9 M\S$[R,SH;;J.DP)#T849Z?"^J)@\1QH7QHWA,.Q&Q1B>O(L+13SI*)*E.]U& MC6HC9#V'%*A&H4TVBZ4L4JKG&^T:V2TUZH\I.D*]K]M8\I#.\)C%H96.P&H@ MCI^*"NRNK\/RHJ6JV-^H4P1PF)VBLM1$G8>%0J:! (W-SL#U2P;".]MOI[!N#9A'9(^R7(^2=UF99S2X6^[#?][.7([! M,6\.,/SY7R<9S@9\M'KNPN#V/BWP$2>!FIF"Q_]F9(O9ZNY< M4YC3D,;>^'\?-GBXPD@JBJ;_0NQ?,30:2]B+XJ$9K%@Z6K>3BB3WLM.B)/NV MK^9QNQ0WU.5O'(,[_S'!XU@TF?!0_"95T[%GZOR'068:U-__W6UD?3B^@O/1"P_<$XK9VRE4T2H1 MV%HIH?U$:]1<3AI@0[3@IOC+69+#2'J8JN0362(F%3J-P1#GBZF"08YQ[\AJ M>T;W,#J2H!@=&ZSQ@J412PN,3)R/;,M*FE^ETRMT5>(*M93>;=)\"VS$Z/E( M25I9,Z[!S:BM*1CSK%[O4?V6D\9S.G(TP/M* \MM*'R6;+2WZG2WVUE@I.?I MW?1T.E6&DR+=,61)*(IZLSZ!1Q;>I_?K_9ZH"CDJLFJM>DF.7\8ZI'/.>#J2 MB">(1(Q@TW2EUARF8GEK45[#D9ZG$T(%QU.DLJ+ZG4RNS([D%LI8XX3WZ:M< M.I;O#XHIB2\/BDU5'* ,YP8Q3T=V5O'"."6M^U0VDZ\M4;VZ'&EPI.?I"[[2 MXL?=^5#:RGDZ'DM6C,ZZ!>Q3S],Q*[V>3+$!2O,:+4S[=&\H92W'DSL=V;<& M%9->B"N*,&N)#$?0(Z4$;=[3IX^G*2;!\@EV/$W$4N,XBG%C9I*:C#DLC1*) M*1]C4]/S>\^;^5&.KTDIM+"6D]A*R(PJ \&/3\E65]CEIMJ&+HR*U'A,B3EF M![G/,[/8O)2?U-J)'+4B5[D6(TM+4;?\.'JQM.0N+R6*:&.9+6[Q5G&(=T@_ MCAX9S:DRU;LBU1^J)9&>6E1Z9OEQ]'8MH#1-,S$Z$JFFFV1.$-,J'!D['[EK M%6/#%&]$I%4FWZFDUB1%5TDPDC@?J<_K93HF5.*T6>H.+;PW*\YQRX^C:U52 MB70G1%JJ%'&%K:]57&3@2,_3._W"*ME+UH#D)19TUN+;8KS9IRC^!Q5S.K&N#MIM'.90;?"HI4?R])VT//ED%X]B>K)%M.5(@*9 MLI06T6(G4.=Y[FDL)SVE-#!%RBQF6VJ_76'TOB\OH:/1>)D?IF?97+"2VKYLM+ MXFC=[23-5H9:-/"Y0=;I=&=-^O$2\'=KS>DRNZ;P2&]N-BTS7BT)?KQDE,F! MFK0B*,4+:-7*6'19&?KRDL#&RZNFM$S2HDACV559,V,9RT\[EO&-U+>V;(Z. M;(D:SEGE5"_KRW6)6;6=J)3Q),H;K-'-=D9HJV_Y<5U9+&^[R=Z$I)EEADE4 MUV1G;/IR7<]J52>52GM,$>N$O*K,T68Z;OEQG922(MN84MFAYD)HB]*J4!!W MD#\]3^>ZO:+:+.!M=!5166%E;D8-.\[EW4.Z/6F4HINXU)D*@ 68,L$L!3\] M2@YG52'3R1904^3I?+98 &+O@@J?CHSOEG1[0(X5.BL4DGA!F@RPC8M8:H\$ M1K_K8;I^RB5O=.]EOL,GQ6]AI'_ T>L^]^:P8>"2_^JO^%C(WW @COZ;;>1J M]J_8O_\\.4T^[ NI#<\Z+2 :TZG(0J],X]AE\(AL%<%)(9] M7&;[D;!IB&ZWI%B:&K#QG!89S]XEF!E\K'?.NNO,NJZCVU;DU']\GLR1\^BZ ME-!WCB)Y4P/KH[FK!-;ML"+P>K!8LMW*8VHJ=D@+W DBOBKP-?]F5=UPWW:_ M&G"B=M,5>#4'/I;5)7R0BR$+G$0P!;!HO *F(]L?,APPCT7=T&RC]A\$.-JV M.WV\2#*\$_23P00@=I[APQON"H'+HD@#SFD?($!$@U_HGM8BX $P.+@L8#]H=EIEA5Z:HV3/ITTP8$W%('3"I;+ -0"$]6=<+BJ\.XO!T8$;^Y\I.VC9+.=9EWF:Y=PO2GOHF7,>KRT]Z^S,UOW2&[E-E\B6 MVF[/=M1VD-6U?C>O5&3RAS?&N7_7F\L(!=^WI<$KW10?W?0C)$KPB()%B8L- M/T.Z/(@N6#01"PD3/,*$6BR 1 %:+!'2)8!T";7830GS_F35GP?>]87!# Z] MJ!*?Z$7E;?D?K+XN/DL6@-94H9P\!+3^E>9&!X' /RH06"R*?RMYN&9+JY_" M =CW4HG7Z'P5=#SJX^O<1*?N2?CYJHHP8"MQO<(!.]H3L-E="=P$.AK!;"9T M@FCRQC(("&FRPC/KDC8MTE*VJ!BUGI!F&JT'UP"U'7%SBAT4 \ZB+QJSK*D# M^O!::7^<3=I'P3S7938^%0\TFJJ1M60L0W?&Q69U9U8R7-7-08DGGY))+[I1 M*-BO!T "-KM0L*\HV+5C%K/)+ LE6631*4RRC/;DIM^&,>>8AAZ MU=+;0'EI/B9*]OQ$_-NX:P_!:'PP--T5]=D/4UZWMDJ@G#6FK@KS44O#3A/M M+=);A:X,V@EER7$#NNOFDF+X4SIQFQ+C(/C35S,N0LG[BI)W:[/A-\['U'K6+=7"DT_)E!=7^3M')^IN*O[[=]P@N#>7 M9Q>&)+Z28^29UVO [X&W'(!LE>S2J"H0,"_4^[-.RN##=$NEEH04Z6V5;IDC M-NU6RRG@C#VA,?P2U'LHJ&$$XYL+ZJTMAC<+:I]=+A)CTM;G1NJ+LU MD?KO^Q8CNO/.;&O,7-7V1W)Z9GLH3W0K$G6[8Y&W+K&6V2@[L_!*4U\S3K^C@?400K,?;0T,?Y2'"O7U^RI?X7N(0_S;[X;G:^^"N%JST)_);IJP]1G:_ M50K8TM3X<0R=$!Q5:U0DHIA>]X@2@>'&^U(O=,T8GYYK/>-0[C\B7?C)/0!F M5E6@YG'NVQ9U*;/-\ H[ S.33L"R.XS,Z^[Q69TW7K]-=[OD3^ZP?P7/6/=> MJP7/[;1NQZ!7TB*?G<1[>!P[ =W&WYE0?_:<)J_!#QB!QPZGTA'\&;4VV\K5 MFE1R3O$%JKM5Y%FJJ9$.V 5V(^0\:'<$3*#_NK;E:9L7 9ODXRR.4&N=Y:%\ M<:VUW2636K(RG]"KKM4F%0[]$&7C:X.E98=\IHJD GJ+ZY';/* MI,3I _)^.K87P4V]2HTBU)92:Y*6[L\JN(OB>K&%5AC4"X-ZWR>H]W^_:]SG MPS0_J20[RB;\^)L>XY(?Y20>(XM'L32_>!4F_"V8]T>)E-[;0?!X-$KPA[+5 M1!0]8-T#=< G*^Z)87UW;]U821(>:G#M'Z M]A"FS,(9=BC!,Q7 V#+/_>-4[/F4Z^F?J-<37GNY1U;MZ8WIR:[?F#JV"/R9 M9R!4I+=,KU%7%[T*N6E3J_1Z/FRRG00A"V&9WIW+])(AEE \_7#(HH $@68 MDG@(MAE PN!1(AG2)7ATP:*)L.HHB'0)%5DP"8-'XR%9;D:6]Y]F7#:. QPZ M^8DY*F]'R]I#8Z4O6@V!JQ^X:7W=Y9WZ*]77?8@5OA8GY'C6/KNY*@ZDH^X> M76\3UADN;U]GB'\[3,#KU1E>=B6_F"+\%KO!OU8;7GV?"MC)_5?(-OIP,0[IGB^V#\>+MT@X*AI3K3>(+2DFJPF;A16; MJLL[UN.0*#N.Q+'L&C6WXDJ5\FB?H 6GBO!&,!:V51$P0;U^PE'B&R6?A&KK M&HGH&'Z?(L*[Z"V\/2HS?:Q2DQI:?U"@._5\EKICHF1FD%&%RG3TU$9:7 MY7\O)C5?M53CQ;PT/+ZG_('LL*?I>?T%_/E?;VJ;<+1Z[L+@-N\*?,2I96&F MX/&_&=EBMKH[UY3KFCKM$PY9>G"%D5043?^%V+]B:#26L!?%0S-8A'VT;J== M$9S+3DNQ[=N^6E+C4AQV>\ QV//CF.!Q#)BK'HK?1"QCS]3Y#X/,-*CR_[O; MR/K*!?P=R"?0A/*_QWF%[D>__MC N[!10=8I6]:,D!V)_]&XY _@?![2O_.9$JS$9>/R7+&7F?=:/["LY'K_0 M8?::7:(;=&U=KFCHJM24UT.\O"C$2;B/_G*6Y#"RAR8KFCC/3REF%&E7NKD= M5V+(,>X=24XWM4R!VR7I+9.JS4UK--8E 8Q,G8_LEJ5)?+[F,#J+,]WV.D+H M#;"OV%D!IR.-PB+'XVV]1_.=@CA;MBMC= *[IV/8^=!:I47@(ENTZ )/KRQQ MQN!6HN4TW3P=N8R7-:%?5*>26!PNQY&D$UT;A/%A))J2(R\=ID MF9IVI19PF='SD415(SJ8EU6"AG+))U X.E(JSG[W-/ATSY0V\08^V U:=8I9=LOQ M=7,=5S$X$O,\OIC-[6+$9(.BC5;*8O3:JJ=OH*'@F9)*[:IB<=94:7ZSJXZ7 MM!2WER#';;V9(M(+S4VJKS"1S!I_N6="TR"[2E1A=I KEC:8G\L92 M,.'3SQ9T')\D,13GV3$?3T_!7UABG(X3Q)C IG@22W.I9)H]O_DN5B)ZO6%> MIQI=AI_/EUB_-O:7Z+&X3A798HDV\2H72_.5?E.&(SWL3V[RUH13JP-43 MC MB1HK6B3E*_O-(24*%8HAT$YY7,1ZW42!K,&1GGM2\8:BD_RR@$:2'4H8)*8C M8P(S@CS$VLVU,IG9+C>468\#L6I&-B6^Y>0\GHEI+M57J6I;H$2+R:%J:U?; MDJ2?/NGT.7(FDK,ANFV+!2+13Y-Z'HJ^Y^D"F>\E-8Z4Z46F%M'Z+1Y8*KY2 M.F"*I(B7*QEZ.\8+6+W17"U1P4]*%ZMBAEWL.BVTP)+3(E! ZO_54#F[N2A6^LB;R>V18.RT*"5?$V&QIN:YVBM5N,T%4UTE1PJXJ-UZVP MV= ]FPW%8M$03#N(30="H@2/*, UO(B<$-+E073!HXFP8UH "1-JL0 2!4I+ MV $J@(3!+S>\",GRL%T_; 5TB6D2[B_?&W"A-98 (D22DM "0.LL5!@ M/W M\;4XY7?,'7G\8]EJSOY=F3\3_/WM?VIRXDBSZ_?X*1<^;%WWB&D9B MQSVO(UC$OB_&^ LAI )DA"2T@.'7OZR2!&+Q;HS FKBWCX%2J2KWS,K*#":N MJ_939Z(A1%7AAXE.L;* !.KUZI$^G_P(/HE\E$U"B6 BO>8_-\*5,$KLV)OFZ.H(O M&[J>+R3HZ[P?L.'7SEY_1@W8UPXZSR*GS@^7G\<-KT6-/*>PMA=Q?-O.M^VN M$&)G40;>DP'GAXNO##Q!"-^M#'P?YM+HUA,8>Z6;Q]N;UCS+G9%@*'%5L0?G M)H3?U.5M@OF*4*^,+.!\-0GXMOP5V/)?(BO#5\4OOJCT1>67BTI/4,$G+5V/ ME3?#!7J00+4-SL"8\JO'?EG$WF-@^#]?%X7W6JU)7,GD8P6INNWL8!Y*+XK: MJ-"=9@JR4;T;)[EZ\_UU<0D'S4!T;B__-G[:U&U.0GIMB"M M(>,#A:BVRWFN%%6\NA@S2$HFNNU52PO H.18;KI+407"[ZI%Y;HXC4NR8!ST M1&/B7)XNRKQD8A))Z3J"_Q,ZW-.F1%5X4Z&J&^LG[B4T$J9S08@'>MK37"[C M"AGA7W^9Q$THE#A)E2K/,>Z76QI7P[U?6=;ZFMGWQ&5BE=(PW2]&[Z;YT7IF MQ*-F1&FFK,H7X=/P:/!:*UK'O5?_]C)/R#P&Q*\ROJY*?'_4^(JXI7?DPJ5W MMUDP^KGH795=Q&YS>^&GHBO0J);(^>A0J#13MYUXS?XQ))2=RG MX"8>/DT_&,\QKF]\G::6[\]AW],:7TR-[TFS^7'R']\9NR5)L)ZP>3[D,->:GA39]1RW788 M990[-C!?FZ%B@6M)L_'933YS/LQHH\I8[LZ+PPZ37YKC,+<CH?XE+SPB2SPH7WD\0>"R5.=?[I,_#E,/#W1N$NEX-/:X^97+/;3%4K MY2Z7J*SC%3DP6%=2P*HX"AXJ3SS\=+FO/_CQ M<^8^&@'(U+RI<5*)?+%YUUG/Z!#7KM\OFFJ#?4J=W69\#-#EAX@:JK(H*Z_K M>I&3FIGF((YC>(D;^D0'0M?-O/ZI[0_DWM/:BV6N-#9K8['7K:-E?<)(JU"K M. 8VQHY+SQ72\S(8+B;*YS$@^A+?$R$^KPI\LR?$.[EV1Z/S"T.J M5-F45.,]<.2Z$&+SJ&;,V,Q]/K).U9[ZE60*]$#RU]_(32+JFVL_G'F_-[QW MN=Q[6G-M-EB-N+E:4B,DE]US69/:>4'\U$XC'NJAW_]3=[$X\P5 MGA9?<1$.3UB1/Y6!3VM.MD>QL1 IA-)L(-I[6?O76,N MVN7$]7Z*N7:]XOY;(GX7(^VKV9K2F+/S61>-!G5]71P]A#+G-]=J=:DXK(S: MW'1^;[+BZO M42LR7"RU^R9P*HG^G:K R:5&BZXAN:^C&)Q$:9ORA5=XY.*A++]=*1X&*2XH MYE!"GC Y3ULU[^Q;]Y@%NA=O\*0Z6J;;W#+&9F-T.\8^FJ-\NY@5SG];I,N. MV&QBQ IL0$+U,C\/WZGL>)#$X;](_"8>]ZOE?=59\K5R[5>%"2^4;4]K18I2 M-KNHL_*0SJ3EVJ@QGD9G/EQS!H5U,FP,:,LT_K=PT-\?GYS+! =\^7^:#J=9O1IN-I[J'14 M>0GB'F?V,3=AYC02WW-BT3?'SAX&O%"V/:TYIE>K@5ESD5W1JUHJP98FP]1X MB&L5O+,4V5A1+LJ"N! %DY-RB@:(E3,DEUA$>GIE_;GJP(+3DL)/ M;>8;#HQ:#W,S5YF&9(FF37,R>%RE?E$(^%2%Q1F:B;Z.^$], MXZ#!7C;_GN[SB*9?%W] MA9AX9S;)JQ;KJ7=]+=W#7^H&^LD]O[U7KD6OX2#C@0V_U.^TRFG\Q ITAID; M)^+Y)3U/7Q'LW\+$[LV>'M??P+Z?P746\22 ^2*Z?:GE2:GUIB;.7]#*VY)8 M'DI.?C>5XP#B=4BP[V_D;LFP"\=^Y"L$VEE/.O[LM;:F?C/_7,$)ZYE2=\]3 M5&5GVU^2^F%%CKQ9'^9D:1TI?5 ??:3=[7)^CP*QBCSN!G+1NW%T,)IVDY\I MRDFA<(XQZK#29=KBY'R(SL>B8W/9$V]@;,'K9@^ M7,2C]].V+"H3N1YOK68IX.S8K[_1Q$T\\5(AI0MPJ2Z^9M 919!G+IU_:X\F9T,6HM2.AD] ML2A;L>'"J(?D;+?=4H5>63;K^!)PE 1/$CELY*1$Y-< M?0DL#]9+C+X)O=CR9^?&ARN/Z.,H<678.U3A^L905.OC-B>?"3))-#N2V;2; MKN1.)/G-_&/Y)]:E0WB-9:@!0:F2LL*&FT'Q]L5$"G8,(X") M^0F0J2D)U!!1BFGHHH!(4*H;; 9D7N2D MHJP;FHG= WU[Z^3PPDB6;LT"?2%=ZYJQ?"2R,%K-6'UI<2,L&@DIXX5Q SR, M.='UDH/STQ>L*[XY:X.U1 MHD[H'3V)!J4"*-$-I6CD*VZ&8^#P)S#.TN$1#?&(N$' ]CJ2) H,"<)H^"F5 M$\D/AL;)^@C8C*,DD;.,"TJ4\5@B0Z25-<16+4-D+!&2*7RY$B92.:QP1; \ M#,S$3IAXMD4$)8"?'*0Z^%M3,D15PE?#='.FXOETRM2M!5H['#D,!$O8KK; 2LG^S9H:=6(L!#4V-=D")=*P@ M1'V"A!L+0M!$ *CJD?#D;6JI<3 #&WX$0)_QJDZ@'T "4PS M>!EN.M@B?5F%:X-$BK2MVC 5,')4ZPN M>!Z(E4 8J,.-YRUE$-C#^Q0--*B#.'LJF_Z(**(,Q$]D<6ZB+7':]+Q#0#)F MGHF&$#74%$Z@)+1 DAZ\OKMS8&'84R2"X6=J#P=#4?4[$L$/L[\=TVMWDV]/ M?=_N+@F.3_1"M_=ZO.Y=6#R9XMMQX2J88RC&,@4#;_#GWH>K[]E$<2N,YJ:" M\[*(9M:)#N4QCFU)IENZ") 8NI M0E?*5)B%=#"\)$X[SD"VZ;K#>3=')MGRX5MF=#B8V!!X5;)BV.^X<6P(!>P) M;(S#VW=?MWG(92$1$Y),"KI>TQ2P$3B#F*MD+LO9Q<^ Y4!,>)A+QC:=!/8X M,<5@D3M/@IWIFM]EPODBQ4.+OT@,6"(E?#4BQ>$IPD='[7Y@>8L%%1EA3ILI M\)@.NOO1"Z+/W#D*1;2S> MCMB$PH>7/O&___.F:*\+>C9@0H1MQBA@>1+<"%Y_RTE+;J4[HH)Q]0VXW9Q. M8 A3B2"=_#=%_F3H8#CJIPMN.UZE_=BN8TFF?=6A<<7'0PP^MG C M/,($X]$#C)^D-%1XBYW_T0 M':N,J(SEI^L;)N'<]WV/LX3;IP_L'BQ8D-U^N8N29TX2@/SYWW@$];]4B#SY MSPY7 6D<^*Y[Z#V(&EA?O7)TP3E'-?%*<3V?)_(:VTM&2M$GNJ'ULN,!,XC\ MLD"R&9DPLGHD69XN6',H+\*!>550,\M!:!#:'PGK*93TQ3A%HX="8]B.EN6< M.8:1!W.J2KE<3].LP0:X'A,?/CVPXVQS$![0^R-[S9+PQ+$:VS5%K1H:!+)" MXG$,(P_>WF^5F6RLD6=I4\L4DDPS+%:S.%G_X.W=967,*)&),D7+^Z>\,*YG M"V$\9WQ_Y%TD6VHLUA6]BQ;-V22<>7BX-_"/*U8;K"*C1N2 M@-0'/"D3WA_:["^&0JM(M]G\4[P_4_KWG!99C&'FP^S:3688KDI'IR>?HO6HB==YN'NI;:X>RW=J<6,#)1!;,V8:RLTZD4D[O!1"2QAY /UT/M 95V/M%8NTV/ Q MEFD;53+R'1:+J3C8Y4Q5ZB-1QYL?K".+\K14D!B \PH M<=\<9OEA#?8&>FD:$W(QN;DTALDV;F%W2*85IL#<"_%*CIW+ M*-].%HML*;VTVZ?L#IUS@4"QP(US;'V<'.;X42W$&OC]>V0ZX(2$$(KPHT&2 M$= @PB?18)B,A ;\,,D,HW2('S+<_N1C1:'G4:4@=,NM=8S/KOII<]T\)GV5 MS&,K,XM5:7:U4M,/F6BI^ A\?43ZMK--J1OI5%1ZMC#&#ZL$H\0+1Z5OH%$; M)1+35(J-);@2EU22"W1W5/H.GNX;]"3#/=+UE:H9^?O1JI%O'I.^RUPXHZ T MFG;%4O*A$DVV2F4T/B9][WNUQUB#J_;8&#O.#?ER,6;4F\>D;ZA]QSQIM?B\ M&YI7GII&;CZ_IU-'I>]X'1^(H<>2/@VUZ>4R]C M!.Y31Z4O$RNT5VDIQM.] M_%/D<:E.E[7E4>FK"DJ43]Z7YETQ4(Y(.;/:7#X=E;X/":VIA^_-"!O(HEF- M3C(Z*J>.2=].2FZFS41JUHT5%\9AV^0:B]&=06?B R,S3W<+ ML+.CTC<5*BGU0EZ*LKV03$<8HQW3TLNCTK=I]*4G.==-L;.VWH^PJK"J1X]+ MW]4\&A>>EM$8:TK]Y"@\B#TLU.51Z5NK-^C!<+0LT?G[>WTQU.]6]FK M6Y:):&57-.MT\)GWO[JJC M 'T_7]!F3TFL*]KZ25RGCDO?--VC'[-YX%R/U99 ML^8TPHN-:JT:6!R5OB%]64.E>ZG0S;^4[97&MUW&FP7Z?>A>:UQT2+;IO M&T]E?1J1G -%WSGF/TN1UTWBAY5%9J=_"'6YY6P@C5>\E_^1!Z];'8Q"W4IC MV&@H<^;,+NWYSU=90(AAZL=OO]=8@>TM7CM,7 MA[.3@R,_M!"<-Y#P;"IS)!A.^(CQ(&)\AO'QXN/E[7BA@S%?S7L0,3ZW>! I MOA3S*%Y\*>9-Q/C>-F9^R%0>"V2?78P'%R-]ZGC*\"RJ5'/ M,!\M4A^-!"-)3Q6K>PL07ZI93V[_DS-NJNH^;>_JL.I/%;/_)J'[.:!/#7P<]6VC9!]-^!PFOG"S\##-ZFA+,QR)E[ MS7F!,EX-7?\,,/@,XC/(!Z.B%P6&C_F^YXX3?-CFM/+=WVEE7H0?>P+/W?(\ MSXWK+_0X,A*GZZ02!?;E?=?T>UW3*R*D+VR'ZCW:>6GCSW?,'?I$\PKL?I-R M0!:\<.M1GWQ.33[>:K_SE?03\NGG&^C' [VI3D0_X7^^X@CLK"T^#G=?562T MV9W^-KROE'G+H:$G_S.LRC/ ,9Z18;3)Q2N%+[@ M)*NFU!?9]![;Y[GR:CP&AB_I7V.= GBS.[![LZ?N2>6TW-L4!$BO2(B$>,H[ M3?F(<*T2V9K#,M7NS_<82W(EH1"HL6*-SHS"]?:T97RFJ17FYI0LX/^P6Y[> MK&_;%.1(ZYMZN[]HQ.CVJCM_S,0:M<<^LUKC4E51W+@OP;S4^>9BF]OY@L(7 M%!<@*(Y,L/FSX/2:(!;JSFR;,5896C* L:=D2N5INE57)M.Y7$@/&_+3/\UC;[Y4]I$12 MZ"N:)OL$?=T$'3\/@C]-T)>7(IQRFF %0 $&=-!6H!>'!J7C"E^D/\/MA1^! M7E/ZK< M!%B?/'WR]'#ZZ4?)\STMN[QVH!PCK\#]T:D\KE\@DX[,6]^)^HTS>-[1S\MC M$?)O.U)V0<"3A\?MB:(9 0-IN$?S NG&S#]"OOJ3H:\V92\@HN69XZ%N>RM0 M,XJFVA>K]90LI,9(YD&XMC=BUC[HJ:T9'O7Y5(+.KU/BR$@GDO'19PZ9-\&Q MG**U.0EMWYA%0V/[*6-J&JSSR'%//_94R0WGW+@;J/2S@ZHR[C4CN(<%/FJF M;R),U#_O\26*+U$\*E%.LX-E(MUB6H@5/761JC:'LHLU6_KO0<]S ;6HC"K<2@GE+[#0ZDI M,O^LDY)-U\IT]=%(=5>C<&^M?_PKC XQ;G%X;9P\Z4=W?"HQ!?#^A8 M,MSN<]VG!WTR/K<1.XJI#666"JVFHIE2^'S.$#+S)>X4'WG=BKV*X@L=Q>"D M"R^T<#;AX\G4&/]HUVM@V-5.8=!.@F+BH*D7=/9IKUN??>L>T\SK60J*Y5'O-M%YZ;H6FBDHOUUNP\$QUE!,^VG MUK1<#TUGM5Y466:7R:=V$T0.SF<)W81""5_D?//)_]GY[GQ5&,Z^=3\9QF<) M;]5Q./O6KU<+._&O<6U<+#3:K33=&PT?5I+>KV12WZJ%GR*-2BE?*=]W,[5* MWU@ID^QZA@W_-\>Z_F/@>-M?9UC-G $R^;\8&1B:HFR2#%[RPCQ0F#H8A;J5 MQK*95VEQD53+I?M19U!O#D*G()Q'4S?$TD#X&! M\XS-.+PB29RJHUOG#_Z4W69WQCT%"-W)&S[:9APY7Q &(-_L]LHU-.>M MKJ:]O]X3??2; A_#N^NY=^1]O;M;LZU\PB_F\/E(.%/+[$@P[/F(\8[R'&YQ8/(H4),B]FY/MX.9\4\QG&@XCQD>)!I/@> MI4?QXDLQ;R+&1XH'D>)+,8_BY;6:GSYB/H68MZ<0/RO.7HOKG[V/[3>=ZKXL M0'X(%%X+8Y\=#&2FD_6_OIQNF5\)DTW33(;Y:-?,:"1(7U?73'PF3I%#<:J* M.'PD3BI$4ET=5OWI)II>NGMVL'D"10'Q=D&M@"3*Z-:4 ;/XKX.?R32W!-&G MZ$;_+8+Y\H%U62+])Z'B<]!Z.7J"2+>)(8 M9?Z0CMT\O7F<@OGW><'2S?=FW>V]3A6\1G8Q#?A_09Q&<0GT$\U@?I ME/-[[D#!A\W.E%WR\%U6YD4XLB=PW2W7\]RX_D*G@]0_$4>P8>S,7ZVO M\1((W#U_=OO_#$_DE%X1_83H4,2GFA-3#1-,,%=%-;_)13 +8+C]E$\_IY4Z M5TL\(9]X3J^RZ.C5TD_XGZ\X^/+8#?*J(J,5!2.FR*!FIF%R$C6"Q;VGKKG+ MP/?,[KZM2/T;3Z \ QCK%1E.GU!H;HH+3OJBUG_>H^USY-%$O0>&KZH'$KN( M+B$GJ6W A.SB!I%W% )'@/#5XF*RV@HY'E1<8)R9I/%8[H8F<9D5N3S)'9ASYY7D?:H$^>/GGZY/G=J:D?)<_W=C[W M4H3 :H;>#;:#5!Y7-I#QS5*7AT7]9M[2"]T_?'XNX=0K4+!>T9XHFA$PD#:C M1'F!=&/FGS=?]WGSV;RR"XB1>>?(J=O>2M^,HJGV%6T])0NI,9)YD,3;+I#. MT?4T6C>-HEYB0P_Z(J#QLC3*?4<7RLRS+2CCX=AT-,AG']C9XW0>[S4K\NPI M-8B1/NJX'Q?C'R']H /LKW95?)%R8I%R@B/N9+A=;\4SJ$?/GI15 MVC9C3T MF02;STNI?F*4DP*-ME3OT-O"<-LMW/.0."W!5Q%.40U$*EZ:R-2;?_$*&BIZC!4 M:=(][F'ZR EM?B9_IHGY6_V3FB+SS[HH>O_A<<#0R?)4U./&<++4ZL-Q:A G M@90;.GRJ)L,_C*6LH(DO9HXX,1Q4%'3J*P4E^_LS5Y,^S;]UK6GG2#Q4GO:9U5TC MC2(ZS4T[YF.&XPPIO1PD<- F&;J)1D+^N?(W9[^+[,\1-A?);P2%V(LV_]BM6P$_W*)J<3EG_J26P[5HKD MJU/-- .?R3%]MQJ.9^C[_GII/'7GA8?P0VNP*'#])JCA-T>Z_F/@:-M.P]B/ MHSVXI7F'\L@W\-'I;!MDDFAVI&?M;B-:=_O:#6T'>$52M%N'@%V]<@^G,Q3U M%G@#;<)TT2#M1)0Q.-"&'"G.-!2*IFC\7G=S60*8S2HL=H(52)RJHUOGCS]? M(!XV$>[0]BNR?LQ%I Z)Q*T4T[@=B4](<#/6HZD;XFCE!IZ]19N5=^.8]K $ M_NT_[A\^M8G]Y"B\/)(A]:S02AS(''+;;U<2[@DEMU+YU'*MCW@B6!5PIF1] M8U?\M;_Z];%-OB;>N%. M(Z>JFO($C&_ E#"5J%$CW&)S05IL"O#_0(G6]_KVPAP,MR>XH4 (X@$:HB;< M E%#A&1*5B@02OCMBD;Q$TX>([(07M1X?QIPHD\V"6-0Q5)!(861SR^>[U_9^3F$:) \O( M;CI*>HY6%*N_RXXM1,R3[1]Y,F?#:7[*Y=@^RT0*_&Y((OHN M6VCO#+.&MB=],P2?04(2N2?9"D/4!$KE-&-% M_<8TBC50B/[#[Z5ODZ^9/_\$*:S#]G\%G<%I^AFI^8W$#(R'!F%Z&!/8:KT\ MC162B[M8,<:$C#UJSIK6!3-L]%KTW%%S8 MZ*%WD>66(GN@=8HS< J04,3]!< (8(D*!?NS+R)I\VT+T+>AW4#(1;RF,$F- M>%3BIKVG[ -3"T55.MS\]3=Z0+K_/AOMBO8N* S*%-9MO0K5MY+(&O+/$%8 MV6Z%:.P%5>LR[5T*T#GLM0UPV#W&L0@OLSGWX!L+0#5S!KOCCU,$8U%$%%-$ MV*:(Z(!^JDT?1LU5HUNN!\+W\B-02V-\4-%6FV,,TR0RM2KU6*GRM8Z;2I5R\+G6J=8R[.U M3)%M$R?RR^,$CHU#O@)K#H!O61#/K_20'RR2%@V8DC_<\Z^_;0,3\AAHI@&B M5$::/A%5(&5C0J6$!1C"0.LV]3IE5TBLCFJ#.5LC\I4T(0K=4/\5GW_S(D.]HG*Q;_*\# _RUVSN/; -; #(T=1W+4&X(-N-1 MYX3?DC%%.K*34?IF:>JS, A>,([KX)=PF&&I"@+C33^*3Y 5&!P*02H5>0V= MSDR !^I=*)#P@VY$7#)DBS#O3-ZT_SL.V8[+@ :9";C &@,L'/#.L!M,+4'Y M 96M,/1%H$P (CA%0(:6FXJ_TI61 <.0I60 GUA'4[HYQ ZM(9(90>=P/ ]> M$#9;+?(5%/!YB2=*Z2IH\,U"*6.E8M<%'L/8XVS7%3NW'UZ-E0=!D4<::7B_2B,Z$[3[92*<[@8O-V$Q_).1:% MO MN (@NYL3L;PD5CI, N*01&W(*F;PH4S+(]A5+1 %5>$<<=(Y(+]TVR!V(NW@7:%'?B$)2)ME&3C97I/25 M#FRQ>6HK!D29ETP!'![ %"FN#.\P5571+!6H(943-1+>@3\ECK=( 6;F-I.! MB) 5"@<-, ! >"B:V-D,S;F7VPVVW8JUK>"B]L!D\A"]69KFRWA*)8&Y '( M'Q*G']#GX!Y3$XA%"CV!7#'LF*".J6-D2B,LI!13VTZE# $+!,';J89$SSL9 MKIC6"<<3]:$[X478-8XZ M4+.&;URDJ7\* XVT3,K&F.Q-FRX+9@X>-\&[&H M;D\H[,2_788Z#SI,PX=1DS^@\@ KJUMBS>\%M<+[P?YX, G?/!O:WYDKP(,X MV(\P[:9FVC.A0_[]GS<=5+B@9P,F1*)B8Q08:HB; M!K@1O/Z6DY8@DNV])IA@-+8-\3EKPQ"F$D$Z^6^*_,G0P7#TWUO':<>Y>@JX MX&;'V*S46?LQYSMR/G=+ICURE/+K.9\MQ.!C/#?"(TPP'CW ^$F.4L-;[/R7 MHR8:UM;_ZM0SSQLU+T;["4,"ZV!'SRI-9_NOW%\7ZH^SA#LI.;!["&9!=OOE M+DJ>.00#\N=_XQ'4_P*KXB?_V4/"'C*W,5;[A=97KYRQ[7G4+WNPMF?J#3WU M?K.U88=QJ?I&++]NNL(#F_BO2Y[KEJ7I&#M8>4DB,79L5;A]9D2-%7P\@B4P MEMO)H:F+,M+!PDD=$>HWMC8"IX,H M!ZPOCJ\5'ZJ<)H+\9CO8@;X+^+8I_%ACF^9D/)^Q=9-;R6PO,ZX,/Q,U/GS5 MT:@QO\[3[F!&=3A*4!B(OL>(&U&.#$YR8,=Z>_@L\MWF)=\BC*&^, M:@L+Z17@2M\[^'8<>! A:&$J.H,GF9X0<+$$ 'W$7W15>ZM8O%H('6F5/!>SN MFW,BA+:B>6')6";#2HCP=SC#CJ%P5DQ>!S\<.PO89P&G1E,X*P;(68+*B9$< M+,(UG?T2"RIOX6!KOR]LRT;2#N[>2B\.Z!T.%IWW7DY^=_3O?P3M,C2Q3'+G<5("C!4XK&H*]_D.*MMZ#A+>]:2M^ M7>^4<;Z-B>F#QQ-K3O#%P@?Y3L9(>"8-!PM!\C*;2@_3= 20B-HJ2+5%_#YN M$\AQN>I[D@X$"HX4 ;Y /8J&M"*$A)Y]AR,O-4<]O< $FP,T 0$U"-N\&][^ M\4C^CD7?.-!L$XD=5[*B:I;,QIE''#F7LW9G =79F=LTY#G9BH-M\;O:ACN\ MHY;>;[54T!C$4F,KL8]:)SD2G(2%DS@A_/=F'_FZ.7S$.5'P^P*;M"!"[ F M1I!$WN+6"RXDO<6PWPFF\KQFVL:%E=?DCF)B^6.3*-&5G"OZB$?CQ<)"AIAG MMGJ1_ )8?@[%QP+HN50[[0AHZ[3B.?_#M7@'Q$5@IS].!;Q!HH8 MLT2DXT$;<%A1T3WLP0]!RE5KT0M\6I>!2%94C% (O<=,Y'@!PPBC5AN*AK8Q M-!PU1W""'RHH\*F,_R$I%#)GAWE3KN@@K$:L Y-9)43!3(Y2 ;L64N M%6_>Y8@T6^?\)L%VR9P!Z>'3$&Y%8()]+EO\.$_^8TDD*U[.Z;K"6Y1 \#W$ M[R=G/#A5\RAA!*WE 0GB[6]M!SSI'C5- %6$E$!J3)!$)%P.#343BV"@RC#( M$!&3TE+#3BF.W@QQVM4V5$*^9+)L04':GE>JP>2#O1JK5J;&M=J'8H%+Y%LOBU!NJ5^P4J%3V+E7KL.T. M2<1IL15X)$L>Z%/P?*V=RG2*]9IWLG**,E4RI=41/;#C^6+E+X^M+/>WI*3L M2%EC KPPMMSCY421I%5 66(/!.<(B()((@3;1U.$?+D;4"E\D/J-<[JM5#T) M:_H1TNR@ AZ8LU#@!2)P?I&!9#TNP$HRVZ :IK^N.0B1/?'5 M_QIQ_]Z3 QN\V,? B,8N47V4(6@AA''T(.$N!*NN9_DDFU$9IA,1XUFZT?SU M-Q8-'E;=< X2_H#$("+#??UF$QH@R!BM%#$61;)]&0C@R@ /8.%&!?4(RF (@5SAI98C\-N.*K(XL#],D MTGB26+!9G17])5$P^[P+WHW#69:1X^2HVY8JR#73V$8E[1"7G1:$=C:U5+2I M-0K>.P07F=H1O<2 P1](1,R]8Q)A 7[5 EUL.\)JI$/F%:>9[D;!_785)2N0K MP+OX.AHAYBW'8=?C9.+Y^31$.R>PKK4M\&U/7S>+WZ/ KZ%GM:3?Q:,=MM-% MJL3>1JA'Z[-)&ZJCKX)/S.430WOS-0# M/>\GJJU>M%J::TU\-ROY/'X$8GF]^PJI?<9%#/H@E>)YZRC!UE6(*TJ$C:-E>?P)NRMC M1XGP=:J,G3A<<6(\1\EJJ)9'SWD\S2D4L+(<:DV/!UHX&#ZL=G)3M#VI, MG!,QCW6-7M'T(,RNUDJG2]_=]>\>/\+H'T=,OWRO,X)46D_GZU6[)\KENX*P M_/4W$0R_@)A=KK,.%XYRW1Z3^PFL[TA@C?H)K'X"Z\](8'TQZ'LLP,TYU71R M^<$B-)K46]U0L]:N*.7EK/#8!),N^LL"Y&;D?)PN*%,#K=EV.8-RNC3H<>QR M$#H<*=7NIJG!,"JS:+30PVIGW1R(*5#F]/[(A^0TE6OQS2K;8WOE./A3G3MF M#",/YJQ)C6J]VQYVI_..D&PQHV$BDTX-(H=S1J-JJBR,XJ%IKY?HK%IRQ(@) MXT'T<&15J,?I[##6HO.-_)";%VK5L+@-251\DI5VXQ":F?3046 MN$?,P7^6BC,@PMJEHJ-4@>CM0>Y%AF*71D.C#I/PJQNFKD MNGCDP=L7;+?<-%+I(9NOTBU-4D+JD@&\TX>3]I(E)A&7UH-IN90<"&*T7QB' ME@.&.1PJ&LG[VN)>RP#F*Z-T)QN*/W!DJ+. $Y^LX(KI+YVBC'I2LC4?MOO3 MS%2.=8>*SFCRD;O*Q\>=]!3%59P,YASNS+F;ZL&$P1AGTYW__F?X]\P!@ZU MQY _[DX T'!0#Y%#Q-_D/$ Q=3!W]']NR?)/3!-M?H($4T+U$5XCT1I'+K'? M-^-3J37+TQEZEIO(/910"^-3H7JK?=V:Y]EB,.1)4HSF;:4%WU':QUH4-@GL M!6%]QUL*==?^.-18]('58&C.6UV5RGZ]M0Y]G":UA9^OTN?2IJ[Y\;'_2%*6 M#DBO@4+'\<[XCPD>$CPA[F^#;O=CEU<>$SQ(^(GQ$^++I\C'Q]GY8SZ'D55/V6P#A3)N! M10\U$:8I(&F!\$;PE)RL!P[G?0_@3BH_?!#Y(/H"X>?#R!MDY(YAO7/7O"+A M+TG=RC?$$9AP,!0Y_7Z?/8QZ0PB/A,BLNRQAYL:YU#+\4$]&7P==.&?X(+IT M$/DZR/-D=#*5\^R&+2WDH8[.[]92^)#EHUK)K8+.VJT)9PK@VS:2PLE?1L?G MWM%EXND^.::9,.%#K")-EXF'64 MYB""38+(:4R"-&5MYVYB7&"ZX*3:J'XWC"NJ0>6"@YMX(J#5^!F M78S \T'D!S1\,O+#(7XXA)@9OR_;SG"IV:RM8(\8&XLD7>.UQ_":SL]2:BU> M$Q?A['@0P\8&R M"2[XCHC7'!$?:GZLX <0VP_:MW]+XR)\=5MA'DO-7#R&L]/&;,+F3;V4R\Z3 MS3$S'B3);8V;4.1K\AT\X['O&1*5$UH-OM3V070!?L=EP^A'.*!^VL(EI"U< ME\504V3^6:,!=0<96LRBWI3C5IG0,/G03K93N.H[#O3';B+,UP3Z/1-_.,Q< MN!H+_C)%O@^U2_&Q+AMLWB,V/Y7 3R6X-F/CB(F1*.I)+V3DIW-@6MT)>69V1T>'<.#=T_ZD9MZ*&B%=F M"%;S\N.JJ>$^U88S ,> <*-EV _N+N-:>,5ZP6:]^,4])$DZE0.X*52:DZXCPTG *&(NF'U(Z:X,=J^U)YZYW6IL0LX'NKCVSD* M1=+0&EF=LW]SN%FT]EQU%-R(&UABVYI]_U;T*9JS.U(L;@FQ38]HLK2*ZY]X8'2=\UC_'C9AJP2 W;(NVL5+2S$O\_=<9J(+N@HKWD5#S2GD1;/>:R#W%=HF=,J#&;-A>EXFJG]_!G[B&E M.5W4VZJ&.*$NN]?); 1%(.22%*4>)_>EA)KLSBM#4\VG\\QL#)*"#D8/)<6_ M;XBXQV0'TAQH""PO,+%YW! XV/33>NA;Z1UKJ&* 4/* M-+OSH22%VK(\3L67O_XRP2.7_/]-80M7!"F-J>V&D-D-(6P.1#,/LMI2<9RJ M2B)/^B9:VB5(=8Y]32SF%U4F-=RJH"&"[< 0MXIY1EO /T")NL5I/A]\"Q]8 M+>H=7 =DI_(59L\,O*0R35C7&%>5).Y.FGT=D80-#J=\E'-2W0J_"T M%& #0WVJ/\\ (+'/3D_7!AED5>@_)XAC34SQZS'AP0CC'A>/'!".6@V RR&1B+*I] M>>@5^GW12K"G;'7[?+DAINAIQF@O>D^S;%,MCL\E(-/)_GU$O4_UNH%I8-#L MYQ\?*M,F^,V^@+Q4 HM.AI5AGE\(;"!=+=6B,[XXJYU-8N8'LJ&7'LM,M]R1 MNPUZ''E0!DM,8,-#4W.0U _9(ENXD/^5;K69G(%0G\,B,C M4M=*B'^(R_1##E- MJ@4U,TA'#=IDW4VU@T4.YV[S"BW&[#]3G$8&1=!80][U6GFZ9'E M'B/IV@HM?1/U691/&X0,*T2"I"R.$*,$D@MG)_W!>=)AK M8N#$!G)JC30RU\PZV_M^?O(*O^34A5HKH$J(C=7$.K8Z],+/! M5@ZA!M(PYH$PCA/J5%%3=_W[N\DTP^M)8V(6ZDLL"(^?7!%MC8D$#!.-6\KN MF^0O1N7/=$1-OS$A!Q,2)\K 7# A+$); << M^L8='B#.K%@E@ Q3L8GV"1' M:8GP*;;[(6XT$C'N2,H2/"#CI W\@5<6"&26H0=AH_O? ??SDBG@0[T9R%%* MP=D!\ IL]6@B;[W?E@:B?;V 1QCF5EK]X?>2B&3=^F'&33$^X$M17L"$>+_6 M;@2<7B4.33+_#7S$.4GX^!O_"#OBI]307 5PABHWVB4UY&BW MNYZ'RTDZQ#Y4XYUPHKTT0&J$CYE/6-IC-]/R O9(8"0^P;_\!/C5XHA#*I!@ M2>S4KW/ 'C! 0P=&C@.!02I%#%+K-S8,',L.7;)87F( M30[P%#DLSS9I4EN!:&I'J(\Z4C"#556VIK_ ; MZ4XD]]8 PQ.)8*39@A^8A,SCFL8"+\F/)9F^0 02SA,F\YJ&CKD&S\8)"SR+ M)?XYT&Q$#5'*$'9NZ\"#E*[MAL39#+X!E@8;4S"M98(1BO2)*5T22MMJ3M_*RA$=(THAHIG%2-=:9^) FP 8:[*P/P!K_S$6<*P7,N MDGKBD6JK=X)5;9L>!!O"TV*=3=),+<;7]XQY^SW4;XL8B!1VK==*7L7[-;!= M!!"RP&1/ F:_3K*[54V!O^$]RE+>OGOW'3>V&81I,1;]MS/'L07R,!=GQ8X0 MD,(>P)]_A46)^_<:_@.6C_,O_./0*2\A3L/78"9_P%)2)6YU2RY&V/2UN=^R M=ZF!B0>3\(U]28:F_XUO-;BFW9DKP(,)^>>E6YS.#"?N1AZ*N&H\6+P2BEG0 M$(4PE@G3RWQ3YDZ@!R@'.9MQ3P 4W^W910$(C0(SU MF/,=N1ET2Z;]HRHZ,6QO-201VWP/9S;.]#3'X I$;X1$<\SS ^$D*<(2W MV/DO1TTT;,/\JU//'+TW@_\&.@%^N,L88.$0#; N&_RV)#=?KF+D@-06S\"^?._\0CJ?\$HP$_^LX>$/61N M+X_9+[2^>F9Z!RV<ZJEJ,M+MH6IV$E57>D ?#Y@!_Y1F*1@9VA\YU>O16:ZX%J;EAW&X(4VX="Z_'(0.YPPP M*5WG [U =[:4ZQK/J6RD/H:1!W-R 8&)+!?AR52\7W<7@6HA9AJX*_#!G+-^ MHQY@"X,LG<_5!*T66/0;P^4@#! ]'#E, ME7N)YET\VLWDM5X@_E!I=\NXTO[!R'&5GX;3F1;'KC)\CF4E_8E]2H%E?3"R M=:>N4^O<4NUFDLF"FJA55_WE3G 0YE3B-*/1B%LG6_B8!\Y M'"$W.G3[$ 2^?"F%'A2]E=>+2/007]NR+#WP?L"=TDER,8^O@XG")FN2XT&; M6AR"&=^*J_9$&/Q;1XBJ*0:BF,@-.%I'9 EV!T4>)_F;NHC]1+R#(:P!3P=: M]>^77D0X?/%!H>#GP9NS3+,&M[+"';!=JPX!]G:\8XX^[PUA0W)F.ZTTD^UZ<.HN6ITR_5 ^%Y^!)9LC ]NU_ 3))@2N+)5#K9 J+8^6PKR%U!_&IGM3I.@AXL[WH&F$-W%L$;J@*+S T$WV=ACWQ M=51BYFVL)>MF-'8!.%5'M\X?[D5AZ\)>$%:=O*6;=TV90^5''Q@@AN:\U3%, MK1V]K7A((A(,A5^J$.12S*[Y<=A@! 3G@,3Y', 7QV\MPV\)0'C5XK*-ZQV5 MS@UU13*-?97^+>46K('O*)_@MIH_=<\^Y&/! U@ JS_J(\(+B @%&<;'Q-=A MXIU5I5Y5#-_=*Z(/+BG%6B',+.))A/S__HN)T7_ HK+^^*(6$B]*XA/'9]X M"&NOA_\>[!ZL#DP/Y)3@@TP8#L8]4%KO,]"R.MGNPN9CK'#N*D?8)*=^:P@? MLF(F@']PTH=L3/1_OH;JSUMA^"AJSU'9*7I^7'])X29+@_IEHT]7EVGK\+:0 MXZ[71PW'A2_*-5A69XD+ME4)HQXIY/1060\:>;73[[9GK!XJWW6J;!\'$\.X MR67B2!K99P79=TNMV&7HY)UE.RKUB^3)M9?#>\U8]^7*U\H5; QWELH1<=*D M ^7RLE&NL[.E%,]T!*X38%)XX;A>??1(VLX5V$7QB[5_3BETSKV=L\DAW^0Y MMVB:: @=$4Z-NZ@1;U8RD6Z98<:%<4@:*+WF('(ZX?3=DBCAVSH_0\;X N4[ M!4I.,;5COE-_H*6&=+7>-:O=/%-IC(?-!YS@<,W&3O(ZC)V?&MKQK:(?*\3$ MQ3&C:'*?2)=J]XM!=TYG:*8ZG:XGD^4@=C5&49B^0*/H;.+IA['D[%E[-I0#.:49/+5SK9Y2".95;H[>=9AKIX]-G;V=R#>>P)U]KU+0_JVIO>1[;VS- MJTUBO@H+%[OP$R>;.U<27#<2LJ+.2XH._'Z88E[HE4J/R$P/:%,+5)5RJL+F ME>4OYS8M$E+&"^/LFR2G24A_QRT')A*DTMUVL<:VVU2F7DT7:ZE.L5[SS@6' MNDSET% S\654)OEZ+R298JWKG@WG$LOQKDB'/^_V1>H@($BJ6.]0;9R92>[Z M%F4^>$-Q5!9)W!+?A.45354LVMN9O(TD"><0.E=K\177[4V9FYT>2%:+"?>& M.+PBNS;K>.D'2YHZLM;;=OB4:O,M29!YL,O)R=RU2.0 9SIVJW1M/^*O- M]26KJ\(6 OO-K8X0(:E_@ZLT3?;O69V@#\_;2AHYVTEM=[JM);%%N5T[0F@] MK;A<% UH43>Z*".U^EQZ^8DF.HX-U5%2%KT[ZT%Z#1GU409@9?\B'.VR@_A5 M]^XQE0JPH;',Q!FES<]RN)1@F'ZAS*L(RC[E[-?KPK?T>1 GPFZ]"JLYFOWL M(3'MEMVR+_-95.OB/PJ_#1L'-=66G"2B2P&WSXD M< :'A1Z2P1:W"VC,\$.;ZD/'ZJVQ3T =N**:S$DKBJX309$_D(?)#_Z*/5AYC5E(3O!00&B8]P]GOZ_=L=7S1%DL.40>+P)@HPE[=+4P=N,"7+7()-B31 M(DJ,2_@=C'!2..>970T1+A>HC&6 OF 7GQ8U1Y9B[G+=3N7@%\)LNJODH%OI MXC)/06K'@7 '/D;D?_OX 'KE.4>%[RE:H#Y)5VDM"B-!! +1B>:#U^&_-BH'C$3L\KLLEC<0M%"R['0.;,]B+H7P+&!BW;O6YDXA +,>>MSR.':'F$ M*5&R> %DC[X/:4M=$EB8DB$&0+:)P"2X% [0.>(TF:A(4;;ZG:JJIF!%#GS/ MXT*9SA='%Z%Q B+FCU4DR?9O!6!A"62H\#J1@USD)[(B*>/5\^N&[8EH%,#* M*Z I*TXR5C:K'UO4!OAOF7IOB_8&",XM^,"$&W;;909\8^X(/>'B?5LBPF3] M(H%MEXO7B,6,)EB-^<:*(N#2H]8>G4_;(;:Q+NH[TF53I5'?RK(ADM%(M(V) M+<>!ZA95TE]P8_=O%P.*$D2_75[+,D:L;6.%8.EWK(?!> 48J;CJ);;MG3H, M %4 SLC42)&DS4( _4MCLK M^&;[[0@9[QY[[!EQ,N9R[).Z+6Q,=KI3JLUF2/BT<9Y75KT"NX:E3>9V<4A% M#FC89"*FA83&N#.DJ_"%@<8V@6+,656JK-<1*6%YXB^7OK#*;E@COZF5ZOM\ MMG)_(&:Z[<2$1MU"YSY;>TIRCY]I?'KD]1F 67WD.&HL<(NQ5RERVP[O6+GRV*[,(J$BF@)[ELT&'[!>0,,6-@_F<]\/)KX,02$42O3+_"9 M85RK<;7.HS3O.1<&4;@:8G]?-:&^/+A0"=M;W4E"Q4%.Q=;X<=Q4NW MH@^BD5CL@9V-PG%4DB*Z.!G_^AL)1I[O7;LCE&U^'8D:* V[5#1&'+EPB+GM M=+BC+>1%,/*8D(V]R >Q5W_(WD623F[@L<_)Y[#D(4[ BVL-8Q*]]]Y[:=W&_]MUF6K_VW1Y+7'KM MN]AC?)9>%065YE9M(Y$P\NEI!%>TB^Y78(O=I^X458KQ+#?*!X1UY@V;#/38V"7<;@UER)J1P1;N#.;E692S$@NF,+@?GFL MHETN>IV$IW! D,M%MOTX$A\?FI5.9W"THETB MH?,CI5HJ=5?J8CF=#%:]96\)(P]VE);'+:-F2 _L*C)IZHCMY/.AY;':=ZV' M]HQ>J5Q@.HO/VO-JYR$M<4=KWZECL\?+9C_'BTG0\-Q5YT3I=%3HO.8XVP$%OBH0=D$DT9 M,:TAM>_H?"$[KI4#ZQ%[WQPP1["_BG.Y MOI+%BSU1]RY44C]_5PN!C/I_#05VH*OGP2_(YSX]"W5B!\T7T[%I!7Y5-^=UV[(V:HGEZY/ATF'A2+0B;<[R@-.A16D9$5"M%AM^G7MOO.VG9Q M,*+]VG9>*.;EU[;S A:88,A'A"<0P03#?FT[+V#"YPH/P(-OWFZX4OJSQKP*OKVK3[Z]4>!YL_T0"?TUS>*( Z29^ M\:DRI+Z4_O::P]]9:A*IB\]?4FKWA]'!IZ38)>.^00*S%E1^XPOCN";Q MYX7=N6\]OTSO.V'S3=Y_ X?,;[^.#VNBI"P+A5R.EP5<] +,')R'>J3X4-7 M3X5*P*YFR]S0D<.,\.L0&+[5[EFK/65=F":711"0+E#[!9H]Y])(U[[)LUOD MOF;ZO&;"-S%EPQK9VG#Y,?V4%P)SI9"-#]AY?!P1)P_L4JW;A8K#-W0X<2+] M=.ULY E?ZL/[ODQWJZ$AE1,%UV5B*]9T'1;53W7!_-B^KQ9/H!9M86'?[87Q M=2PQK-^.ZS:95%/N:_;BSJ4[O.7S?K$V_%E#OQI(C996J73F)IH,^=Z@[PU>B#>8VRV=MU_,[-:WSR[9*_RZ\P4O M.GOGRM*^'JQZU8FXS%.C386E&)F_@VMIPJ]37_O[KH+O*KS'57">RHFP!E01 M%V#/;TP3RYI/KZK$C<#5B-[$7FS+YPL;KKL;S M97PNAXMAO2J_^QER^(C['0*(X--CE$TD)UTN[%.ISE>C.3Z77Z)Z3^* M.W-]M95Q-I,BZ_3N<+7/\)T$;T8DOMI4\.V"$PJR#6-U-GS5PD!PA%EA'0@T ME%[Q$;RFL##.M9B84/#*>>?+MD%B/I?6L;@LTPAIL7XV8G!/,BF-C(\XF6L) M/%S9I4 O:_V/,LLI-/]C\DZO9:,/.;:L22KJQ(9:O]G$U V:/W[-X86\W:+I M.NQX/Z#@!Q0NT7 @.;3[H^UYY64D)B3,?F':%D=*/UN8W!72EV$T3-M:V4#5 M?I5=I0-J7UDFZ=F4-$D HR$!1D,BY@<4+C2@4/M/ZG(<8/?M395;<4[?1KMU MGI7?[JZFW#_8$J1A M"9 C^DY]>EBTQIH>ZM9K)681N:^$PXTQ;M\#^BYR$X_$#]3=/Q^V,MOV.KJ=*HX?!_2 M*QK1B0H=U8PU=.P*3'=6B?63^52.SC3*9N8Q7FD)ZR5N,H<#Q&'Z)AX[U'[7 M(6ZNW]E[047^AS1$^WL0([V,;F[?UY307KC3>7"_!:%3ZE.@1COW;ZQ.@P>% MAUQE0%554Y[L,J%6FT'9P/QE@J[?3/.S6KR[I)TCT5S57/ %ISL,F*--J%D4 M*Q1FO6*F.]>KB5$W/<_G8^-??\/!PP,NIPEUT%NT!-L' E_ACI(P@211(P"& M)*Y!:ECT]%J+2T,AW\(KQ84H8$+:*SX;I+ SI&$Y)*UN\&!]MXOFMG(MIR%J MAT^/=.?\]5?LF8=T"#ERG*O&0*R :I[K1,WP[6J:5H3$3Y\+8?B9(-D;%$Z+E? MQ[:M0-J>+I&$B67_55OI9I+#-TH2%VC3)/5@7E@\)MLAH!^!+@*:@B>7$V1- MYI#WA-.=GJHXE65"1G.B!!\TM!"!XV!^0"W2I!5&HBBKIKUF4BM9M;8.*Q+P M.D4<&W21\+.@]1"WOT[,#4VQ)"ALT9*DF(PT-)* W1S.$@&@O'&D*RV!,:;/ M(<8_0$?'Q@&&W\'(I3T2HUD3@31MWK.QA74O$_^C$[J5>3P 9C,E0P_N>&%[ MG8C_[O3S.MZ97!!U5>)6M\00L:&U<4+VC @F'DRJ^YU57=/NS!7@@9K_O.3U M?VTGM&>-L%#$=6YK83Z4..QVAO_]GYU>;AN*P"UJ%>W6<<1?\M)2VZEVWM-,,%HS ETWFZ<.=*B/A&DD_^VNM4S=# <)4 YP-E^ M9_C=_N[DL=TFN&3:5SO6V1@W%/4VQ& OSXWP"!.,1P\P?I)#]? 6.__EJ(F& M[:1_=>J9HW8J_AML"6!(Z8\[5&-_!8J7\;=(E 4$8, @T4R^]>_NU0!!1*D%E,B1-5;TC))%*KN?F_=I=WN3<;# MX>0<=M(Z[TTGT_/)>-P][TPFXZX[ZK?ET'WVUIB5?IK*>><7$0(?H)61O/,3 M-TM(JX?>,>C;90+&;+^G'MH-%:T%ZE;(RA#WN#]VPCI-I]AG+EN+_9*6TSM& M*OJ0BUV@)X^-"?S-9Q;"^)-/8#^Q.;!#!7>+TWV(XBOP08Y^CJ*OJ)G *4D9 M#_M1N!5;),.+)K3C!KT"W "^*(L-Y>:6H!P74(YR*)-#)?P0A[[SR0-U\B0_ MN3;,E/T;XK<\;)[6[@R/M=8F[XHG01RS+F^/NUUZ>_[K]ON*7[__IDSMXK$> MV/=@?QG;X(O2=$9BK/ATZLS\)(UBU(_@N+HIV9L3N>5$3><4UHCF8(Z"<06F MWC+*X$]D=HI&+;=!8[)TV!ZD=#&P],'"!;L#&:"#&FG9H#_;;_1'X#@'WNJ' M8*NCLR'7ODAF53^7WQ;PZ[5% A&N?B;@ *Z_@.VN?C,!NU)>KGVL[>+U'4K/ MKWAGA)H R&OUBQ0H5J;Z0_ U\N.36"S61]R'\H*$KR.G4ZG,/@!J D;Y5ZE\ M.5B"49Z .1R -P) ")&6@<,_NA7*#,_!;9RWU1:H6>TJ(%(Y9(TP"5*R45$ MTQ%-;S+EHX;Y6U(6]/'K2HLR]ZJ2%#A+ EW0U3XYE.AFO*E\"IP.L.XDQTD6 MJMP%CI5J2*)T O9T+-X[ <0VC.6P#>3J*DP:],D1.1Y;E]X"X]:Y? ML9(>2.+@@0$.49QRS"H*^+ )G)L.^\;YK?FE"5XV,+Q/H$&JQ?0J7RC,KD B MD;!ID+P9[AH 'V9X /+AWS@7,EI$&,E&806,1,1,;X1'IK#7%!:Z,^EE M[);@"V%A/)LI<^AW-Y9/.EX-.HHB-'D,YTT#%NG)Y@CP" MKTL5+ E' NS *9$=TE<47%+8 ZO94?)FL$:$$Y"1E@",^02<"#T& K+$F$-](9A8,+.JDV.@PX1A,4E XZX2F' MI95S@ER"["L]Y.UK5D&QBH2&2IHD\,(CQD)R5+(8-Q4>\>9S>\G4B$KBKLEO MY3YQ]!7W<;UQLAY,#. \["6M^C7XPMRW@0?G/KMJ+Y0R^_+^1&FREW>R89JT M7[9LM[@LJ.>B$,A.V?1L07_8_L!$)'05D&N2DKVHC-0_V*U#?$5@1:]K4%S) M#P$%\$FP-+6M<"X%FKA$DAOPTT#[B7[ -PFT+[F,$*]9K$TV?<]@ZF%U^;A5 M':O;#;0*3%H'LLJ],W9"MX$V)S'3.%>*7E&5#W06@1U!PLN$;,F>OQ1@QF"\ MC4@>OZ;K!!0\<'ZF,GK=%> ZBSEK6&3J?:CLP$AF,8"P*=D(14S 5+,KY@_> M6:6"S+--^&@ZOTLUY!&\)>#OP+_@[>.FB2^=10:?NJ0YE'=\C2,N\898:/55 M\M'8,V?CT$F _,"2=842H(F/$A")* )X&5Z"5LX(/SR(_@XT8XJ; 3X%O& @ MRVDWM5VI[VVU98EGIY\,\Y_<8[1+OQ5%&2#O. R1>C]+$GKP(/ J;+9U]'>2 M>G@PNI\#[0^4] [T(EYF.]UVP^FT.KT&DHLR*UDDO3^A5>0DSM"E[ SIAWWG M!7ZKCE=ZJ19+S "QG"('HV8 1&M+?"UDD*T9_'"8U8]^??>AXB/GB[8DUR,( M*_H!OZ0-X5Y*CS: G-P]78U51.I.8.TT]K\UG)-_-IQW'TX;H S(BFNL[COA MO(33+^\;A8&2/[[I*3+3\B<=,"0B_!38.LT;)2$CB$Z:&Y)<\*R4QK;S;)9-(=NJ"\A/8$GA56MM\/X[2FRD3VTH*T3! M+I&#/)G PA1,?*N,& $7H+O)@YX)\D2 M,#LGOH3?A1@EA#\HJD3:$R16 [$>)K"CAC+L0$K]FW2+4(J;]]1PI&XPW2A' M+A15HE<#+P)_ PQ-R7+(EP&/;?D3I(>?:@O3+XY/6@-D-49.E(VK;,GT"M0. MFYRO67BF>"R2O=KL]IS_I5=\%O-%T_D$TI& 2S87YS#(#>$R^'3*$0$0:SGX M4!VB8(,J\([ .2#,MP(5 Q](Z!5S3&5B:%S,'%#E.V'"F M4N91*O(W^),IFTH50*:0/X!A+=(N28N3"H]8UQG1^TJ<@Y*[T)=A#31^1)!$ M*@U-DA499/*(;2HT!LB&@NV1X(N6(DB7VD"\PFV .LO=(Z8G3:>-?/]*M.;! MC9FXE)Q_ )\1XQI ]R1AO^ 7<-P*#+S[)2EH84K)7\D*5[NDVX@ IVC@%$Z( M86$T8E +<"Q*XKU&X%UAY(M]?NH*%#D&&42FW/>VA^ MD=E%I;PPVJ_ 2\YI0X4ZV##W$^H#A M'R^5C^!Y"D'(5L'R"%-4M9_: /-KCJ RG$_E?/B7"'9M.5$0.-OD".&[IW"L MJ*GA#8* HXR\49,V,&*(+"]"M M"XA]%2^:XT,!^"@QZ&7:NO*]V6DB[T0;_VQ^8=+T0KOL8'#IEZML'(80OTOJ M2+ FYW?O_Y7;YV#NW<7:RY\'.QZDX%<\D-#)0:L (@-4"4Q*^R8"CTI^E,N MO/?2%P(N78N]9&<1/6BBJXQ\Z&(S47BD[A15V#OGF>+7Y M:L)\E=JV@8ZEX&F[(3J;#!K0TR6?!52(@4L#KB0 MH8PII.!)C=_H$I\"+N9*%:/81<6G,!7D*LJ94(I079[,(RVO_41'TB1'N/"E MI!4%WEK "R824 NO^,#W,8U-CCU?M:2*"M,H#\'Q1F"II1-@_IPZG-1)"^ " MXR'P$13A3@P>O4?%:9SHPCNFL)) ':$C+ZUPC45< ;H\/ZJG9!%68L M4X!?00W+$N@;=,U',: 9"&J\W$--2:R(OVL0_%12!&/!4,R(V:,\V2709(?* M$E="0# M,2!5E3!!EWB%W0"8N8C%/-E"D? B?+R:,#D@28&N1L6R_",3I"P050I8NC0$ M9*,(-29\6[UD(-^H,DW@.U.5T,L7O,1V5(F'8##S18 DL*$BRRQ-ARNBJAS] MSJ&1LP\%+57ZJLK< HFKF)CA1,5:.M4TOR0+02L[4]#K>%N6%%P5W %?49?0++Q+=$ -#5+8C!3U4W%I M@E:"$3$_F4E/YS^HE*-8P.8RBN(UM.*M",*R"S'U+W#K)3,D:Y,JH.UM,-G$XS-0JMJYPL4/ 6EM;)3*"(@STJ79T#KG1W7AV4KC;. MP(L">TF@?[NJ"\KA8=P6>CJQ3V9;0)= 5P(OC3!+B7TZC[=\)<57VHVR+RZ" M:()!7N$QY9%0B7"T,O=+R;2#<*44A?HN'I(PCJ]=!C.&TX?_T,<-$>6 Q5)B4M7E)H()$"P@[^5 MC5 F"9WQ M=S.2X+R,1)V6))-R6>=HK)C 4KX4)V>P7 0+H$A(!<>&+PDI2VX%>NT>0H[< M2[YQ,;*HV)T529X=P_=M.3?S4:D2DJ[IHD+NT%LT94F?626WXU$A3$0,.X_5 MQ3$:+6Q>ZTQ(RAS*CT=99^2/4/8,TH5&4T$3I"082GSM60)_#AY,YRSY%!H6 M\?7 I@ M!-"+#;TV1JY\U'/ L\5F\"68>N+PS2WE:<+)0:(%1X)>SM>M=*V5W"3N8[@0 M"(+"-2&6U_2ADIW8G*9[+C:F"JUN$B/%.XU" YT,N^;M)"8^FI1GP;F3'$K- MLUHI#5ZERN=D@5NDH!NK%]#G5$&=,PLM@5NAM)XM\A -B1*)-IUC-,78NBI, M L7<1@(OWPG2!9V+J5P4*9I&+MI]6;SB1:XD!>?Z\$61-,1I8I2E3I=[8.Z\ MW'PQ2#7U6I773E>>8=X=9_\1HRO-$1G984I-LA]1CD04(J]DV13>EDA4(5KR MVJ$STPU>3NSX[!3?(1W400RND8,Q#+*TM=3_YOT MJJ!H7(+HVS4V+\KMUM3/$,S/7IE??-49K37?^WW^.!\/Q MF]5N/RN=>?S=A>-*P>_*Z[-?BH3YY<9JG;5@^*YVMNUBC^V'XI8HS^HWTR%] M3*I&PZ?P$UBBY<$I06D'G.X'3Z*(A[-I?8W CCW4,T4=6I$PMM[" MR:8>5*4>=%LV]<"F'AQ8ZH$U%Q[,7'BUQ49X:&6LU5+)Q%)J\V-^NR!Z?OUE,E[_I9PY6N_LF-2L[W8"%7%Y=5)\$\ M/-ATS\]Z@ 4]"0J&7&"PDHMU2Y%(E0_"\0:JVITNMV.\P<))@(3Y TUSCEZH M C#LSQ$65R/PX"L6A.R.JZ#PKS):!#(/^'R67(9%%@6&@O+KYE^;GYLGS2)] MZC.6+PFL#?)4,1*[/S^!SHXS$-)?*'L[#RWJ]]$RE+-DIB.0&%65^)RWY *, M$E73IJKE&5:>H[JVJY/A;7SR XZ M(7GLAB/E,[ZJ-[/2^;X=WZ>.QX6,C0WQ=,/AVIS=Q,=*#-@UG<^J@EF%<@DN MJOY;A?NX00"1D&[JHS0@7BX =8;..\YZ^%5Y>9^SH#@;R$ZI?%O&]&\)+S[5F,"_]*<$.+IWI;H"\ESAS4=T M0>H0@=(_]*4;GC.45R+0-07E^MU 7'%AM">Q+2/>LA>754@U?+VAPGQX5>!1 M]ENF"Z$Q<&I $L@6P[5&;7T!G0>9[Y4+-C>2L25@;8)I9=*"OZ?#5&77ZS4,,?V1@;NFJ828-6 >$&5[; M@"QC&83KY,TET"JC:E"J]D0^R^\HRG*P1/S4@8/K6LD2T.6+49)W(5X%#>RO ML08@* B(^PY4NYOVBB1*RG*R+7D%X*@'.BB,HNYGY1 MV-U5M>-P ^SNX;MF\PR6'.!9&(UFJ TR)HD4B%AM6H)M#)P_,U3Y2MW[[/!( MKKO'6"-FP*!LR\*O8!6'6_R/ZJ")*MI4 07KHU@?I63>DJPX+K>[.BW:737K M8H:SKCPC'K]RUG:M^@:3@4.6>++Q IIL1]TL&OY-:[%48-5KJG@4G1<100/; M(,:J%R#_,V]\Q$^+BU@:;2)46CE]S_V *O214EDN)Y=IE63<_:M'3<5$66^J MP$77N^ +?X']N!%7WT:4#L!/<+>9_&VBE(C!_650]&!3;:-Q5FX5-+'GLB?S MCF5YM6B>*8S/J&T:+5@D$J(RQG37D)6\ "6DBXL:L\$0FUJ4W\G]L%72,28" M@R#$%A/4'CJA=*>PN.0I#*[",%HW_ZAW)MM)W#R M4Z0EZ[/:7,/NXYQU,DW#)[%_+#Z+FF?22UB"DY&PY? MCU%DV]@DUUO,(T_G_SS*VH0)9.K%^2N%PN@Q7;\KOQ$G3,$!4FP!T M)0AX18.MWS'9ZR<1?E7K.J=)+"3U<(I('W /,_8<581_U4S6$17.%N,T9M4@ MK)RHHS.#/#WG72G^"\J%IQ:5NL.8".#8(=L[1=*0:2K0TF97PT;1Q R,CQ G MCL!6A"FV,3> FT\9>$)=J H?B,S(QN<0'Y(C*M=&X18M*!DSU5KO2ETHVZT#_B!*/U=12]Y4M\I_IZ^.;B^6G_A@43 ME!=?FURQ8G.S?'-Y'CU8>%)BLY!TEJBF4US7JSI.];GKD)$0MI]\L(L#G24ZM0:!56/0X)&S3[Q9= ?NW!#PT.F,6% M%7L=/6+S^+4Z2IP.\[S7,==??3F6>Y1>WKK;R\]FLE@81%KU9K J4=+]A_ZM MJOHR6R05]<=>WA<(QY,)V^_N=J1S#5'*K!=S3<=0>\,DD5DB(OEUM_Z[L/ MI_KAYC45$ 36?K.[&:J=%92.[HC25:A>OZ^BT9'*>$?9!LHN;P#$IRVLFUP= MKM9B"/2F,,5FO=[A>MC.0 EB:$C:J%D-#?Z3G5F,^>J,^?:-G/. M9L[9S+E'D3EG+:N;6E8G4<)7DKG>+FK?G[>:@T+AWEK1-M;5IEZ;[).\^ >(JZJ8.62R;,C/3"%?V.4UTCP9W'J@>XQ(>98UZJ2T#$6#.8,J?I$&J\E MR[%*T98LIR2;%)$'?G553T>58[#4OZ H,MW-AS(H[_SI9?=9%KPI"W[$LD$L M82<+N&NZ#B;/"6SKP3]$8[C5[.G?W=B]KK!]0_/E!;^*%/R#29;J1N(O_):7-+)4HM0T@GL0I:'_,\;D3>KWA)":BK32@)>ZIZ MY<;HPFB,OF%(7=+8,**.\[N3F3/%R%*Y@[Z: G#3-FE%"J N5P)MQ)R*.6T1 M=>K!P"KG8Q8P!@J'M19!N?[1=>7""&WC&'/X%\T,I$,P-NX_X,?4RSB^PC6G787FX,&>@\*4A)P9BH%=Z^8QH#.87LY1U\SS5 M$%D2*D'4T*WJM B@IQL>TJT!/ V%5$V*7CN&O@ZMVE!NUE G#,7AYB1N?HAP M0R.W59,0BCD M MP8"9 T6+8:+I 5]/%)0_?4J\![LKH/$)I0"A*(FHCHU(/ M*4!N#HIB:4WM ,R;]AA.:O//>ZP-27;#['%#S4G@:15>H% M_ZW"/3Y(/2X[U[WXLR)$SBV)])0A+NC75TZXLF[Q>#=)IN>C;&I)J<#4.OH' M'9H;6IZJP1P_3DHG,#7H,WWB'U]--D85*FZWU<,WZ?^)]<[W-0^D88B6F2HO MIIELQ'551L![S5=Z0@;BIFJ:" DG$.7D4851<=VK,Z ,&;MNES)05^]^E%'' M2>)::BJUP9/:KV,,W?!(R8:\=ZEN7CK4BJ1\EOVTG%19_":KQ5$883)0H=B, M;T\8LK418U]69)#BE+L)(I(!VY^]DZABL<)_W[=L:7 >%M8R )'F P_UO#G3 M#%S#L_&MXJ#5$41Y@EMN$>53%4VJ]U3O-DXKH.;4MS=P;?_^;5E\1R&U7W=F$@?&7H^08L; S+-TK""K*5ZL(*LG8JP@ MJR=>K""K*5ZL(*LG8JP@JR=>+,/4%#&=YK!G\7)O>*%TLW(.YG>%QO8!!#-^ M>5,X*)ITHP __,NS_K,[TF>WU=QJ =WS%5,UB+8E)7#D^1>./+^GR#,E*)A@ MN1_=]L"T<5=2Z-V5%#JCYKA=.UK8);O7.LVQ%&6X)C-EVN(SQFB_U+LB9 M[@IK=L#O<7F^CZL?'@X&/5/BY(WEVLX$=AW-GPGF?B'N^.S[<)]-UL?YP"TF:>U_$DM)(X#=. MK]/H#=N[O"K==SQC#ZK5$O%^B;@[:O0&74O$EH@?,1'W&JW6Z)!H>-=F[F-$ M:KOUV+*0MF'TAX,)#K,E6]G[_#Y##ON^"=FS5[KOX]\'A_<;W=9PUV*[-GRR M7VNDAB1D.6CG'-1IC'J6@RP'60ZZ.P?U!CLU-&O(00<>-+\KZD>#73L8-737041I]G9S^1BYLS=L#(<'%=1YBH%)2_*W(?EVH[O;J);30STHC_LO3QP_CGPJ/T=$;];M-N@_6XW MSU,@%G$T]=/="?22^.J"^/*B#(=+U$%\[S#S-IL,&RT>IU#X@(;[@?9MM-@H WW[UA.;QV-R@8[/X_#3P^U M:<"!.]-WEL<[M\QKAO&\MHO+(>'TX7WE M6H:VGT2CE_U&1Y[8F1_&:=YV:&E;DO=EKHM=3]RZK;$;1']J,=> MUQ87$]/ATI0#U<(/CVX&EG?7=G+^6 M#ON=*\@//8?71AB?+G&/[=V0)>ZZ$_>&\]KPN<6IC8W7-3:^U=RL;"RY)SN] MOE"Z#Z/\,1HI[8/*J;T?B^205-5CI-&=IZ%8$K4DND]SV&+KL6#K<0>A7Z5B M$LA=[7/=C*)/S"&EZBCMCCJ+_J,4,E9C,1W:[,Z)Y(\L2?WIDC_R0X!2^KH] M6@=SY=:TE>R';BQ% B;T\UZSY<"F C\*G6D4.^E,PO^/I73FL(=9XDAXA^?\ M(F)WYG3;#0?G=#<<-YHO1 Q?I-&-'NDUG;-9\6(1"P^R_2S6+YNP^;6L21E[EI0NL")BYA(5B%WO)/)UDFJ9S#O^'@ MJ2^"8 E+3A.9XF:%X\GB:.7=OOMPJA]N[I HOH]>J]TH1;NU(=WMSIY!QIUF M_T'(&+ ?^[!?@(7CP1;@N1G 6\;.7X4?)C.D/T)ZL3<7CAW-X1=78@K_36;^ M8@Y'!RI+G3 *CP(I4.@>20_\U3#RY(U(;!9E<>)<1?%7> 4>VO\FO:.IE+CO M"W!]Z1V[I+?OP^2G+':V8W,NEH"/,/5#ANLT %[,X-<,4'#J_8@0I?Y:0P0B M$!>(_4FF.3['2L,!-0B(]$'$R(6D/2/"%<=+(-^UI :+>?7J2(-YH#44#A'1X&VHY7]*_ M>%M7TKF0H43@F'M.X#GX%RR])(#Y-V;6V65%G!B>(E&B;MX9O$P+YP7;E(1>A2 MV E1HQ5*(]G>^SV9UO'VS[IJ)5(((] M 0P8PAF^=>EG 'BD"A;A(,50OA(W (E%<GID>/+/7A04AA_@X@%; B(!59XX M&8 3MBL"V%BZ7$C^^F4#%5N"1PQ6]EM:<0[LEM"V&XZ<+X)H"1;+!-A@ZN-F M)E&8*2F31N[7HPG;(,9C("OP;WQADDTTGT2Q/@[HEW@&-HG^-WQ]*0/]E)(K M( @BE[:X"?ZE M_B_\1U.\"]"+T=6=O?'\9!&(Y6MR"Q6EY@7RY(K"OV?,9NUAU%YP*AVUV##OWW/\S3%)=91R[0 M=OQ:-PDPH*< TZ$XP(4\FH"M^?5(3.'UKT5P)9:).NNHW>P/= ."UWFC 82P M,VJVQC\X]&>[U>SV"2AK.)N+;T<&W%38 2SA*2"&'].?45#D-2W[9A$EY,J] M)D(#/W$%9PKC:;1XW6EC,-9$>*_='/;7,'XO(8YN@9T?A0,NQ?0OS_[S[-/) M2KS#T -A%,]%4-(#ZJ-G;\^0 I%;3N!;U&%Y,$2\-5!?S1(*) 39(P!ML5L% MV>+#,DK60,U? OF[+_ 7SG^#/X1/OEQ!P@HRBZB2>B%_M&'Y>V,CK<\V*U9/ M!K"/>)G'!K3 (WE7J!I3.N4AAPR%+)AA&9D/K-WPQ[G9!SJO[ ? S[09:#IL M3H2*+-#J[H\L-/2=J>5RV[(^=CL&>$P7U5VS#N#OYZWFX($\=0PGK3F)+_R7 M8/0_;QOQ@I);7=;EB/H7/C\"X M(#I?YBHM;J5:Y5:2D0=%SU M7+ORN75=GO,96PEUL:NYT<4OJM%%33C*[+YA1)0&9H;#(O)1;MR"E0#WP^X/ M998:#'^X\1(JEJOHY\+D+*OUONLM_S1;S%0#A6E-5>24E6TA,R"*X'UOHQK=PQG/PY4WO MY$SOX_ON)"U2ZH>4=G-D\5)'O*!/:Q%3/\1TFF/+,#7$BQ5D-<4+"+*A14S] M$ ."S)K)-<1+V[HO]<2+%63U1(P59/7$BV68FB*FTQRU+5[N#2^W+.'Z9KSH/48Y=2+ZV%R2Q"X48 ?_N59_]D=P=%M-;>RZ%X@,ME((GA# MC/(=II3$JDHCRA(1>LG+72&^;E@WZ[TWUG[GO-^YJ_'8[C;[:Y/S M'K4\P-RNW2F&/7>G?4 J&!\:%?0.QCQX."H8'!01/#\8"JB!-Z6B]0=$'C\< ML-&X*B#N9@O6K!%B*1O96\E&_F[[KV:'W\#8X[62N,B=3UO'H M]](9L=<8=$8[;3UG^>>I\\^PGD>_%_[I-,:CWD[YIW[*=B_\4PV&O1.1Y9_= M\D]CT#MT]ME=,\HG1AL['2V!CEG-"..'1QV@WSX[Z8$ZL-=I9-@Z'![0UJPO M*>RV"?UUM6[U%6?=W3:AWS/.[Z'#=RTN6':GIBV-[CM4?@\T6HOKG\.@T0V' MVV47>HNM1X2MA[@YN;_DFMUVH;]%PZ"J7BVEHYA.SY3^SY;[DZ+?664/SP?O M3:E;,)M;+-J#KC6E7&\TE?=>*VVXHCLHM^E4'2VI-6T:Y5U)59NUTC:$F_J7 M]&C3)(DZ=(RZ'KM&T_3V@[5BV]2&K=4O-?]O5+9K,Y>^ MIET;+;!]A6OZJA4 QBZJ+K!?VL!&[8%WA?22@RL;A9/<^&X MSS1%)+"O-QR%7K#2@[N"X>&S/^2.>RVN.\QKV0E;Y/P7"=@/+QK.7ZEK?,#T M<>S!*4!TQU119_MSV?)#VY_K*2#%MK6I*5YL?ZYZ(L;VYZHG7JP@JRE>;)>. M>B+&MK6I)UYL?ZZ:XL4*LGHBQ@JR>N+%,DQ-$6/[<]G^7'4K#ZQ= ;WMS[4& M$=N?ZSM(P?;GLOVY#JG52@THX�_MSV?Y]DNW$])A/Q(+MQY7G(%V8>LEC/0[:=N7:3 M&U7'%A /T1GE"77FZG0;W6''=N:R_+-#_GE*W6,&C=YXMYWMZJ=X;60%GCD5W_B7+K5.PBT7;;_RE6E[6>CK MCEW4QR<6GD2X3&4L0U?F,+A+ES!N,-9P%&5-LL0/90(OJ6N7$T8AT(&;Q3%2C:*QJ1\*() & M_""5%['B!3Q@!.^.%=,8?<9P1R;F@=6^X*+R=S\Q>HZUC;/?I&/86NF146#E M!E+$**)G;SP_601B^9K$F<)9'EP^9XL=J+R5BVM-:1"UA^LRVH ML=L:KHT7YIW>&@%V>^N%6?C?_RA5H>7LADVMHOBUCJT9T%. Z9#^NI!'7.0F MIO#ZUR*X$LM$G774;O;S;)O7>7P.(>R,FJWQ#P[]V6XUNWT"RAK.L&&6 ;=2 MSRSU6+EM%BU[;:V=PG@:+5YWVNA%F COH?>]AO%[446^"CR-"I+/?ID#ZT: M;8> .G8(L$BI'U)LA[.:X@7,Z)%%3/T08ULUUA,O5I#5%"\@R,86,?5#C.UP M5D^\V%:--<6+%63U1(P59/7$BV68FB*FTQQ8O-P?7NZ0I_T B3LUKQU_HGVW MMK5J[-4.)+97XW?0PG?U:JP?+=1 9%RCQO8.EGONNV65QA-5&J:&.*!F*[_8 M;HT[Z]9X6)2QXW:-5FWLDQ$.N5WC73HPV:9MMZ621]>_L;9D<5CMGA]=1\?: MTD7GH.CB<35Y?'1^N(KS'Q#![*[M8_U,S1VT?:SN+[-/HW(U^5GHY&>_2'X6 M1?*S;?ZXFVRK.G89V@:G737?&M7SZ/?1[:$[W&WG.LL\3YUYQO4\^KUT3NWO MMI]/_?K6V;:/EGGNB7G:[4-GGIWV?GE"E-$;[/H2N6:$L=KTL5:-8V[N:QD= M,51WF(0>6%F@>"XI%ELMVP6L"C]T\KXG;C2?^*%J5N+4I@KW%/UOF:3.>RY< MWFFM[4,7TO:;+3O2N8[YFQ8I]4,*V*4#BY<:XJ73;-MV #5$3,=JEUKBI6W; M9]03+R#(;-E%CS;$:(L5*L9KBQ9IC-46,99AZXL4R3#T1T[FFW[K%RX-6 MT5X7K+0%47M/3]Q+%6WMYB[OJXJV1LRQCQ+:UM9N>GOGC7V5T#[PS) ZU4)9 MC5%'C7&[*H>;U\H>5JG+?=;*UH@G[KU0%K7" 9'%C@MEK7*PA;*/5 +X/W M!T0?NRN-K9]Q^;VEL6PSUBR7/,](ED9&LBV W4VZ9QTK+NZ]#$G)M!H>_5;# MB6]4:O*BVVZ_W&6\M8828B_,4U,*>@CF>4*56D@Y[YXT]]3TZ+57 M/1NIYC J8!\G9=1'KI([5C/JJ'49[*I?Y?AJ BW.M@VB\.((OI\[GIRD3CH3 MJ7,E$B=+J$Y6#7S'J;+73'*GD;@K];*TI.]/'VEI[,9<(ULM6],\38N4^B'%5LO6%"\VV[R>B+'5LO7$ MBRV;J2E>;+5L/1%CS;$:(L5*L9KBQ9IC-46,99AZXL4R3#T18ZME;;6LK7VR MU;*V6K8^15"V6O;QYZP^I8*H&E! W=!OJV5MM:RMEK75LE8YV&K9[Y MEK6 M5LO::EE;+6NK96]'%+9:UE;+VFK9V]J,UZ30UBP+G5.8?97"+/,4YE"E,-N" M)EM+:\M6;E2V,AJV;"VMK0;<(?,\H5K:=F,P[MA*6LL[3UCQ;*>9C96THT[' M5M(>-F7<>9;L3H<,VR+:VQ71;O&M&ANFQ_JZ[E8]1?6O40QN=^BX61S+T%TZ M:2S"1+A4,2N_N73/XUP(/TR83_"A($H2F32=+7MP/.G&4F#1[O-6<^0 C )< M$MY'A;LIY9_,.?]$4OX)734ZW7;#P4!R ^?4+@0.M$VC&SW2,\_M91*?>^&_ M= 3N8)#O0&\,;S16(4)5R*Y(9@WZKR/_S/Q+$0 ^$H)6,HOBE*N3_? 2'ISC M5UQK_,*'=\&;.OF;$ Q9.!6744RUNM,@<].,!^]2*?,J['-XQR(%^-:F%%D5 M(9^);_P?+?9:?6;513[5Q']7)2AD<4)' /58G/Q5M M8:J& Z*,'1Z]^N?>2,"77:GCT^QBN.-AA11@K1LL[EG?J=_1[X)UVIV^9 MQS*/99X[U2*/#YUW=E>*_*0(8[C+:<_LBM6,,&I=BKSN5!G5OP]<\,L%M.HZ M0.H2VX8SE4#U(N JWE2DM%W)5;U+*>*C-#KR\.-8NM%%F$\4OHKBP /"D Y2 M'!Y1E0K#"S@S#7['^_5C>ITKDE32Z.$,RX;Q_-,L".@M.ZWIO076&$_'X=)) MX.?^%-@A3!6L\"0X>'F:I5DL':!TZ6*^'>&3"I$!,5D )_* DQ()L/8!3VY* M3V%].09O!)Y9#5,&,.N4O 8 *;^825YL8'BM7.Q M=";2>*^@O<&+)O"W$V;SB8QQX2GL)J([(#?(D#'QK[S(6]%DXH01EJ5[&1R/ MRK&1,N%EBRR&[Q2SF M1K3'/GQQ-9-PG+7L/B.'T0V )E @S=YX?K((Q/(U\;4N@-9"FJ0#_%OG40Z; MX\5JP;.Q;&FM(U<&P9MM@9K=IDENC#%U>EJPY8*CVU_/?<3__DSGS55?Y\H.(>R,FJWQ M#P[]">JSVR>@K.$,"]<-N)4*T]5CY=IT6O;:=%:%\31:O.ZTL2&'B?!>NSGL MKV'\7K1.M\#.C\(! 3S]R[/_//MT4IGCBG^#\HSG(BCU$U ?/7M[1AT"@$-/ M(BKU3W(U+B%_M&'Y>V,C+=Q7,&4HX"L0DB!JDFSR!\A'4D<@N?[(8C_Q?&KE M <(-)=>%C"[ TIGY+BE;=1*2S2" RQJ.GV U5OT+1R3.)$O\4"8@!E%IP')P M2MWG I; AP0[@+BM+&'Y+E(0D9,,Q6>2@4*'A4!/2%+N*$\]>2F#:('=->CW M(,P]7_7@P*X:N291K4AXKV2 D(H@=2/GBR!:2NQ0$;E?]0:7#4> CDA!+0!J M0J6/KOQTIA4-;#K%X\&JAC4A7)+LJ!; Z MMPC@BPL9HEF!N@FLQ 6JA4HE M =LYG@.B74%GP!_DBI; IP!,^B@088CO25+4@Q?^/;0"J6C\44%7/_M_9KZ' MN,--GX@%]@YQ/LL$MNK*9&^VS.H^CPE^J^8DPA/,MZ\(2I?WW@#* B,%S;,$ MZ!%/P\U74O@@D4 W 2*C_$W@,P7[2!%7\.#SX:#9U5U>RF;K\W:OW^SE'6 $ M;>R=="69*MIN;3IG_(;*3C.-+:UFG"NT*9[W>\WVRDNV&=-W> ^L^+S=[C7' MUY^E&OJX]MJ/U29RZ\_LKS.3 1EV9(LJ8PHD6@($*-B>HJ.W^\U6L2=8Z'F[ M:V(#Y,B"^2I8-IW:D"@:N'/@YMA7>(>-PN%CR>!FRU46#8D68JD0P=:Y)R=I M0\L](.B K%O]*P8W&+(@L%" 36";2K(!^I-LL0 DTSJ%#=X$1IX";N 'OPKX M]K3AG*9R[@"J/N1V/(DO]8J/$;A'[6[#^=&O, -46Z%G;]_!3G]\Y;]5#_2N M^_W/>)+$>*)][2,_::5S$LTG2H8[N )"@==H7[<&/#KW%;&3=(M(N$LX-^^& M_ -/IL(/$N7JH4L0$1BWH)(?0VPACO 9$<>H1A08"R=%.3RP%FAJTIR%DY2C MN"1]-F%YA>QK0_6_2W#@ E^B-SD33('RFY^D+),)=$J9T-G *_5!L[(S"19_ MPAVY#,?Q"OC<2> ?R91%Q3H" $7XK$GNB(3(>@WP )\&E$W,Y-W M"E3%4K$:HBB(P"(DB8EX9FD6Q8B!*%3>I^)BI 4X-F(R):4? NR<]$H&EY)C M?1S=:&BK /P6=%KRJ D*PD1*;A]&Y/+&F457 - 8=)%D<+A$NAS_D"!.T?1R M_"E^KP#CH!F+9X)#(VP4)<^E9)S@B63,9PJE]/9E<)SA!GZ.!$OVS_(R"BYQ MKR=D_SD?A$NF9&WH^U.H]-Y0JSV .7F]9 @"B(7>^_%%+(E G1>(6+P$Z;3> MK'Y)'[??O&2#%'\88. KQFA"1$8^*'6VI?'+M;6U<6D^Q6$4-MBO>1QD2Y)A M:$A'X ?"=,ET+VY\9_Y!?E^\<6_RP!$Y0> 5N3\),*O(,^%(KKC)(E H7!( M""P)X8'M[9.!BZ$F\-F+EZJE2Z\[OC" 4Q_Y=E8)Q#BZ]#W)FN"%P :$<4[) M[,E@Q(J=(O0LX/]=P-,7R+;*M\!(9>YY/>_U[5G>I7YXRJ7L6$%UU(DJ$Y\6[<(3ML9290WX&$KA^B?P+Y'EW!01(G0^HT MV:?8-XMC\ 3CS##E0 %P/!-D,;H@6@\&TF5^4'TJR=T.X*$0L3%!%1^3$WT% M_OK,\9.2\P(_GH%(Q1<@:PI^7H>Y67D6L=R85$*H/F&MFOIS4AGTOXL@2YQ6 ML]_ZH4$4@XMA<%VB(P&>*UF#*%5(&UZSFFJ(Z?(RGL#X?.*#.PZ^N 2W"HZ M==\AJ@0=--;+OE!$\>73A\\Y'=/NVDV,W2!/8:=-_+Y!7S1H*P) !+: #ELL M%F#FD=IDI(++5?5QKF@W4JHS*5 _D>")F/I=I)NPYL0<.2#8\,X!.!C'^R%7 M]ANV<[>M3.BV)>+@ P*GM(..WD&'=U"&6/[L6D2?/6$,N01HI'RAO$ M=\TC>'LL,=@+:.9KFJF?N/ 8LLO!\)!K8G@V7* -C<14Z MZ%:J .)6)JJ/(*_4V&A 8X=CQX4%81/Q$@U^M+SA\^+"ZHH<.>6)83P"A;WY MD)A._7BN3!H*55[P/UP0=R#E4G"Z/ZY]IIW_!NI=@!WY(>S2I;$*WVH"A)]R MLV"*JK.;N?XY>%PZXCL7%/^B[L]%=(=BK&A^81"6'4C/1Z,%M09?D6+(=)(M MC_#Z!;9]&N8^1*.:?)2KD;"G=X6O]@FL0%4WHWW8)%[1P8KH7>,ZH=,%!F.. M;K68H<7JG>,W^"]XQ/$%PW1]08[IX6KM)M@S:K5-@2OTJC#2Y(<40P/_&Z&: MFS0%VA35%"'?59 \/JH'?*C@'Y@:(@O2IO/;0I%>Y.8D1N132!7E?PI%?0!G M6L=8ADF&C'AR1SSI!NC,T+I9FJ2"#0OA7>(J*A@ [+7NDZ^97\6!?#!4/' R MI$H'H&B)6*+<;]IKV"W7L -[#6NO8>TU[+V(W1O*+I2&%V#6@6:1*L$%[3JV M07A20QXMYLBSAU>4($W*ER3:N,/;'S#47F ;?AT7+I28_CK&&P!U281!'C_4 MOF79-<<+ L,O;YA7S8;V^(97H&Q.D "/"W\/#D27GF C4.B!K>MDQ1A5[W%> ML-PGG6WLEP,:>-X4[3"^=T4MP8N V9I0M&D18]P7WA-=A<6[R^\P _&#_@]Z MC:H-NK"6,%)\R@#?_(J:Z7^%\PQ]DN)J/U'>#WRX+;*!075RU"4Y.1A&9*6> M7T^8+FLYF26@7>V"]RQ9T.]YK&9>W95&5@]!E M$"H/! 2!]GV IT/TW[_*5"?=P7$NV=X#5RM*??8OB@DV)2Y/9V"^7,RA'EE$W$"I_HI$C<"B0;*P%M5B /37@)<@(S9T#,B MJ04PDM5DG2*'!IY0!W3Q*DD=P8UB<+31,<NXE$T"TJ75)I+UG2&GBMX:I[)0?C^/-L;IPT 5], MZL-0!N<\\ORI+SW4&\F"0QDH(F1,&3CP+]1,X C@[N$+>#,<@O>E7PJ0HQT5 M5L@N\R#[&:%3P7LG>$OY(8BNG'2*]UP<^#Z@_:HYM=^#-.G-_36@M4NJ' ME':SU[=XJ2%>6LV.99@:(L8BI89( 2DVL'BI(5Y:=E)#+1%CI5@-D6*E6$WQ M E+,CC6Y/\3GM%O=D>U \E^AF<<%&GO=,$/-3KZ[EK24%5*ST^W'%-X/EF_5>'>CX+-T M7>GAU>QT^Z'K_6KN\]=/$XZ?KQ12H^533L>AQ.1LW(]IH_#U'2:W5ML.%!@@W[IIX]Q^+V??Q[L"9[@X&-U%GF M>8!(WKZ/?R_I-(/Q 43YJ(R S53_WBW3)R<,^JO5-%T@?2_*L"MM'5A_AQEQ M>S_GO2C(QFC0LO&6[U:(^Z:-!TJJV_LY[^-&J]L8=FS,T?+ 3:V_?9_S'GB@ MVVVTNZ,-E[JOJ,G\P_?TKVJ>C]9#F94HZ3UB W@G'^KV=(T!..(!V_B M^#X9)OQ3FO6>\)#%_/2>C3]V(YP)I.;' PYHAZ\9PQD;YB2PTQD+%,O$] M'#$BDD2J.8YAR:!07#0_% 4T\("N:3H$02"CY.$"KM+=) M%&8)#DGDN:#&!*B5J3SJAX$(U7!G?WVQ?!D 'NS9 Y !74>^"V2W2Y%WP,H:WDM%,D5!^7\V]JQ2J:9/V*]&]FD':G>P>J76&1YYT[L%FO/J+EPRV. M?2U8"\ZC5KH*0NW.N#G,8913_K63SU@GH":AX(_2/0T$>8&V8E(4C5/:H"6 M"T$>=BJ>HL&GL33Y,1^)A]]AJ&E!8P7Z& MP.@VN_DRN9-;,H/%-P"&(8CP4#2MTX$UTH#G7F/F'H]<%EE,R_X8FY MNU_LE MQ9S7"]^EDX4R3F;^PI@M3V/?C[U+#"(F/#MY&RC\MZH+N#(>B9'HR,)ZG.-T+C)E)V!Q/.<>9]B_W1&^?IM.C MGT2 0].=+S,)3)7CI#X4=TR"9E7;70%:(IJW/!.7D@8M@UPXFJC3)'0:$<<8 M=E86JV'^(1DD"TG$ 6(!/ $)DC-59D.,84; >1 A3?'T>1"5] UJ/,:6<'SO M+\_.Q4!,W:'TSMOM:?>\-Q@/ST5[.CKOM">M\7 X'8J.>,9^$C]Q"J38!?+# MUY'; >0!_PS4O][QB[-8/?3@1('[4]WVFXZY3Z)C8Z=.OE6TN8DQ?N'9X)_] MY&MMZ*<\05KQLN31T?+;@O:/ FW.>X]A[Z9ZTHGZY%2!Q$ 61FG&;@:(" J MZ+DLCF7H+LM9_DG3^3VG4_Y)B@KL*B2"51JNY%:%2&,1DC=>\?#X=?U[G\4* MOC.1DCSR:09>#PTB!YEFR"F\XA%^2"H7%>A1$$5?\?R&*"0S;672.YZ>3Y:% MZO*++F70Y\!K'7AS%N %4Y0%GG,IXB4Z7H UTLP@V83Z"5U<.6$VGX"Z@+_U M*/?:D,5VC76J4?T9BS60GINH=QQFC$];2(>N#3?2#!.6:6HI'580@8/J" C6 MC_AJK&1Y.Z0\$C?V)RB:)%!U?4"Z45+/!*<0-M82"=E7KW31R?3L]PIGH,F. MOM#_VK:4AF_OR4_@_\ B".FIM RV*CQ+>L MBO1QD?(1R60QT-=DQ3HJAE]%7]?O(!?LSX%N(/\+UZ>=-I^3&.NVN0WD$[;P_+5]N;#$1*F'R#DZ.9L+UT./W3,FA M +X,E&5 1!KQ^0E%ITSR#*@KR4R42VW@FN'^"<8-V3ML)VHO?($!*)/H704=2)8DDQ&3QUPZS4, MC\_+I!;R(DFR.8>Z[*O0PDQ[*7U.6Y_9"XDS =IR+)>HD<(3 Z"(C/'*2*(\]J'B#HE3T>@!> M%&[P0SX7N%D^N/IK\97U%SZTC56!]+O&!SZHN,^)CON@H?E>QW[R> &K^1.5 M18S^11:7#? &8,R5X,=. IT7)9;\CZD"(@$N)&H#&S6:3C%?D>@1CA8!FBA4 MI1 41.C7Z7 4!CW=(/.T2?T^BZ.&\[\R;#@G9%1+YW\SO#=#0)\)_PHXY%T4 M '15DZ D#T__TRQ L:?&D 3\3Y'33+'05P-6[?<85>HKX S_,-V>\TKF@H!L@#I/),6E6F[3DAY.[=B3I MYJD<)GS'O .N.8:AX:V7$8I/+$4A3ZHZO$@V./BYR.,+]);<="5(D/]^&F08 MP6.XJ/U,LH0<*\ KL#DL6/B+%,4@AJ6T<^6X;0QVYAGE')W)Q8V2/T4HD];D M%6^R&MW Q(+H"?[$D'W&:D6'[9-2,'[:Z8ZDUVZ=CP<8C/?ZO?-Q1TS..]W! M6'0G_4%G.%D+QO=0_<91@.,E?\5+1 ])\7S8&0]:@P>)PE?5;N#.G%[3T9LC MR!;;V\^%T7OEH3-3%_'_!]CE]\50,&(+;Q%\&=1@R4"9['BM[/H+84@JEMJ@ ML$/\(L!K8C@5@71.PBQRPRL=UC+M$D$BY CH&;ONM)G5_Z%#=#8)%67A7!#]) MXBR;8-"LJ&DHX<]'8\Y%5XRLQPC#!3+J$W7]%"JJ'!H7&6AE M!%*S\,9$IB;!\2+S/;J,7J Q#?@WH(7P0]QC4 0-A41GO> 'NMY+ZV=5XZ(- MP4!3+(7##.IG4B#SA3,B]>OR(IGRNVZQ'H;2%$611D=F^(;I-A1!Q5AS$7A" M2T+3DP$BO$-$\JK."GN_T[U_D_, M_7_(]_]9[W\_A%]E>7S"K!0.CY=N&\4$]M[@G!46CF'I>KRJ*NOFZ+M=\2:) M4G6S45P_JUNT!D5^22"+!&SX"=T!?I5\V[KV0./[=EXR0+VN.YET.\/SSF#@ MGO=:T];Y:-(;G$^[P^&H.QAZ?6]8,D!_/?Y\=GKZZ>QO[S^??OSPZ?,OQV>G MGSZ>=T:]87NXKQ00W!0KB--3/;<-P-)YX]!&'6.GQN'18FW_#-(]^)53\3!G MYGS<[XS;^\]E:3<=VIIC[*TVNF;E-J)]73X=T"HHC^+R^H3"+Q?LI5*>PCUD MQCE%4IQI^Q3J'%\8$(P7!8Q+W"&%@(_;[7,!; +FZW M+X9K[EG[&,,I'SA_Y+P_[G;[-2"GXR9%>1RUK_I([^/4@P8Y$*9E($2T(5I-+92T4J #Y6L SRE,\I LZQQW^B/C"!H@(R"4=!OH:8P04LF=%2 MV@TPPB02?'TCNP%CL!3?PN0%/RX%:S8G+&!4C**WVO70B(,WEV 4Q<5O1'$" M_37C&5T(C%+C_RK,>0N4^W#0';N#R;I*[_P6@MF >77@YG[!2KUH^IZ28<_[ M[4&_.]J_@N\T'7.3SA==3\C[9!>U*#?\C8M(E'%9(W/@K.2M<9&+6<-CN%U3 M/TY2YT\V%/ TA0>MD-WK3KJC4:]SWFI[@.QNKWY@H^W6Y[GJ?#F[4X9T:>-YG0MC'*'S( MT%AK]?TEH5C6VG3W?L/&:8J,W%%K*B= /-,.T%)/](;GXZG;.W?[@ZX[Z@Q' M[K"W?DOS"Y@_7\14IDNC[N!\T!\/NJW]TT^OZ> &'=ZA61IAZ697=#,5_8&4 M'?>\WP.GL2=[[OG8=:<@0SS1&G=ZHT&_O48W?0IGG18>ZWEOW.J,:R!RP(/A M4)NQN?W$*T_#Q,<[B&./ZQ_10SBC#)#\6NQ,W<(>&R55^Z3L=X7>TAJK.E+X MH_\-#+7P8S:'%[L4S8.%/Z/!!VLP1;3A_^*OS\^B\^YY5_VC]>WCU_^;_F/Y MZV]__W34_5?XQ_GH_->+9PXCZR_/_&_IZZG_37IPZB"1SYQ0S $.TO5>X]U; MNS7IMP%> M'TL5'UD]4JQOY\" XC7)-U94A^%F?1NZ=PR>Q?,P73WRS\N?WQU=#=N_OL^\ M?XK%211DGT: 0'S0P2>/VGGJ@E&'N H(?9$;Q7L][@J6*T]\U?_6[2?33[^] MEU??QJ,OV?]E)\$5D>S1+4_=,.ZOTQG&(1#Q.JDIO\_^3,EL)(*^'/V]X7!. M1&MDHPU;H@V]EHTVV&C#/J,-)EG:^OA;*F_,:6(J#IO/^ MVPPL965SD0S*69D[+&.O3;%(Y&O]A_EF)'V%$<2KRX3SAF492+4H2U^++(UR M& .W$)336+]&(Y2Q>;.!%N/FQN[>3K^I11?]M4(BQMOPWA5K);6'H/]-_9A? MLU"Z AA<*PV4X"\1EY@DH+C35>(J"<\;M<&FQWO=9GOC (^#//&@V>D]J0.# M0!L\+:(>-_M/Z\"H (=/[L2'(K=N.7/IEBKJOLSYS5$T>O^HL!]W$U&[3Z6V M0QCM 2)@/N&'?WG6?783Z'2&S>[HX:&S6@!W(Z(JS^+H-#LX^&+3Y+55*$]* M^S8M6(P?NE&\B&**VTR67%TM0U?^^&IR:WJ[M?C= T\>]9KMOH+/T: Y[M^( M$DW?:\WO:E62ZH;B\>_AYUL+^X.2>8]!/=2+N97G2:R\[7<_3N)7;Z_]U4?J M"'47N; G/51+9#CO*"M[P5=&MX?E;=VV1P/*HU9SE OF7K/?OQZDF)YX)SUU M6T_P\0"QV^QJ&/:;W9O D"O"WH$!@B"K#:W MMH$3LX8_8)W=QZBY!LSGV6K?@!F+ ];393;&' K]OJ-$ND?P&);;OY8L@MZ8F_A_?V91^N;: MK?#/WCQ3EUNS-%TDKU^]NKJZ:L(;FA?1Y:OCV)WYES)Y);T+$;_R1"I>M=N= MUKC=>P5DV>[W1]UAJ].'/^'O5PMOFASAM7:KTQY_D]\Z7KLY2^=55V:WA->U M%VPJQ?-7W2\\;XK<<+A^ADL-\XJ$]E@GFTR6>N(?:,-?WWUPOF#,"K/S&PXX MRU_\ &)_JLV*/_V^-"5O]7]5O=;W7]C MG\<&)![TG@/^?]>XY^BVAM_DMW;KX2(2)SR@9\/]QDK[R^OO-GZ709 X'P ; MD?.3"+\VG(^Z:_EQDD2NKUJ^AMP^,T C)$ZLM7(PUDKWU? )W)Z@8K7FBC57K+ER0ZG0MN;*+[XLL3G#Z,&KVK8WM>R_$:F-[_*A!+I+SH$9LB#PR?1V?$/#3] M'(8)M)M:H9N5M1VDS?2OIV/RV.N9[S5Y.C4Q>:X=6U-3"\BQ)I U@:P)5!/X M6!/(FD!/R02RQ3C?;0(]8"E-V00R;9#VR/FM^:5YTBQ;(^UNOW4SNV7<&MS M;ODO&[JQ=HNU6^H''VNW?$>;%VO*'(@I8Z,YWVO*["F:8TV9 U)%UI2QIHPU M9:PI8TV9.^>N'59,Y@S'H44XOYZFGU>-R\VGH:X.CMXT:549!:VC?^1S4+=/ MKN&Q'2F/PC@- QPO]:^?/O_\VGGAJ^N>DWR^[XDYW_"Z=%S]'2?*2UKK58E]PY-PL"C!W5P^RYP8K MN-;EK?8EDIGS 9#",_=>Z(=Q:K*Z#@/+:L-2Q'W:J2Q-;ZL\66-K_W#QQI?UOAZZL;7[9HXU-WX M.L&Y <[.9I,,=K0W$"\=O!I]>#3MAU\6A:5=O#IPPX^?79?8T[/A_WVN-MO MM<]'HMT][TV&P_/Q9-0_'TV\B1P/O,EPT'_VUAA=^N7TKQ^/SW[[_/[+>:\S M& WN>8KI1C[5E&#,-2VVML,!\H91\^SMK\9%.\;98_EGYL=%()DNVK$1-X > MWE*JK8"O =2]!OWHL[SPDS3&I6;@97I9L'1 MIYB'C@^OF?_P1M?N#*U= M#:8UF97FTI8XE3XI<=[E MT4KCYKC]T,?;.FP"V\M\^OFWL]-/'[\TG-./)\W;CIMXU/B[P9&ZS<%&7^YQ MGJ@W:'8>G KO>B1+@)8 +0%N/QN. WOM_"*6SHAS&AX!B?VT?'U'LBE/7FHO MOFT(N"I;L+-GM]D@O MMG0M>VG)S9);38YD"= 2H"5 ZZ+6V$4]?O?Q^*/S^?C_CA\5U5BQ]=B=TV,O MA/-^%O\6EO"> .$]Z)$*%_2?X!(XN9?:4#5(LG!7+?%9XMOMD8HR-QO_L"1V MW_&/ZUJ8KH9#= ;CSG-<_LB2U)\N2TDNE&!Z'UDN#[+[[91D-[]/!K7;.-AM M/&W"MIGEU9GEG=UGEILICBK3NY3DR(G>1B)WE[7[:C[Z9>1[&]+1BPJ/2>0M MX7]FZ3QX^_\!4$L#!!0 ( (V"J%KW835/7P@ ,$W 8 <&1F#,Q9#$N:'1M[5N+?K0.Y6@F<9RI;V_: MW-3] ) $1=0DP0*@9/7K[UF DBE+2:3&=:Q4F8QD@L!B%WMX=A<"S[_I="Z+ ME!>1B-E/UV__RV(55;DH+(NTX!:M4VE3=JW*DA?LK=!:9AE[I64\%HP-^EW\ MQ\?Q2:PBWJ4*@)VVCOK'?6/3EG_)#A]'@R>LW=OV<'OUQ>'U#FU>89/ MP>/1>2XL9U'*M1'V1>OWZS>=L];HW$J;B=%Y;_[M^X8JGHW.8SEAQLXR\:*5 MJ,CCNEW:(D3WJYP7S]J^!=]&:)D\&[K>1OXE(!KF67%K.SR38P@G78?>_J VG7HO MS3,5SJ)09?%P(HT,92;M+$AE'(L"([[_]NRH?SP\[U%O+%WY2(J&2Y/4P[JG MN+FB=FMT>9M"<*PO:5/5++6B$)U3H;31],ECXVE3?"L<7 ME^^OK]Y<7;R\OOKUE]\>&,@[@-L_*F-E,MM&U=;HJLW^H]*"_=QE/\N0:\F+ M-HN$)DG,IMP&3TWG+[V\KDD6F-@&@[/MH-$:#;KLBJ5\(I@6$RFF".S=ZS?L-Y55%/E,FUT54??)P6FW77/4 M9:^XJH4I1>04 M)+DE5%,QS)Q@6,S"67,9]M![4.@=?P1Z@B6R@',))W?.; -WZ([;NG%?%@DX M@Q-'X.\HJV+(!& :GFL#;))XIH2_":H$890="RS6,##WI@;<8Y=VMZE'E:$# M *B $C>=@R.>6=P>B"\%H/3V%_Y2TDI8^'!2?(9<54#LQY#I,O&$R5+$R68B.R\ MCV3TH!B^SXT^)_4\X(?LM3 8#Z>X6/5IQ+0IC$:\,IL/H7@6"GB_GLE'2%5I M" #]T)(1J:&7*)P#J'D#C(K&C0&4$%+*@7!I4(CN4495Q8FZ8Y92X M"](8X4-^,U/!7Z&@CB!7C!?QD\/ ;L$UO _7C>EG!;6;$]?&X 7@)S(F3'*C M"DX,S0WP3&DA 97K> X:P%ARO^X4IM=-2X^0PY>#CD?_4M=&6ND"P6UM4%GI M$M U+JV((J5CIX!+,,>B0+:0 <&X(TIZ-*@+DF>/4CQ"L@07/SGG[Q9.HT-V M.>%9Y;B'G"B2! F=G&#YS9K$;)$#;,"E_G)]KN9@B8'@0>,SPE!5]L,:;,+V M?-%;4+J;?+HR8>$\D79/FO K 7V&)/RIN6NWD!6# ;W35IU/97"=5+D[:Q&V M!>]1$%915&ER<2/BK9&:*V/13CN(D&4B"*JW4]C!!X8DP"H8Z5[O6G%4,<)5 M\%3<%]5"KT.O5;<>-0'/4*??B*PNY^_U;W_V$NWQ_.#E MT>EGE$=N3R^>/QWM.QHB5FPB](Z1"&-;Y! K2>=".X[$TRIM%F';-4!DGDMK MA0/SFF&A0E) ]V()W9R V 8]&J(OO%-J>_\P1-_5A*JNX>L*B)7]!_N*Z#/ MK8!>9DBF($$"3U1;4I4:20'OU^%V48E,!;^A^.F3*Q=!75KH=A;G^S!;8:HN M&GQEOX:U>(R!1BQ(ZX/XJY-)# &0D/.U?1 WB."FRK$F,-L94P>+M3M6>T)[ MB!+E)>)PHD$ ;7A7.-H"/MQ^;PVDM@]CLIBH;"(HEA5\7&];ZYKI1%YF:B9P M=YHJSVU\":: U8,$^NY36\4=U-$YSM)BS_T7+ M_P!,1U/T7,]Z_H%?"QO/VR<4AY&XU4MG55E+/'G>/3WYKKF&]=Q!OWODGY'F M&9.&?,(G;5S/5W)^W9EJ7@8AZ/&F,\6R??+&='CFOM'S8S3U MIXTW,N^H^_SK->[DQ]WU7<]JPNV#8?31SRP0<0Q^Z _]9Y,]'@Z;3X$R6Z-7 ML^#OF%>CLV;.4%FK_873>DWO [@'[) ![4/_DAGI<+'!:;VP>?F5 W;!6WF'4 M/K"%7PK"'[5Q%<7;6+WS(&Z-7G,K O:6S]A9F]'[/WOP_IO VW/;>/.MAW_: M@DW5:^R&I(N]NY!'-V.MJB*F?4:E@WE5T7BQ:_E&O:-S!$4R68A.?3VO0YHO ME"UM.BXU+=Y4*_E8=/S>#T^LT &?*!G7^#@[ZQ[=53^^K>]V=OP;<#WW MW_ M 5!+ P04 " "-@JA:S&'IHX\( (/0 & '!D9G,M,C R-3 S,S%X M97@S,60R+FAT;>U;;7/;-A+^*SAEVM@S>K?=.I2C&<>QIYZYM+G4O>\@N11Q M)@D6 "6KO_YV 4BF+"61:KN1'&4RD@D"BUWLPV=W0>CL7ZW699'R(H*8_7+S MX=\LEE&50V%8I( ;;)T(D[(;69:\8!] *9%E[)T2\0@8ZW7;^!\_CHY;K>$9 M"KOPHV01L)/.::??[9^P[G%P\B;HO6$?/["#/VXN#JES:O(,/X''P[,<#&=1 MRI4&\[;QQ\U5Z[0Q/#/"9# \Z\R^7=]0QM/A62S&3)MI!F\;.51R+8M3*(#'!2?OT]+Y)B5$Z;Y-:&(&F M*,BX$6,@V36I409#A!*M&EK-QB2Q,*^&YR*;!ZQN1@V:_PH1]DCDO M7C=="WYK4")Y/;"]M?@+4#2:9^#.M'@F1BB<=!TX^P-O.O5>F&<"UJ)09O%@ M++0(12;,-$A%'$.!(WY\==KO'@W..M0;EZ[\AQ0-%R;QP]HG>'-)[<;P\BY% MQ0T[ZK6[_;-.^ _JN;2@=56_U8)&^(2"VD33K<'"2M4W L/%Y:>;ZZOKB_.; MZ]]^_?WYT+#Y(G^K-?U?I8U(IINHVAA>-]EY7""K?^)_\2:+0)$,9E)N@FW3 M]ELOK&T2!4YL@MYIN1%'-(:]-KMF*1\#4S 6,,'X:%*AV9\55XBP;(KMI50& MHR:[DBK'N-KZ#Y,)^_C^BOTNLXI"B6ZRZR)J;QV0=MLU_39[Q[5-6%@^9;>% MG&2 N4W3>F-6C9K(-,S99:TW>/L27%VW&8W"TXAU7L_ M#[1'D@_\1 DR201>'NA#Z[%KQA58;*"O19@!^9 ! C+,A$YI!'7+D1&)%>DZ M%CK*I*YP''&EDID#2:DDEIC8K-D!8B(&!)ES_.4=%GX%5I/G2$.?J@Q[](YX MJW=R $Z+WDGLKMREH*2L<. D^8RXJH99AR'29>V)DH6)$IR(['R(9.Q!,7R? M&STFZ3S@A^P]:!R/3K&QZNN(:5(8C7BEUQ]"\2P$]+Z?R45(62D4@/1#2T:D MAKV@L'(HZ[VGPSJEN@H>X>1#Y#TDFIYNZ:9 :D1=M,Q$;#= =!5J$0NN!!D@ M7""W)%^0I$I3<+4/H+:1V%*@U( *&:1<&E1B=BBB*N/$W&B65>(^2.,(%_+K MF0K^%0)U1'+%\1!O'09V"Z[A0[BN33]+J%V?N-8&+P)^+&+")->RX,307".> M*2TDH'(5ST"#,!;'4GR$1(E]@=+= MY.N5"0MGB;1]TL"M!.HS(.';YJ[=0E:,#.B/1W->QHB5JPC])Z1"&,;Y!!+2>=<.XZ)IY%*S\.V;4"1>2Z, 0OF%<-" MB4D!W8L%ZF8%'""&D5XUT3=^4^H[>_#@STJ@ZO8AJXK(%OV'^PKHL170>8;) M%$H0B">J+:E*C02@]WVXG56X)FBV-<8'BY4[5GM">XH2Y1SC M<**0 )KH7;"TA?BP^[T>2$T7QD0QEMD8*)85?.2WK95G.LC+3$X![TY2Z;B- M+\ 48?4D@;Z];:NX0PY?4U5[ ,+8BM!+"O$1!=6*9);Q4D,P^Z.NWD\X0>K> MM=*!!O(C(L2KYTY+\,K(68,[*V%;%DY4D!V+YRFHI78\HL&L_6\;[A4KG?50 M,SW]_#VW%B:>M8\I#F/BYI?.R-)+/'[3/CG^H;Z&?NZ@V^[CDK'YU_'\XL%! MCMJC]U!^ZSSD;/B^MMH.7& M\-TT^#LF>V1[=@ZE,3)'D-XQNY7,7G7MOUU=E([NU Z9+*W/4SX&+Q+R.V64 M ^]*7!,M;@#J;V3V'JG;AU3QY9.!]F8@#"H;+=DH_A85;[F)EW<0592+L/^* M"-A'!5K0UE>37=E*"Q;MWGG@KEGP;#>*OVCALI>?V.;= #9M%5VD A(/9-HR M^,WMN+XP2.\J%S^S4;L!TP/_SII.<,YQ2MBMO=9^87A]^13\71*N?YUUN$?K M'JU;Y\7')44[#^+&\#TW$+ /?,I.FXQ^1KD'[_<$WHY]>3/;-'YN"]95K[:/ MG<[?V(0\NATIS'UB>KLD53#;WZG]/G;QAM^+[Z,BF2B@Y:]G.T+UW^4NO&I: M:)K_X+?D(VBY77N>&% !'TL1>WR&5X,S)D M,2YH=&WM6GMSVC@0_RI[=*Y-9K"Q>?2(H0AG,9U1H M"!0E&D<73,M6KM6 M=^HM<)I>Z\!S#^#L!/8N)H-]0QSK&<:75+#>XUKP"E1GB]U MW+F^P9=6)N6Z2 IM163&^-)[,6$SFL(I7<"YG!'QHIJ/X#VEBD4O.AEUROZA MR!K5T_1*6X2S*3(WLG9R_;U"=4.]L<^"9AKYDH>=2Y8RGW&FEU[,PI *7/'\ M6;ON-#K=FJ%&TR4_2%!_8Y-\F8M3-X2N](97,8JMH5&W';=;\W^@E#?,^5G0 MGV7, $\G5;>7\Y=!P<,2_ [X'0S/)\='QX/^Y'AT"F<7Y^.+_ND$)J/M8?E[ M17;;<&&/[8$-X^$@$]MMM)SJKRMP?PS]P]'99'BX&P8NS7K@O(31$4S>#&'< M/W_=/QV.K=&?[X=_07\P,3-UQZEO3XV_YZEFT3(?8@+/E/;<=K(#8?#[):_T MC@4$4@@:F-_J/-/1,84/<,5 4-X03HH(8&FX53)94 M!9)"Q'B9>)KIIULR5\%'*!UII2[X?@[%$/B-O7%DUTP3K M.UR&HA*.CDX3]&U:S59%3&"E:,:189@5.%G 0*HYS_PI$ZJR+=-KT<)^& MP^J^X-@\L)M8FZ]9L-C;<^QZ*]&PNC57#]?J]K4])>X3<;DHK5L^6PM%$L]7 ME'RT%FC*;_8"5O/$3TV:0#NF(7'=$&5KHKCJ\%8J-VRG\;@T;O[QL)Q[WT_H_&!:R+V.Q+K>4,$7H%B"86 MPC,G^_ME3<*^5MYF4Q[3R"! XEI:Z];8-\QXHQ2Y8=3[/#@/\9#LD$XYW+]X M$DP4O<,Q^"E*/T'U\4#U]HG(MI2Z2ZC]:OKVAX$\!WT7G'\5OI M'1)-/2CU^@]2Q\[%6_LGV1.\'PV\:UE/O&S%;5O^VXJWUAV,5XUPGP0?ITK. M16B:]E)Y91F\]I;9YD31X:RC()P):A7/9>&\_G;;1@=_8VCUVEQ"IM3*>Z$D MTE1YY%*RL$!'NVW7FZMR/1]SLDYG_CI>+7N;[U]02P,$% @ C8*H6C5' M+46B!0 @RH !@ !P9&9S+3(P,C4P,S,Q>&5X,S)D,BYH=&WM6FU3VS@0 M_BM[Z5P+,W%BYZ47G%QFTA"FS!1"B;FY^RC;LV6VNF!V[.Z!;1W MV0GL73CC?3TX5'&$5TK\X2"FBH 7$IE2]6?MPCDR>K7A0#$5T>&@67[F8UWA MKX8#GUU"JE81_;,6$SEGW% BL=MFHOHXLXG=-\9<&4OFJ]"V3//W?D)\G_&Y M$=% V=U&KW?=)-D\7+>)E"F&JD@:$<4NJ99=D>I%E$C;%2KLWUS@:S.30M^IE2RX$T_&YVR+Q1%HWJ*7BF#1&R. MPC76?JZ_7:BN1V^LLZ291JZ(_/XE2YG+(J96=LA\GW*<\?I5KV6V^X.F'HVF M2YX(J+NQ2#[-PJY;H&O#R56(L!6T6PVS-6BZ3XCRECFO@?XL8WJX.ZF\.\YG MPX*7!?P>_!U/SIWCH^/QR#F>GL+9Q?GL8G3J@#-]/"[_7\A6#RX:L\:X ;/) M.(-MM;MF_?D"'LU@=#@]ED9DS__C#Y M!T9C1_>TS >/><\XQ#&.JRC;ZMT'9FUXS,$3G%-/WW3SE$6%%#XNB$0O12LX MIXF0"D0 9X=',!/10H],ZW#,O0;LZ<%:L9;9'XL84YU5]LOJ[V,F T="QICK M&!\A$#(3_#D7#!3A^G!"I!="VZJ#3G?J0%((6%3F3GK\C'H+B1D!&H1P'R97 MF.QPS*!PL9BEJ08M^.M7UENS?T)6T,LE;>#*-2AA(? ZC'R.2=DY^4+J*!*7 MT)D&_,4\"F>2IDR;L@Y'C.O\+EMX'#(:%"V,1# - APMM5WT4H7N=< VQ0+\ MDBQDNB!H>26@$A,*0VIUO(%[H<]:Q\<-'A!^V 1X1[PT+N1 MIN":EI)^7C!)=;Z?:D^D:[_N$62^!*N[Y^^OO7=-XC6!"Q=:!^U.7S-LYZ\? M\UC8K6&]V%.AG54D6"G#4(LJ<)Q(JLR73&W&@\:M[\W&!9D6J(FY$2SFN MD#Z5AB>BB"0IMER6.(OU<^X.E%^V7^K;AD>BPG!8DA<2.P>-#A;4 M%0L6:]MFH]7-Q50*ZXI\@3*#2"Q+2Y:_C:4DB>U*2CX92S3;=XOU=3]Q4WW[ MIWU]8G!3Z2=/L98A4]1($^)1&[=TIA9.P72C2I7\0*.X*O].-F\WS/9VF/Q' MM.O\L36,NJ5>4TF]FQYLYSPQ974PTYEJ?MV@Z<-1\^='\=KPWT*:A;! MW!5*B1B9=P7($N;#*S/[>_[J-]-FI<2X98D=BY^*Q8^N4\[1K])7A[2?PMU[ M*+TCZ:] TOO=^Q]#*?:MX[VLRV8*P7K9,XOOG,<,FNSE\/2.%<_VDO:!%=P& M!G_CO/!%<7<78[>5H7N)9,C+!(EY?_#&^;V3.9\L3VL?'?%5[E$#E< M/XAQB?=I+C'7\?5#(R'M\H"F\FKB9D=Q$-Y"(!'CU"A^ETLU6IWU05+>9F8'XOD[G,WL%=#_ %!+ 0(4 M Q0 ( (V"J%I*C.,DS!4 39 1 " 0 !P9&9S M+3(P,C4P,S,Q+GAS9%!+ 0(4 Q0 ( (V"J%JTYER4EA@ 'YL 0 5 M " ?L5 !P9&9S+3(P,C4P,S,Q7V-A;"YX;6Q02P$"% ,4 M" "-@JA:WV#P^?TV #1=P, %0 @ '$+@ <&1F&UL4$L! A0#% @ C8*H6CW-:1LID@ NND( !4 M ( !]&4 '!D9G,M,C R-3 S,S%?;&%B+GAM;%!+ 0(4 Q0 ( M (V"J%KIYK\B%5T 'F8!@ 5 " 5#X !P9&9S+3(P,C4P M,S,Q7W!R92YX;6Q02P$"% ,4 " "-@JA:X0(>]K1= @#SC!L %0 M @ &850$ <&1FFCCP@ @] 8 M " 12\ P!P9&9S+3(P,C4P,S,Q>&5X,S%D,BYH=&U02P$"% ,4 M " "-@JA:*$7.GXL% !.* & @ '9Q , <&1F#,R9#$N:'1M4$L! A0#% @ C8*H6C5'+46B!0 @RH M !@ ( !FLH# '!D9G,M,C R-3 S,S%X97@S,F0R+FAT;5!+ 4!08 "@ * *8" !RT , ! end XML 93 pdfs-20250331x10q_htm.xml IDEA: XBRL DOCUMENT 0001120914 us-gaap:AccountsReceivableMember 2025-03-31 0001120914 us-gaap:AccountsReceivableMember 2024-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2025-01-01 2025-03-31 0001120914 pdfs:StockRepurchaseProgram2024Member 2025-01-01 2025-03-31 0001120914 pdfs:StockRepurchaseProgram2024Member 2024-04-15 2024-04-15 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-04-11 2022-04-11 0001120914 us-gaap:CommonStockMember 2025-01-01 2025-03-31 0001120914 us-gaap:TreasuryStockCommonMember 2025-03-31 0001120914 us-gaap:RetainedEarningsMember 2025-03-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2025-03-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2025-03-31 0001120914 us-gaap:TreasuryStockCommonMember 2024-12-31 0001120914 us-gaap:RetainedEarningsMember 2024-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2024-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2024-03-31 0001120914 us-gaap:RetainedEarningsMember 2024-03-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2024-03-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-03-31 0001120914 us-gaap:TreasuryStockCommonMember 2023-12-31 0001120914 us-gaap:RetainedEarningsMember 2023-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2023-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-12-31 0001120914 us-gaap:CommonStockMember 2025-03-31 0001120914 us-gaap:CommonStockMember 2024-12-31 0001120914 us-gaap:CommonStockMember 2024-03-31 0001120914 us-gaap:CommonStockMember 2023-12-31 0001120914 pdfs:PurchasePlanYear2021Member 2024-03-31 0001120914 us-gaap:EmployeeStockOptionMember 2025-03-31 0001120914 pdfs:IncentivePlanYear2011Member 2024-01-01 2024-03-31 0001120914 pdfs:PurchasePlanYear2021Member 2024-01-01 2024-03-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2024-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2024-01-01 2024-03-31 0001120914 pdfs:IntegratedYieldRampMember 2025-01-01 2025-03-31 0001120914 pdfs:AnalyticsMember 2025-01-01 2025-03-31 0001120914 pdfs:IntegratedYieldRampMember 2024-01-01 2024-03-31 0001120914 pdfs:AnalyticsMember 2024-01-01 2024-03-31 0001120914 2024-08-01 2024-08-31 0001120914 srt:MaximumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember 2025-03-07 0001120914 pdfs:PurchaseObligationsMember 2025-03-31 0001120914 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2025-03-31 0001120914 us-gaap:LeaseholdImprovementsMember 2025-03-31 0001120914 us-gaap:FurnitureAndFixturesMember 2025-03-31 0001120914 us-gaap:ComputerEquipmentMember 2025-03-31 0001120914 pdfs:TestEquipmentMember 2025-03-31 0001120914 pdfs:LaboratoryAndTestEquipmentMember 2025-03-31 0001120914 pdfs:InProgressDfiSystemAssetsMember 2025-03-31 0001120914 pdfs:InProgressCvSystemAndOtherAssetsMember 2025-03-31 0001120914 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2024-12-31 0001120914 us-gaap:LeaseholdImprovementsMember 2024-12-31 0001120914 us-gaap:FurnitureAndFixturesMember 2024-12-31 0001120914 us-gaap:ComputerEquipmentMember 2024-12-31 0001120914 pdfs:TestEquipmentMember 2024-12-31 0001120914 pdfs:LaboratoryAndTestEquipmentMember 2024-12-31 0001120914 pdfs:InProgressDfiSystemAssetsMember 2024-12-31 0001120914 pdfs:InProgressCvSystemAndOtherAssetsMember 2024-12-31 0001120914 pdfs:SecureWiseMember 2025-03-07 2025-03-07 0001120914 pdfs:StockRepurchaseProgram2022Member 2024-01-01 2024-03-31 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-04-01 2024-03-31 0001120914 us-gaap:FairValueInputsLevel3Member 2025-03-31 0001120914 us-gaap:FairValueInputsLevel1Member 2025-03-31 0001120914 us-gaap:FairValueInputsLevel3Member 2024-12-31 0001120914 us-gaap:FairValueInputsLevel1Member 2024-12-31 0001120914 us-gaap:OtherNoncurrentAssetsMember 2024-08-31 0001120914 us-gaap:NonUsMember 2025-03-31 0001120914 country:US 2025-03-31 0001120914 us-gaap:NonUsMember 2024-12-31 0001120914 country:US 2024-12-31 0001120914 srt:AffiliatedEntityMember us-gaap:CollaborativeArrangementMember 2020-07-01 2020-07-31 0001120914 us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember 2025-03-07 2025-03-07 0001120914 us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember 2025-03-07 0001120914 us-gaap:TrademarksAndTradeNamesMember 2025-03-31 0001120914 us-gaap:PatentsMember 2025-03-31 0001120914 us-gaap:NoncompeteAgreementsMember 2025-03-31 0001120914 us-gaap:DevelopedTechnologyRightsMember 2025-03-31 0001120914 us-gaap:CustomerRelationshipsMember 2025-03-31 0001120914 us-gaap:TrademarksAndTradeNamesMember 2024-12-31 0001120914 us-gaap:PatentsMember 2024-12-31 0001120914 us-gaap:NoncompeteAgreementsMember 2024-12-31 0001120914 us-gaap:DevelopedTechnologyRightsMember 2024-12-31 0001120914 us-gaap:CustomerRelationshipsMember 2024-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2025-01-01 2025-03-31 0001120914 pdfs:PurchasePlanYear2021Member 2025-01-01 2025-03-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2025-03-31 0001120914 pdfs:PurchasePlanYear2021Member 2025-03-31 0001120914 srt:MinimumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:SecuredDebtMember pdfs:AlternateBaseRateSecuredOvernightFinancingRateMember 2025-03-07 2025-03-07 0001120914 srt:MinimumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:SecuredDebtMember pdfs:AlternateBaseRateFederalFundsMember 2025-03-07 2025-03-07 0001120914 srt:MinimumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:LineOfCreditMember us-gaap:SecuredOvernightFinancingRateSofrMember 2025-03-07 2025-03-07 0001120914 srt:MinimumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:LineOfCreditMember pdfs:AlternateBaseRateSecuredOvernightFinancingRateMember 2025-03-07 2025-03-07 0001120914 srt:MinimumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:LineOfCreditMember pdfs:AlternateBaseRateFederalFundsMember 2025-03-07 2025-03-07 0001120914 srt:MaximumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:SecuredDebtMember pdfs:AlternateBaseRateSecuredOvernightFinancingRateMember 2025-03-07 2025-03-07 0001120914 srt:MaximumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:SecuredDebtMember pdfs:AlternateBaseRateFederalFundsMember 2025-03-07 2025-03-07 0001120914 srt:MaximumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:LineOfCreditMember pdfs:AlternateBaseRateSecuredOvernightFinancingRateMember 2025-03-07 2025-03-07 0001120914 srt:MaximumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:LineOfCreditMember pdfs:AlternateBaseRateFederalFundsMember 2025-03-07 2025-03-07 0001120914 us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember us-gaap:LineOfCreditMember us-gaap:FederalFundsEffectiveSwapRateMember 2025-03-07 2025-03-07 0001120914 pdfs:AdvantestAmericaIncMember pdfs:SoftwareLicenseAndRelatedServicesAgreementMember 2025-01-01 2025-03-31 0001120914 pdfs:AdvantestAmericaIncMember pdfs:SoftwareLicenseAndRelatedServicesAgreementMember 2024-01-01 2024-03-31 0001120914 pdfs:AnalyticsMember srt:AffiliatedEntityMember 2025-03-31 0001120914 pdfs:AnalyticsMember srt:AffiliatedEntityMember 2024-12-31 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 pdfs:InternationalOperationsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 pdfs:CustomerCMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 pdfs:CustomerCMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 pdfs:CustomerBMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 pdfs:CustomerAMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 country:JP us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2025-01-01 2025-03-31 0001120914 pdfs:CustomerEMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2024-01-01 2024-12-31 0001120914 pdfs:CustomerCMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2024-01-01 2024-12-31 0001120914 pdfs:CustomerBMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2024-01-01 2024-12-31 0001120914 pdfs:CustomerAMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2024-01-01 2024-12-31 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2024-01-01 2024-03-31 0001120914 pdfs:InternationalOperationsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2024-01-01 2024-03-31 0001120914 pdfs:CustomerBMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2024-01-01 2024-03-31 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2024-01-01 2024-03-31 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2024-01-01 2024-03-31 0001120914 country:JP us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2024-01-01 2024-03-31 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2024-01-01 2024-03-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2024-01-01 2024-03-31 0001120914 us-gaap:RetainedEarningsMember 2025-01-01 2025-03-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2025-01-01 2025-03-31 0001120914 us-gaap:RetainedEarningsMember 2024-01-01 2024-03-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-03-31 0001120914 2024-03-31 0001120914 2023-12-31 0001120914 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2025-03-31 0001120914 us-gaap:MoneyMarketFundsMember 2025-03-31 0001120914 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2024-12-31 0001120914 us-gaap:MoneyMarketFundsMember 2024-12-31 0001120914 us-gaap:OtherNoncurrentAssetsMember 2025-03-31 0001120914 us-gaap:OtherNoncurrentAssetsMember 2024-12-31 0001120914 us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember 2025-03-31 0001120914 us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember 2024-12-31 0001120914 pdfs:SecureWiseMember 2025-01-01 2025-03-31 0001120914 pdfs:SecureWiseMember 2024-10-01 2024-12-31 0001120914 pdfs:SecureWiseMember us-gaap:TrademarksMember 2025-03-07 0001120914 pdfs:SecureWiseMember us-gaap:OtherIntangibleAssetsMember 2025-03-07 0001120914 pdfs:SecureWiseMember us-gaap:DevelopedTechnologyRightsMember 2025-03-07 0001120914 pdfs:SecureWiseMember us-gaap:CustomerRelationshipsMember 2025-03-07 0001120914 pdfs:SecureWiseMember 2025-03-07 0001120914 us-gaap:NotesReceivableMember us-gaap:FairValueInputsLevel3Member 2025-03-31 0001120914 us-gaap:NotesReceivableMember 2025-03-31 0001120914 us-gaap:NotesReceivableMember us-gaap:FairValueInputsLevel3Member 2024-12-31 0001120914 us-gaap:NotesReceivableMember 2024-12-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember us-gaap:FairValueInputsLevel1Member 2025-03-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember 2025-03-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember us-gaap:FairValueInputsLevel1Member 2024-12-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember 2024-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2025-01-01 2025-03-31 0001120914 us-gaap:EmployeeStockOptionMember 2025-01-01 2025-03-31 0001120914 pdfs:EmployeeStockPlansMember 2025-01-01 2025-03-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2024-01-01 2024-03-31 0001120914 us-gaap:EmployeeStockOptionMember 2024-01-01 2024-03-31 0001120914 pdfs:EmployeeStockPlansMember 2024-01-01 2024-03-31 0001120914 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2025-01-01 2025-03-31 0001120914 us-gaap:ResearchAndDevelopmentExpenseMember 2025-01-01 2025-03-31 0001120914 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2024-01-01 2024-03-31 0001120914 us-gaap:ResearchAndDevelopmentExpenseMember 2024-01-01 2024-03-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2025-01-01 2025-03-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2024-01-01 2024-03-31 0001120914 pdfs:StockRepurchaseProgram2024Member 2024-04-15 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-04-11 0001120914 pdfs:IndemnificationsMember 2025-01-01 2025-03-31 0001120914 us-gaap:EmployeeStockOptionMember pdfs:IncentivePlanYear2011Member 2011-11-16 2011-11-16 0001120914 us-gaap:CommonStockMember 2024-01-01 2024-03-31 0001120914 us-gaap:TreasuryStockCommonMember 2024-01-01 2024-03-31 0001120914 us-gaap:TransferredOverTimeMember 2025-01-01 2025-03-31 0001120914 us-gaap:TransferredAtPointInTimeMember 2025-01-01 2025-03-31 0001120914 us-gaap:TransferredOverTimeMember 2024-01-01 2024-03-31 0001120914 us-gaap:TransferredAtPointInTimeMember 2024-01-01 2024-03-31 0001120914 pdfs:PurchasePlanYear2021Member 2021-08-01 2025-03-31 0001120914 2024-12-31 0001120914 us-gaap:EmployeeStockOptionMember pdfs:IncentivePlanYear2011AmendedMember us-gaap:SubsequentEventMember 2025-04-28 0001120914 pdfs:PurchasePlanYear2021AmendedMember us-gaap:SubsequentEventMember 2025-04-28 0001120914 pdfs:AdvantestAmericaIncMember pdfs:SoftwareLicenseAndRelatedServicesAgreementMember 2025-03-31 0001120914 srt:MinimumMember 2025-01-01 2025-03-31 0001120914 2025-03-31 0001120914 pdfs:IncentivePlanYear2011Member 2025-03-31 0001120914 srt:MaximumMember pdfs:IncentivePlanYear2011Member 2011-11-16 0001120914 srt:MinimumMember us-gaap:RevolvingCreditFacilityMember pdfs:LineOfCreditFacilityLenderMember 2025-03-07 0001120914 srt:MinimumMember us-gaap:TrademarksAndTradeNamesMember 2025-01-01 2025-03-31 0001120914 srt:MinimumMember us-gaap:PatentsMember 2025-01-01 2025-03-31 0001120914 srt:MinimumMember us-gaap:DevelopedTechnologyRightsMember 2025-01-01 2025-03-31 0001120914 srt:MinimumMember us-gaap:CustomerRelationshipsMember 2025-01-01 2025-03-31 0001120914 srt:MaximumMember us-gaap:TrademarksAndTradeNamesMember 2025-01-01 2025-03-31 0001120914 srt:MaximumMember us-gaap:PatentsMember 2025-01-01 2025-03-31 0001120914 srt:MaximumMember us-gaap:DevelopedTechnologyRightsMember 2025-01-01 2025-03-31 0001120914 srt:MaximumMember us-gaap:CustomerRelationshipsMember 2025-01-01 2025-03-31 0001120914 us-gaap:NoncompeteAgreementsMember 2025-01-01 2025-03-31 0001120914 us-gaap:CostOfSalesMember 2025-01-01 2025-03-31 0001120914 us-gaap:CostOfSalesMember 2024-01-01 2024-03-31 0001120914 pdfs:CostsAndExpensesMember 2025-01-01 2025-03-31 0001120914 pdfs:CostsAndExpensesMember 2024-01-01 2024-03-31 0001120914 2024-01-01 2024-03-31 0001120914 pdfs:AnalyticsMember srt:AffiliatedEntityMember 2025-01-01 2025-03-31 0001120914 pdfs:AnalyticsMember srt:AffiliatedEntityMember 2024-01-01 2024-03-31 0001120914 pdfs:IncentivePlanYear2011Member 2025-01-01 2025-03-31 0001120914 2025-05-02 0001120914 2025-01-01 2025-03-31 shares iso4217:USD pure iso4217:USD shares 0001120914 --12-31 2025 Q1 0 0 2 0 900000 0 0 0 0 0 0.00 0.00 0 67900000 false 10-Q true 2025-03-31 false 000-31311 PDF SOLUTIONS, INC. DE 25-1701361 2858 De La Cruz Blvd. Santa Clara CA 95050 408 280-7900 Common Stock, $0.00015 par value PDFS NASDAQ Yes Yes Large Accelerated Filer false false false 39139563 43734000 90594000 10415000 24291000 63676000 73649000 22800000 17445000 140625000 205979000 56564000 48465000 3661000 4029000 96645000 14953000 58357000 12307000 215000 43000 33905000 29513000 389972000 315289000 9394000 8255000 10902000 16855000 13037000 8752000 1591000 1675000 27131000 25005000 2240000 64295000 60542000 2932000 2915000 3154000 3504000 66416000 4195000 2291000 140992000 69252000 0.00015 0.00015 5000000 5000000 0 0 0.00015 0.00015 70000000 70000000 51170000 50717000 39130000 38801000 6000 6000 511745000 502902000 12040000 11916000 162672000 159352000 -97020000 -93988000 -3079000 -3531000 248980000 246037000 389972000 315289000 42471000 38463000 5307000 2847000 47778000 41310000 12955000 13529000 14628000 12984000 23372000 16498000 378000 259000 -3555000 -1960000 311000 870000 1692000 -2996000 -268000 36000 125000 -3032000 -393000 462000 -522000 -10000 -20000 452000 -542000 -2580000 -935000 -0.08 -0.01 -0.08 -0.01 39088000 38500000 39088000 38500000 38801000 6000 502902000 11916000 -159352000 -93988000 -3531000 246037000 90000 2120000 2120000 1000 8000 8000 238000 124000 3320000 3320000 6715000 6715000 -3032000 452000 -2580000 39130000 6000 511745000 12040000 -162672000 -97020000 -3079000 248980000 38289000 6000 473295000 11460000 -143923000 -98045000 -2387000 228946000 -202000 202000 6899000 6899000 74000 1916000 1916000 1000 25000 25000 231000 118000 3794000 3794000 6154000 6154000 -393000 -542000 -935000 38393000 6000 481390000 11780000 -154616000 -98438000 -2929000 225413000 -3032000 -393000 6596000 6110000 685000 1064000 1056000 843000 872000 634000 196000 485000 -312000 9000 248000 74000 -13033000 2389000 5123000 408000 374000 306000 4124000 5864000 84000 1801000 -6025000 -5214000 3936000 213000 1504000 2304000 -440000 -319000 8640000 -1862000 16998000 19000000 2938000 19619000 8105000 2023000 98000 129718000 -123861000 -2642000 69150000 8000 25000 2120000 1916000 3320000 3794000 6899000 67958000 -8752000 403000 -466000 -46860000 -13722000 90594000 98978000 43734000 85256000 226000 668000 481000 405000 136000 6094000 745000 119000 45000 3652000 142000 500000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">1. BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual consolidated financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2024, filed with the SEC on February 27, 2025.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The condensed consolidated balance sheet as of December 31, 2024 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, fair value of convertible note receivable, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, realization of deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Reclassification of Prior Period Amount</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Certain immaterial prior period amounts on the condensed consolidated balance sheet and condensed consolidated statements of cash flows have been reclassified to conform with current period presentation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recent Accounting Standards</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In December 2023, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) No. 2023-09, Income Taxes (Topic 740): <i style="font-style:italic;">Improvements to Income Tax Disclosures</i>. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” This ASU may be applied either prospectively or retrospectively. The Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In November 2024, the FASB issued ASU No. 2024-03, <i style="font-style:italic;">Income Statement – Reporting Comprehensive Income – Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses</i>. This ASU requires the disaggregation of certain expenses in the notes to the consolidated financial statements, to provide enhanced transparency into the expense captions presented on the face of the income statement. This ASU is effective on a prospective basis for fiscal years beginning after December 15, 2026 and for interim periods beginning after December 15, 2027, with early adoption permitted. This ASU may be applied either prospectively or retrospectively. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual consolidated financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2024, filed with the SEC on February 27, 2025.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The condensed consolidated balance sheet as of December 31, 2024 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, fair value of convertible note receivable, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, realization of deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Reclassification of Prior Period Amount</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Certain immaterial prior period amounts on the condensed consolidated balance sheet and condensed consolidated statements of cash flows have been reclassified to conform with current period presentation.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recent Accounting Standards</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In December 2023, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) No. 2023-09, Income Taxes (Topic 740): <i style="font-style:italic;">Improvements to Income Tax Disclosures</i>. This ASU is intended to improve the transparency of income tax disclosures by requiring (1) consistent categories and greater disaggregation of information in the rate reconciliation and (2) income taxes paid disaggregated by jurisdiction. It also includes certain other amendments to improve the effectiveness of income tax disclosures. The ASU’s amendments are effective for public business entities for annual periods beginning after December 15, 2024. Entities are permitted to early adopt the standard for “annual financial statements that have not yet been issued or made available for issuance.” This ASU may be applied either prospectively or retrospectively. The Company will adopt this ASU on a prospective basis. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In November 2024, the FASB issued ASU No. 2024-03, <i style="font-style:italic;">Income Statement – Reporting Comprehensive Income – Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses</i>. This ASU requires the disaggregation of certain expenses in the notes to the consolidated financial statements, to provide enhanced transparency into the expense captions presented on the face of the income statement. This ASU is effective on a prospective basis for fiscal years beginning after December 15, 2026 and for interim periods beginning after December 15, 2027, with early adoption permitted. This ASU may be applied either prospectively or retrospectively. The Company is currently evaluating the impact of the new standard on the consolidated financial statements and related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">2. REVENUE FROM CONTRACTS WITH CUSTOMERS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company derives revenue from two <span style="-sec-ix-hidden:Hidden_nrbkGt8z8UWNm6kTa0dyoA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">sources</span></span>: Analytics and Integrated Yield Ramp.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines revenue recognition through the following five steps:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the contract, or contracts, with a customer</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Determination of the transaction price</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Allocation of the transaction price to the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Recognition of revenue when, or as, performance obligations are satisfied</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;">Contracts with Multiple Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Analytics Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> and Cimetrix<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products), software-as-a-service (“SaaS”) (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products and includes secureWISE<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products and services), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> (“CV<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup>”) systems that do not include performance incentives based on customers’ yield achievement.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from SaaS arrangements, which allow for the use of a software product or service over a contractually determined period of time without the customer having to take possession of the software, e.g., cloud-based or via a network of secureWISE servers, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company also leases some of its DFI system and CV system assets to some customers. The Company determines the existence of a lease when the customer controls the use of these identified assets for a period of time defined in the lease agreement and classifies such leases as operating leases or sales-type leases. A lease is classified as a sales-type lease if it meets certain criteria under ASC Topic 842, Leases; otherwise, it is classified as an operating lease. Operating lease revenue is recognized on a straight-line basis over the lease term. Sales-type lease revenue and corresponding lease receivables are recognized at lease commencement based on the present value of the future lease payments, and related interest income on lease receivable is recognized over the lease term and are recorded under Analytics revenue in the condensed consolidated statements of comprehensive income (loss). Payments under sales-type leases are discounted using the interest rate implicit in the lease. When the Company’s leases are embedded in contracts with customers that include non-lease performance obligations, the Company allocates consideration in the contract between lease and non-lease components based on their relative SSPs. Assets subject to operating leases remain in property and equipment and continue to be depreciated. Assets subject to sales-type leases are derecognized from property and equipment, net at lease commencement and a net investment in the lease asset is recognized in prepaid expenses and other current assets and other non-current assets in the condensed consolidated balance sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company generates revenue from the sale of DFI system products. Revenue is recognized at a point in time when the Company’s performance obligations have been completed, and the customer has accepted the product.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed-fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Disaggregation of Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue percentage by timing of revenue:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Over time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 61</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Point-in-time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">International revenues accounted for approximately 62% and 57% of the Company’s total revenues during the three months ended March 31, 2025 and 2024, respectively. See Note 9, <i style="font-style:italic;">Customer and Geographic Information</i>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Significant Judgments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For revenue under project-based contracts for fixed-price services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company is required to estimate the range of the SSPs for each performance obligation and in instances where the SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Contract Balances</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs its obligations under a contract with a customer primarily by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The contract assets are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. The contract assets consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current (included in Prepaid expenses and other current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,423</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,224</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-current (included in Other non-current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 505</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 617</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,928</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,841</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company did not record any asset impairment charges related to contract assets for the periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the condensed consolidated balance sheets. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred revenues were the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 27,131</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,005</p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-current (included in Other non-current liabilities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,552</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,512</p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred revenues </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,683</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26,517</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Additional information related to deferred revenue were as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10,025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 11,444</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of March 31, 2025, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $226.7 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was an increase of $0.2 million and a decrease of $0.6 million during the three months ended March 31, 2025 and 2024, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Costs to Obtain or Fulfill a Contract</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Total capitalized direct sales commission costs and related fees were the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current (included in Prepaid expenses and other current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,929</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-current (included in Other non-current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,147</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,385</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total capitalized direct sales commission costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,641</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,314</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Amortization of capitalized direct sales commission costs was the following (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of capitalized direct sales commission costs </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 872</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 634</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">There was no impairment <span style="-sec-ix-hidden:Hidden_DXwSBAHf_0qCkONVXSo3ug;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">loss</span></span> in relation to the costs capitalized for the periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Practical Expedient</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a material significant financing component during the three months ended March 31, 2025 and 2024.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company derives revenue from two <span style="-sec-ix-hidden:Hidden_nrbkGt8z8UWNm6kTa0dyoA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">sources</span></span>: Analytics and Integrated Yield Ramp.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines revenue recognition through the following five steps:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the contract, or contracts, with a customer</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Determination of the transaction price</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Allocation of the transaction price to the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Recognition of revenue when, or as, performance obligations are satisfied</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.</p> 2 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;">Contracts with Multiple Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Analytics Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> and Cimetrix<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products), software-as-a-service (“SaaS”) (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products and includes secureWISE<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products and services), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> (“CV<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup>”) systems that do not include performance incentives based on customers’ yield achievement.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from SaaS arrangements, which allow for the use of a software product or service over a contractually determined period of time without the customer having to take possession of the software, e.g., cloud-based or via a network of secureWISE servers, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company also leases some of its DFI system and CV system assets to some customers. The Company determines the existence of a lease when the customer controls the use of these identified assets for a period of time defined in the lease agreement and classifies such leases as operating leases or sales-type leases. A lease is classified as a sales-type lease if it meets certain criteria under ASC Topic 842, Leases; otherwise, it is classified as an operating lease. Operating lease revenue is recognized on a straight-line basis over the lease term. Sales-type lease revenue and corresponding lease receivables are recognized at lease commencement based on the present value of the future lease payments, and related interest income on lease receivable is recognized over the lease term and are recorded under Analytics revenue in the condensed consolidated statements of comprehensive income (loss). Payments under sales-type leases are discounted using the interest rate implicit in the lease. When the Company’s leases are embedded in contracts with customers that include non-lease performance obligations, the Company allocates consideration in the contract between lease and non-lease components based on their relative SSPs. Assets subject to operating leases remain in property and equipment and continue to be depreciated. Assets subject to sales-type leases are derecognized from property and equipment, net at lease commencement and a net investment in the lease asset is recognized in prepaid expenses and other current assets and other non-current assets in the condensed consolidated balance sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company generates revenue from the sale of DFI system products. Revenue is recognized at a point in time when the Company’s performance obligations have been completed, and the customer has accepted the product.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed-fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Disaggregation of Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue percentage by timing of revenue:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Over time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 61</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Point-in-time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">International revenues accounted for approximately 62% and 57% of the Company’s total revenues during the three months ended March 31, 2025 and 2024, respectively. See Note 9, <i style="font-style:italic;">Customer and Geographic Information</i>.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Over time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 61</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Point-in-time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.45%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table> 0.61 0.65 0.39 0.35 1 1 0.62 0.57 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Significant Judgments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For revenue under project-based contracts for fixed-price services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company is required to estimate the range of the SSPs for each performance obligation and in instances where the SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Contract Balances</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs its obligations under a contract with a customer primarily by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The contract assets are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. The contract assets consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current (included in Prepaid expenses and other current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,423</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,224</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-current (included in Other non-current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 505</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 617</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,928</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,841</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company did not record any asset impairment charges related to contract assets for the periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the condensed consolidated balance sheets. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred revenues were the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 27,131</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,005</p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-current (included in Other non-current liabilities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,552</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,512</p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred revenues </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,683</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26,517</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Additional information related to deferred revenue were as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10,025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 11,444</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of March 31, 2025, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $226.7 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was an increase of $0.2 million and a decrease of $0.6 million during the three months ended March 31, 2025 and 2024, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current (included in Prepaid expenses and other current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,423</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,224</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-current (included in Other non-current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 505</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 617</p></td></tr><tr><td style="vertical-align:bottom;width:70.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,928</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,841</p></td></tr></table> 6423000 3224000 505000 617000 6928000 3841000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 27,131</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,005</p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-current (included in Other non-current liabilities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,552</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,512</p></td></tr><tr><td style="vertical-align:bottom;width:71.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred revenues </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,683</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26,517</p></td></tr></table> 27131000 25005000 1552000 1512000 28683000 26517000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10,025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 11,444</p></td></tr></table> 10025000 11444000 226700000 P2Y 200000 600000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Costs to Obtain or Fulfill a Contract</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Total capitalized direct sales commission costs and related fees were the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current (included in Prepaid expenses and other current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,929</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-current (included in Other non-current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,147</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,385</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total capitalized direct sales commission costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,641</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,314</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Amortization of capitalized direct sales commission costs was the following (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of capitalized direct sales commission costs </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 872</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 634</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">There was no impairment <span style="-sec-ix-hidden:Hidden_DXwSBAHf_0qCkONVXSo3ug;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">loss</span></span> in relation to the costs capitalized for the periods presented.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current (included in Prepaid expenses and other current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,929</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-current (included in Other non-current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,147</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,385</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total capitalized direct sales commission costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,641</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,314</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Amortization of capitalized direct sales commission costs was the following (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of capitalized direct sales commission costs </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 872</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 634</p></td></tr></table> 2494000 2929000 4147000 2385000 6641000 5314000 872000 634000 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Practical Expedient</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a material significant financing component during the three months ended March 31, 2025 and 2024.</p> false <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">3. BALANCE SHEET COMPONENTS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $27.0 million and $23.0 million as of March 31, 2025, and December 31, 2024, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $8.6 million and $9.0 million as of March 31, 2025, and December 31, 2024, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectibility of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance. <span style="background:#ffffff;">The allowance for credit losses was </span><span style="background:#ffffff;">$0.9</span><span style="background:#ffffff;"> </span><span style="-sec-ix-hidden:Hidden_OyvSsMB9hES5Lj590lFq1w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;background:#ffffff;">million</span></span><span style="background:#ffffff;"> as of March 31, 2025 and December 31, 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Prepaid expenses and other current assets</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Prepaid expenses and other current assets consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Prepaid expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,840</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,481</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,423</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 3,224</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs capitalized to obtain revenue contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,929</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net investments in sales-type leases - current portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,274</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,526</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income tax receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 769</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 285</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total prepaid expenses and other current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 22,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 17,445</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:12pt 0pt 12pt 0pt;">Property and Equipment</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Property and equipment, net consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12,751</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10,799</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Software and capitalized software development cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,646</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,617</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,553</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,529</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,850</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,691</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Laboratory and other equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,009</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,734</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 21,681</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 22,680</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Property and equipment in progress:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">DFI system assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 40,231</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 34,935</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">CV system and other assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,508</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,431</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 104,229</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 95,416</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Accumulated depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (47,665)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (46,951)</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 56,564</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 48,465</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Test equipment mainly includes DFI™ system and CV<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> system assets at customer sites that are contributing to revenue. Property and equipment in progress represent the development or construction of property and equipment that have not yet been placed in service for the Company’s intended use and are not depreciated. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Depreciation and amortization expense was $0.7 million and $1.1 million for the three months ended March 31, 2025 and 2024, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Goodwill and Intangible Assets, Net</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes goodwill transactions for the periods presented (in thousands): </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:27.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at beginning of the period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 14,953</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 15,029</p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Addition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 81,686</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign currency translation adjustment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (76)</p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at end of the period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 96,645</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 14,953</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The Company completed the acquisition of </span>SecureWise LLC (“SecureWise”) on<span style="background:#ffffff;"> March 7, 2025. See Note 14, “Business Combination” for additional information related to the goodwill and intangible assets added from this acquisition.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Intangible assets, net, consisted of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:31.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, 2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:31.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Acquired intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">1 - 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 38,400</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (8,080)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 30,320</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9,499</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,866)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,633</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">4<span style="white-space:pre-wrap;"> - </span>9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 46,173</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (25,326)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 20,847</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 34,566</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,601)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9,965</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Tradename and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">2 - 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,198</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,216)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,982</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,120)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 478</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Patent</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">6 - 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,892)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 208</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,869)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 231</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (848)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (848)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 95,719</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (37,362)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 58,357</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 48,611</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (36,304)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12,307</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The weighted average amortization period for acquired identifiable intangible assets was 9.1 years as of March 31, 2025. The amortization expense related to intangible assets were as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:67.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired technology (included in costs of revenues)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 678</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 584</p></td></tr><tr><td style="vertical-align:bottom;width:67.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired intangible assets (presented separately under costs and expenses)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 378</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 259</p></td></tr><tr><td style="vertical-align:bottom;width:67.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total amortization of acquired intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,056</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 843</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The estimated future amortization of acquired identifiable intangible assets as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025 (remaining nine months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,196</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,092</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,939</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,634</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,949</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2030 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 22,547</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future amortization expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 58,357</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">There was no <span style="-sec-ix-hidden:Hidden_v5XwXu7C6U-fZxS5jTj0-g;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">impairment</span></span> <span style="-sec-ix-hidden:Hidden_oc8ed0wR9UadW48KioKfXw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">charges</span></span> for goodwill and intangible assets during the three months ended March 31, 2025 and 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Other Non-current Assets</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Other non-current assets consisted of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net investments in sales-type leases (3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 16,492</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 13,226</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Unbilled accounts receivable (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,587</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,983</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs capitalized to obtain revenue contracts (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,147</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,385</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Contract assets (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 505</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 617</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,174</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,302</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total other non-current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 33,905</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 29,513</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">See Note 2, </span><i style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:normal;">Revenue from Contracts with Customers</i><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">See Note 3, </span><i style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:normal;">Balance Sheet Components – Accounts Receivable</i><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">The Company had net investments in sales-type leases for its DFI™ system and CV® system assets. The following table summarizes the components of the Company’s net investments in sales-type leases in the condensed consolidated balance sheets (in thousands):</span></td></tr></table><div style="margin-top:12pt;"></div><div style="padding-left:36pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:92.75%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Present value of lease receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,784</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,238</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: Contract liability </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (3,235)</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net lease receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,784</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 10,003</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unguaranteed residual assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 7,982</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 7,749</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total net investments in sales-type leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 21,766</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 17,752</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Reported as:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current (included in Prepaid expenses and other current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,274</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 4,526</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-current (included in Other non-current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 16,492</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,226</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total net investments in sales-type leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 21,766</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 17,752</p></td></tr></table></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:12pt 0pt 12pt 36pt;">Maturities of leases payments under sales-type leases as of March 31, 2025, were as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><div style="padding-left:36pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:92.77%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025 (remaining nine months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,715</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,086</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,724</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 56</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future sales-type lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 15,581</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Present value adjustment (a)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,797)</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of lease receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 13,784</p></td></tr></table></div><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-left:36pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(a)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using the rate implicit in the lease determined for each lease.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:12pt 0pt 12pt 36pt;">There was no allowance for credit <span style="-sec-ix-hidden:Hidden_6bLF8rOGvkO5xGS9PSvNfQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">losses</span></span> on lease receivables as of March 31, 2025, and December 31, 2024. The Company’s ongoing risk management strategy for residual assets includes performing regular reviews of estimated residual values.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $27.0 million and $23.0 million as of March 31, 2025, and December 31, 2024, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $8.6 million and $9.0 million as of March 31, 2025, and December 31, 2024, respectively.</p> 27000000 23000000 8600000 9000000 900000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Prepaid expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,840</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,481</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Contract assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,423</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 3,224</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs capitalized to obtain revenue contracts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,929</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net investments in sales-type leases - current portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,274</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,526</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Income tax receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 769</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 285</p></td></tr><tr><td style="vertical-align:bottom;width:71.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total prepaid expenses and other current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 22,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 17,445</p></td></tr></table> 7840000 6481000 6423000 3224000 2494000 2929000 5274000 4526000 769000 285000 22800000 17445000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12,751</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10,799</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Software and capitalized software development cost</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,646</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,617</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,553</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,529</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,850</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,691</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Laboratory and other equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,009</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,734</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 21,681</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 22,680</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Property and equipment in progress:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">DFI system assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 40,231</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 34,935</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">CV system and other assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,508</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,431</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 104,229</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 95,416</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Accumulated depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (47,665)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (46,951)</p></td></tr><tr><td style="vertical-align:bottom;width:70.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 56,564</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 48,465</p></td></tr></table> 12751000 10799000 6646000 5617000 2553000 2529000 6850000 6691000 6009000 5734000 21681000 22680000 40231000 34935000 7508000 6431000 104229000 95416000 47665000 46951000 56564000 48465000 700000 1100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:27.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at beginning of the period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 14,953</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 15,029</p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Addition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 81,686</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign currency translation adjustment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (76)</p></td></tr><tr><td style="vertical-align:bottom;width:70.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance at end of the period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 96,645</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 14,953</p></td></tr></table> 14953000 15029000 81686000 6000 -76000 96645000 14953000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:31.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, 2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:31.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Acquired intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">1 - 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 38,400</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (8,080)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 30,320</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9,499</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,866)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,633</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">4<span style="white-space:pre-wrap;"> - </span>9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 46,173</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (25,326)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 20,847</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 34,566</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,601)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9,965</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Tradename and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">2 - 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,198</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,216)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,982</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,120)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 478</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Patent</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">6 - 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,892)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 208</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,869)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 231</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (848)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (848)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:21.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 95,719</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (37,362)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 58,357</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 48,611</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (36,304)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.08%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12,307</p></td></tr></table> P1Y P13Y 38400000 8080000 30320000 9499000 7866000 1633000 P4Y P9Y 46173000 25326000 20847000 34566000 24601000 9965000 P2Y P10Y 8198000 1216000 6982000 1598000 1120000 478000 P6Y P10Y 2100000 1892000 208000 2100000 1869000 231000 P3Y 848000 848000 848000 848000 95719000 37362000 58357000 48611000 36304000 12307000 P9Y1M6D <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:67.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired technology (included in costs of revenues)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 678</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 584</p></td></tr><tr><td style="vertical-align:bottom;width:67.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired intangible assets (presented separately under costs and expenses)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 378</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 259</p></td></tr><tr><td style="vertical-align:bottom;width:67.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total amortization of acquired intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,056</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 843</p></td></tr></table> 678000 584000 378000 259000 1056000 843000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025 (remaining nine months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,196</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,092</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,939</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,634</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,949</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2030 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 22,547</p></td></tr><tr><td style="vertical-align:bottom;width:85.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future amortization expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 58,357</p></td></tr></table> 6196000 8092000 7939000 7634000 5949000 22547000 58357000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net investments in sales-type leases (3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 16,492</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 13,226</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Unbilled accounts receivable (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,587</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,983</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs capitalized to obtain revenue contracts (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,147</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,385</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Contract assets (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 505</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 617</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,174</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,302</p></td></tr><tr><td style="vertical-align:bottom;width:70.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total other non-current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 33,905</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 29,513</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">See Note 2, </span><i style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:normal;">Revenue from Contracts with Customers</i><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">See Note 3, </span><i style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:normal;">Balance Sheet Components – Accounts Receivable</i><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">The Company had net investments in sales-type leases for its DFI™ system and CV® system assets. The following table summarizes the components of the Company’s net investments in sales-type leases in the condensed consolidated balance sheets (in thousands):</span></td></tr></table><div style="margin-top:12pt;"></div><div style="padding-left:36pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:92.75%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Present value of lease receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,784</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,238</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: Contract liability </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (3,235)</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net lease receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,784</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 10,003</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unguaranteed residual assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 7,982</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 7,749</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total net investments in sales-type leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 21,766</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 17,752</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Reported as:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current (included in Prepaid expenses and other current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,274</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 4,526</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Non-current (included in Other non-current assets)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 16,492</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,226</p></td></tr><tr><td style="vertical-align:bottom;width:69.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total net investments in sales-type leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 21,766</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 17,752</p></td></tr></table></div> 16492000 13226000 8587000 8983000 4147000 2385000 505000 617000 4174000 4302000 33905000 29513000 13784000 13238000 3235000 13784000 10003000 7982000 7749000 21766000 17752000 5274000 4526000 16492000 13226000 21766000 17752000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><div style="padding-left:36pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:92.77%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025 (remaining nine months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,715</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,086</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,724</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 56</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future sales-type lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 15,581</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Present value adjustment (a)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,797)</p></td></tr><tr><td style="vertical-align:bottom;width:82.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of lease receivables</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 13,784</p></td></tr></table></div><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-left:36pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:36pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(a)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using the rate implicit in the lease determined for each lease.</span></td></tr></table> 5715000 8086000 1724000 56000 15581000 1797000 13784000 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">4. LEASES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company leases administrative and sales offices and certain equipment under non-cancellable operating leases, which contain various renewal or termination options and, in some cases, require payment of common area costs, taxes and utilities. These operating leases expire at various dates through 2028. The Company had no <span style="-sec-ix-hidden:Hidden_fMA3MbcU00Sq2cHMrK5GCQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">leases</span></span> that were classified as a financing lease as of March 31, 2025, and December 31, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Lease expense was comprised of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:66.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 414</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 381</p></td></tr><tr><td style="vertical-align:bottom;width:66.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term lease and variable lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 207</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 214</p></td></tr><tr><td style="vertical-align:bottom;width:66.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 621</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 595</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Leases with an initial term of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">12</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> months or less are not recorded on the condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Supplemental condensed consolidated balance sheets information related to operating leases was as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term under operating leases (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 3.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 3.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate for operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Maturities of operating lease liabilities as of March 31, 2025 were as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025 (remaining nine months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,337</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,548</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,485</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 847</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,217</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Interest (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (472)</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of future minimum lease payments under operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,745</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Reported as of March 31, 2025:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating lease liabilities – current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,591</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating lease liabilities – non-current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 3,154</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,745</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using incremental borrowing interest rate for each lease.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of March 31, 2025, the Company had additional undiscounted future minimum payments of $0.4 million relating to an operating lease for an office space that had been signed but had not yet commenced. This operating lease will commence during the second quarter of 2025 and will have a lease term of approximately 6.2 years.</p> 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:66.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 414</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 381</p></td></tr><tr><td style="vertical-align:bottom;width:66.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term lease and variable lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 207</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 214</p></td></tr><tr><td style="vertical-align:bottom;width:66.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 621</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 595</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Leases with an initial term of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">12</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> months or less are not recorded on the condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.</span></td></tr></table><div style="margin-top:12pt;"></div> 414000 381000 207000 214000 621000 595000 P12M <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term under operating leases (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 3.1</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 3.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate for operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> P3Y1M6D P3Y3M18D 0.06 0.06 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025 (remaining nine months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,337</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,548</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,485</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 847</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 5,217</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Interest (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (472)</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of future minimum lease payments under operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,745</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Reported as of March 31, 2025:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating lease liabilities – current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,591</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating lease liabilities – non-current</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 3,154</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,745</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using incremental borrowing interest rate for each lease.</span></td></tr></table> 1337000 1548000 1485000 847000 5217000 472000 4745000 1591000 3154000 4745000 400000 P6Y2M12D <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">5.<span style="font-weight:normal;"> </span>STOCKHOLDERS’ EQUITY</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Repurchase Program</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On April 11, 2022, the Board of Directors adopted a stock repurchase program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years<span style="background:#ffffff;"> from the adoption date</span>. During the three months ended March 31, 2024, 201,561 shares were repurchased by the Company under the 2022 Program at an average price of $34.23 per share for an aggregate total price of $6.9 million. In total, the Company repurchased 937,501 shares under the 2022 Program at an average price of $25.96 per share for an aggregate total price of $24.3 million. The 2022 Program expired on April 11, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On April 15, 2024, the Board of Directors adopted a new stock repurchase program (the “2024 Program”) to repurchase up to $40.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, from time to time, over the next two years<span style="background:#ffffff;"> from the adoption date</span>. The Company has <span style="-sec-ix-hidden:Hidden__XjOLgf1iUCCG0C16BrIZQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">no</span></span>t repurchased any shares under the 2024 Program as of March 31, 2025.</p> 35000000 P2Y 201561 34.23 6900000 937501 25.96 24300000 40000000 P2Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">6. EMPLOYEE BENEFIT PLANS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Employee Stock Purchase Plan</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On June 15, 2021, the Company’s stockholders initially approved the 2021 Employee Stock Purchase Plan, which has been amended and restated by the Board of Directors and approved by the Company’s stockholders since then (as amended through the date of this report, the “2021 Purchase Plan”). </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Under the 2021 Purchase Plan, eligible employees can contribute up to 10% of their compensation, as defined in the 2021 Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2021 Purchase Plan commenced on August 1, 2021, and provided for twenty-four-month offering periods with four six-month purchase periods in each offering period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company estimated the fair value of purchase rights granted under the 2021 Purchase Plan during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="7" style="vertical-align:bottom;width:34.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> <span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected life (in years)</p></td><td style="vertical-align:bottom;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 40.22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 41.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4.22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4.62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_a6yVb90P9EaygVaI8AgHWA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> —</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_2y-smB_mWke2FNQwHMCLVg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> —</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value of purchase rights granted during the year</p></td><td style="vertical-align:bottom;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9.36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10.89</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">During the three months ended March 31, 2025 and 2024, a total of 89,508 shares and 73,854 shares, respectively, were issued under the 2021 Purchase Plan, at a weighted average purchase price of $23.68 per share and $25.94 per share, respectively. As of March 31, 2025, unrecognized compensation cost related to the 2021 Purchase Plan was $6.6 million, which is expected to be recognized over a weighted average period of 1.8 years. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of March 31, 2025, 548,973 shares were available for future issuance under the 2021 Purchase Plan. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Subsequently, on April 28, 2025, the Company’s Board of Directors approved an amendment and restatement of the 2021 Purchase Plan, which is subject to stockholder approval at the 2025 annual meeting of stockholders, to, among other things, increase the number of shares reserved for issuance for an additional 0.2 million shares to a total of 1.4 million shares.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Incentive Plan</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated by the Board of Directors and approved by the Company’s stockholders a number of times since then (as amended through the date of this report, the “2011 Plan”). Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under the 2011 Plan is 14.6 million shares, plus up to 3.5 million shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of March 31, 2025, 15.1 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.5 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired, or repurchased by the Company after the adoption of the 2011 Plan through March 31, 2025. As of March 31, 2025, there were no outstanding awards that had been granted outside of the 2011 Plan.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Subsequently, on April 28, 2025, the Company’s Board of Directors approved an amendment and restatement of the 2011 Plan, which is subject to stockholder approval at the 2025 annual meeting of stockholders, to, among other things, increase the number of shares reserved for issuance for an additional 0.8 million shares to a total of 15.9 million shares.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company estimated the fair value of share-based awards granted under the 2011 Stock Plan during the period using the Black-Scholes-Merton option-pricing model. There were no stock options <span style="-sec-ix-hidden:Hidden_39y27cBO5kSYOYtjNofg5A;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">granted</span></span> during the three months ended March 31, 2025 and 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:12pt 0pt 12pt 0pt;">Stock-Based Compensation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years<i style="font-style:italic;">.</i> Stock-based compensation expense before taxes related to the Company’s stock plan and employee stock purchase plan was allocated as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,342</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,200</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,419</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,202</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general, and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,835</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,708</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total stock-based compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,596</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,110</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Award Activities</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;"><i style="font-style:italic;">Restricted stock unit (“RSU”)</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Nonvested RSU activities were as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average Grant</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Date Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, January 1, 2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,885</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 33.14</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 54</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 24.90</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (362)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 29.52</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (8)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 30.45</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, March 31, 2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,569</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 33.70</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The weighted average grant date fair values of RSUs granted during the three months ended March 31, 2025 and 2024 were $24.90 and $33.17, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The total fair value of RSUs vested were as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of restricted stock units vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9,712</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 11,225</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of March 31, 2025, there was $43.7 million of total unrecognized compensation cost related RSUs which is expected to be recognized over a weighted average period of 2.4 years. RSUs do not have rights to dividends prior to vesting.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;"><i style="font-style:italic;">Stock Options</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of March 31, 2025, the outstanding stock options totaled 26,679 shares. Total fair value of shares vested during the three months ended March 31, 2025 was immaterial. As of March 31, 2025, there was no remaining unrecognized compensation cost related to unvested stock options.</p> 0.10 0.85 P24M 4 P6M <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="7" style="vertical-align:bottom;width:34.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> <span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected life (in years)</p></td><td style="vertical-align:bottom;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 40.22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 41.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4.22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4.62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_a6yVb90P9EaygVaI8AgHWA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> —</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_2y-smB_mWke2FNQwHMCLVg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> —</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value of purchase rights granted during the year</p></td><td style="vertical-align:bottom;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9.36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10.89</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table> P1Y3M P1Y3M 0.4022 0.414 0.0422 0.0462 9.36 10.89 89508 73854 23.68 25.94 6600000 P1Y9M18D 548973 200000 1400000 14600000 3500000 1.33 P10Y P4Y 15100000 3500000 500000 800000 15900000 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years<i style="font-style:italic;">.</i> Stock-based compensation expense before taxes related to the Company’s stock plan and employee stock purchase plan was allocated as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,342</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,200</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,419</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,202</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general, and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,835</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,708</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total stock-based compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,596</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,110</p></td></tr></table> P4Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,342</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,200</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,419</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,202</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general, and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,835</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,708</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total stock-based compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,596</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 6,110</p></td></tr></table> 1342000 1200000 2419000 2202000 2835000 2708000 6596000 6110000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average Grant</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Date Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, January 1, 2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,885</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 33.14</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 54</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 24.90</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (362)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 29.52</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (8)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 30.45</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, March 31, 2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,569</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 33.70</p></td></tr></table> 1885000 33.14 54000 24.9 362000 29.52 8000 30.45 1569000 33.7 24.9 33.17 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of restricted stock units vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9,712</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 11,225</p></td></tr></table> 9712000 11225000 43700000 P2Y4M24D 26679000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:12pt 0pt 12pt 0pt;">7. INCOME TAXES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Income tax expense decreased by $0.1 million for the three months ended March 31, 2025 to $36 thousand as compared to $0.1 million for the three months ended March 31, 2024. The Company’s effective tax rate was (1.2%) for the three months ended March 31, 2025 compared to (47%) for the three months ended March 31, 2024. The increase was primarily due to changes in the foreign, federal and state taxes and year-to-date recognition of worldwide pre-tax income in relation to their forecasted amounts for full years. The Company’s provision for income taxes for the three months ended March 31, 2025, was primarily attributable to federal, state and foreign taxes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s total amount of unrecognized tax benefits, excluding interest, as of March 31, 2025, was $16.9 million, of which $2.3 million, if recognized, would affect the Company’s effective tax rate. The Company’s total amount of unrecognized tax benefits, excluding interest, as of December 31, 2024 was $16.6 million, of which $2.1 million, if recognized, would affect the Company’s effective tax rate. As of March 31, 2025, the Company has recorded unrecognized tax benefits of $2.9 million, including interest of $0.7 million, as long-term taxes payable in the condensed consolidated balance sheets. The remaining $14.7 million has been recorded within the Company’s DTAs, which is subject to a full valuation allowance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The valuation allowance was approximately $67.9 <span style="-sec-ix-hidden:Hidden_DeRm3YANYESF1h3cR1Vqdw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">million</span></span> as of March 31, 2025, and December 31, 2024, which was related to U.S. net federal and state DTAs. The worldwide net DTAs balance were immaterial as of March 31, 2025 and December 31, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal and various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the tax years ended 2021 to present and 2020 to present, respectively. In addition, all of the net operating loss and research and development credit carryforwards that may be utilized in future years may be subject to federal and state examination. The Company is not currently under known income tax examinations in the U.S. or any other of its major foreign subsidiaries’ jurisdictions.</p> -100000 36000 100000 -0.012 -0.47 16900000 2300000 16600000 2100000 2900000 700000 14700000 67900000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:12pt 0pt 12pt 0pt;">8. NET LOSS PER SHARE</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Basic net loss per share is computed by dividing net loss by the weighted average number of common shares outstanding for the period (excluding outstanding stock options, nonvested restricted stock units and shares subject to repurchase). Diluted net loss per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net loss per share (in thousands except per share amount):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Numerator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,032)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (393)</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Denominator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Basic weighted average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 39,088</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 38,500</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Diluted weighted average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 39,088</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 38,500</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net loss per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.08)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.01)</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.08)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.01)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">For the three months ended March 31, 2025 and 2024, because the Company was in a loss position, diluted net loss per share is the same as basic net loss per share as the inclusion of the potential common shares would have been anti-dilutive.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The following table summarizes the potential shares of common stock that were not included in the diluted net loss per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Non-vested restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,569</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 37</p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding stock options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 27</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,665</p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares issuable under employee stock purchase plan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 24</p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,665</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,726</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> Basic net loss per share is computed by dividing net loss by the weighted average number of common shares outstanding for the period (excluding outstanding stock options, nonvested restricted stock units and shares subject to repurchase). Diluted net loss per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Numerator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,032)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (393)</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Denominator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Basic weighted average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 39,088</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 38,500</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Diluted weighted average common shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 39,088</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 38,500</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net loss per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.08)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.01)</p></td></tr><tr><td style="vertical-align:bottom;width:69.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.39%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.08)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.59%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.01)</p></td></tr></table> -3032000 -393000 39088000 38500000 39088000 38500000 -0.08 -0.01 -0.08 -0.01 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Non-vested restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,569</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 37</p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding stock options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 27</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,665</p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Shares issuable under employee stock purchase plan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 69</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 24</p></td></tr><tr><td style="vertical-align:bottom;width:69.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,665</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,726</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 1569000 37000 27000 1665000 69000 24000 1665000 1726000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:12pt 0pt 12pt 0pt;">9. CUSTOMER AND GEOGRAPHIC INFORMATION</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s chief operating decision maker (“CODM”), the Chief Executive Officer, reviews discrete financial information including total revenues, gross profit, and net income (loss) presented on a consolidated basis for purposes of regularly making operating decisions about allocation of resources and financial performance assessment. Further, the CODM reviews and utilizes functional expenses (costs of revenues, research and development, and selling, general and administrative) at the consolidated level to manage the Company’s operations. Other segment items included in the condensed consolidated net income (loss) are amortization of acquired intangible assets, interest expense, other income (expense), net and income tax expense, which are reflected in the condensed consolidated statements of comprehensive income (loss). Accordingly, the Company considers itself as one operating and reporting segment because it does not distinguish between markets, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The following table presents segment total revenues, costs of revenues, gross profit, and net loss for the periods presented (in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 47,778</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 41,310</p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Costs of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12,955</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 13,529</p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Gross profit</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 34,823</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 27,781</p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Net loss</span></p></td><td style="vertical-align:bottom;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,032)</p></td><td style="vertical-align:bottom;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (393)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Revenues from an individual customer that are approximately 10% or more of the Company’s consolidated total revenues are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:middle;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 19</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 19</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-align:justify;text-indent:-18pt;margin:0pt 0pt 12pt 18pt;">* represents less than 10%</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">E</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (amounts in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:64.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:28.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:28.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 18,228</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 17,733</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Japan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 11,736</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 11,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 27</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,043</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,853</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9,771</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,436</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 47,778</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 41,310</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Long-lived assets, net by geographic area are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">United States (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 66,866</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 58,782</p></td></tr><tr><td style="vertical-align:bottom;width:70.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,341</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,461</p></td></tr><tr><td style="vertical-align:bottom;width:70.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total long-lived assets, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 68,207</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.52%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 60,243</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">(1) Includes assets deployed at customer sites which could be outside the U.S.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:28.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Total revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 47,778</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 41,310</p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Costs of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12,955</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 13,529</p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Gross profit</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 34,823</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 27,781</p></td></tr><tr><td style="vertical-align:bottom;width:69.59%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Net loss</span></p></td><td style="vertical-align:bottom;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,032)</p></td><td style="vertical-align:bottom;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (393)</p></td></tr></table> 47778000 41310000 12955000 13529000 34823000 27781000 -3032000 -393000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:middle;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 22</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 19</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 19</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-align:justify;text-indent:-18pt;margin:0pt 0pt 12pt 18pt;">* represents less than 10%</p> 0.15 0.22 0.19 0.19 0.10 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:68.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">E</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> 0.23 0.21 0.13 0.17 0.11 0.12 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:64.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:28.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:28.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 18,228</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 17,733</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Japan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 11,736</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 11,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 27</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 8,043</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 4,853</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 9,771</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 7,436</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:33.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.73%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 47,778</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 41,310</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> 18228000 0.38 17733000 0.43 11736000 0.25 11288000 0.27 8043000 0.17 4853000 0.12 9771000 0.20 7436000 0.18 47778000 1 41310000 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">United States (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 66,866</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 58,782</p></td></tr><tr><td style="vertical-align:bottom;width:70.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,341</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,461</p></td></tr><tr><td style="vertical-align:bottom;width:70.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total long-lived assets, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 68,207</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.52%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 60,243</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">(1) Includes assets deployed at customer sites which could be outside the U.S.</p> 66866000 58782000 1341000 1461000 68207000 60243000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:12pt 0pt 12pt 0pt;">10. FAIR VALUE MEASUREMENTS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 1 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are quoted prices in active markets for identical assets or liabilities.</p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 2 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.</p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 3 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following table represents the Company’s assets measured at fair value on a recurring basis and the basis for those measurements (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:28.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:28.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:54.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance Sheet</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Classification</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,813</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,813</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Available-for-sale debt securities:</p></td><td style="vertical-align:bottom;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:top;width:28.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">U.S. Government securities (1)</p></td><td style="vertical-align:top;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:top;width:14.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10,415</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10,415</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:top;width:28.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Convertible note receivable (2)</p></td><td style="vertical-align:top;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:top;width:14.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other non-current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,062</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,062</p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 14,290</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12,228</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,062</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:28.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:28.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:54.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance Sheet</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Classification</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 66,213</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 66,213</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Available-for-sale debt securities:</p></td><td style="vertical-align:bottom;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:top;width:28.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 24,291</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 24,291</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:top;width:28.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Convertible note receivable (2)</p></td><td style="vertical-align:top;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:top;width:14.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other non-current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,038</p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 92,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 90,504</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,038</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">The amortized cost of the Company’s investments in U.S. Government securities approximated their fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities in the periods presented. For the three months ended March 31, 2025 and 2024, there were no material realized or unrealized gains or losses, either individually or in the aggregate.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">In August 2024, the Company purchased a </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$2.0</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million non-marketable convertible promissory note from an unrelated third party (the “convertible note”). The convertible note bears a </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">5%</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> interest rate annually and will mature in August 2026.</span></td></tr></table><div style="margin-top:12pt;"></div> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 1 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are quoted prices in active markets for identical assets or liabilities.</p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 2 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.</p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 3 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.</p></td></tr></table> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:28.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:28.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:54.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance Sheet</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">March 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Classification</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2025</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,813</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 1,813</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Available-for-sale debt securities:</p></td><td style="vertical-align:bottom;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:top;width:28.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">U.S. Government securities (1)</p></td><td style="vertical-align:top;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:top;width:14.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10,415</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 10,415</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:top;width:28.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Convertible note receivable (2)</p></td><td style="vertical-align:top;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:top;width:14.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other non-current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,062</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,062</p></td></tr><tr><td style="vertical-align:bottom;width:28.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 14,290</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 12,228</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,062</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:28.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:28.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:54.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance Sheet</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Classification</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 66,213</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 66,213</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Available-for-sale debt securities:</p></td><td style="vertical-align:bottom;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:top;width:28.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 24,291</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 24,291</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:top;width:28.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Convertible note receivable (2)</p></td><td style="vertical-align:top;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:top;width:14.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other non-current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,038</p></td></tr><tr><td style="vertical-align:bottom;width:28.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:14.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 92,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 90,504</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0.05pt 0pt;"> 2,038</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">The amortized cost of the Company’s investments in U.S. Government securities approximated their fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities in the periods presented. For the three months ended March 31, 2025 and 2024, there were no material realized or unrealized gains or losses, either individually or in the aggregate.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">In August 2024, the Company purchased a </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$2.0</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million non-marketable convertible promissory note from an unrelated third party (the “convertible note”). The convertible note bears a </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">5%</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> interest rate annually and will mature in August 2026.</span></td></tr></table><div style="margin-top:12pt;"></div> 1813000 1813000 10415000 10415000 2062000 2062000 14290000 12228000 2062000 66213000 66213000 24291000 24291000 2038000 2038000 92542000 90504000 2038000 2000000 0.05 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">11. COMMITMENTS AND CONTINGENCIES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Strategic Partnership with Advantest</span> — See Note 12, <i style="font-style:italic;">Strategic Partnership Agreement with Advantest and Related Party Transactions</i>, for the discussion about the Company’s commitments under the strategic partnership with Advantest.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Operating Leases</span> — Refer to Note 4, <i style="font-style:italic;">Leases</i>, for the discussion about the Company’s lease commitments.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Indemnifications</span> — The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following initial delivery of its products. The Company also indemnifies certain customers from third-party claims of intellectual property infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s standard product warranty terms for the sale of its DFI system product generally include post-sales support and repairs or replacement of a product at no additional charge for a contractually agreed period of time. The standard warranty reserve is based on estimated total expected costs to fulfill our warranty obligation based on best available information as of the reporting date. The standard warranty reserve was immaterial as of March 31, 2025 and December 31, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Purchase Obligations</span> — The Company has purchase obligations with certain suppliers for the purchase of goods and services entered into in the ordinary course of business. As of March 31, 2025, total outstanding purchase obligations were $37.6 million, the majority of which is due within the next 12 months.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Indemnification of Officers and Directors</span> — As permitted by the Delaware General Corporation Law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware General Corporation Law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Legal Proceedings</span> — From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of March 31, 2025, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued. From time to time, the Company may enter into contingent fee arrangements with external legal firms that may represent the Company in legal proceedings related to disputes. Contingent legal fees are accrued by the Company when they are probable and reasonably estimable.  </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center <span style="background:#ffffff;">(the “Tribunal”) </span>against SMIC New Technology Research &amp; Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August 2023, and the parties submitted answers to the Tribunal’s final questions in August 2024.<span style="background:#ffffff;"> The Company is awaiting the Tribunal’s decision on a judgment.</span></p> P90D 37600000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">12. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”), which includes: (i) a Securities Purchase Agreement wherein the Company issued and sold to Advantest America, Inc., an aggregate of 3,306,924 shares of its common stock, for aggregate gross proceeds of $65.2 million; (ii) a significant agreement for its assistance in development of cloud-based applications for Advantest tools that leverages our Exensio analytics software; (iii) a commercial agreement providing for the license to third parties of solutions that result from the development work that combine Advantest’s testing applications and our Exensio platform; and (iv) a 5-year cloud-based subscription for Exensio analytics software and related services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Analytics revenue recognized from Advantest was $3.6 million and $2.9 million during the three months ended March 31, 2025 and 2024, respectively. Accounts receivable from Advantest were not material as of March 31, 2025 and December 31, 2024. Deferred revenue amounted to $5.8 million and $8.3 million as of March 31,2025, and December 31, 2024, respectively.</p> 3306924 65200000 P5Y 3600000 2900000 5800000 8300000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">13. DEBT</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 0pt 0pt;">Debt as of March 31, 2025 consisted of (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 25,000</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revolving credit facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 45,000</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt (principal amount)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 70,000</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unamortized debt discount and financing costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,344)</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt, net of unamortized debt discount and financing costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 68,656</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Reported as:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current portion of long-term debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,240</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Long-term debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 66,416</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 68,656</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">On March 7, 2025, the Company entered into a Credit Agreement (the “Credit Agreement”) with the lenders who are party to the Credit Agreement and the lenders who may become a party to the Credit Agreement pursuant to the terms thereof (the “Lenders”) and Wells Fargo Bank, National Association, as administrative agent to the Lenders (the “Agent”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Credit Agreement provides for (a) a revolving credit facility in an aggregate principal amount of $45.0 million (the “Revolving Credit Facility”) and (b) a term loan facility in an aggregate principal amount of $25.0 million (the “Term Loan” and together with the Revolving Credit Facility, the “Credit Facilities”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Borrowings under the Credit Facilities will accrue interest at rates equal, at the Company’s election, to (i) the alternate base rate, which is defined as the highest of (a) the federal funds effective rate in effect from time to time plus 0.50%, (b) the prime commercial lending rate in effect from time to time, and (c) the daily simple secured overnight financing rate (“SOFR”) plus 1.00% or (ii) SOFR, plus, in each case, the applicable margin. The applicable margin for the Revolving Credit Facility borrowings bearing interest at the alternate base rate ranges from 1.00% to 1.75%, and the applicable margin for Revolving Credit Facility borrowings bearing interest based on the SOFR ranges from 2.00% to 2.75%, in each case, based on the Company’s consolidated total net leverage ratio as of the most recently ended fiscal quarter. The applicable margin for Term Loan borrowings bearing interest at the alternate base rate ranges from 1.00% to 1.75%, and the applicable margin for Term Loan borrowings bearing interest based on the SOFR ranges from 2.00% to 2.75%, in each case, based on the Company’s consolidated total net leverage ratio as of the most recently ended fiscal quarter. The Company will pay an annual commitment fee during the term of the Credit Agreement at a rate per annum equal to 0.50% for any undrawn portion of the Revolving Credit Facility.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Credit Agreement contains customary representations and warranties, as well as customary affirmative and negative covenants. Negative covenants include, among others, restrictions on the incurrence of debt, the incurrence of liens, the making of investments and distributions, dividends and stock buy-backs. In addition, the Credit Agreement requires that the Company maintain a consolidated total net leverage ratio of not greater than 3.00 to 1.00, and a consolidated fixed charge coverage ratio of not less than 1.25 to 1.00. As of March 31, 2025, the Company was in compliance with the covenants contained in the Credit Agreement.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Credit Agreement contains customary events of default. Upon the occurrence and during the continuance of an event of default, the Agent may declare the outstanding advances and all other obligations under the Credit Agreement immediately due and payable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The obligations under the Credit Agreement are guaranteed by all present and future material domestic subsidiaries of the Company (collectively with the Company referred to herein as the “Credit Parties”), subject to customary exceptions, and are secured by the equity interests of the Credit Parties (other than the Company) and substantially all of the personal property owned by the Credit Parties, including 65% of the equity interests of certain foreign subsidiaries owned by the Credit Parties.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company used the amounts borrowed under the Credit Facilities to finance, in part, the purchase price paid for the acquisition of SecureWise (see Note 14, <i style="font-style:italic;">Business Combination</i>).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Future Payments on Total Debt</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of March 31, 2025, the estimated future principal payments of the total long-term debt were as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2025 (remaining nine months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,875</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,500</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,500</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,500</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,500</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2030</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 58,125</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total future principal payments of long-term debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 70,000</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:13.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">March 31, </b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2025</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 25,000</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revolving credit facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 45,000</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt (principal amount)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 70,000</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unamortized debt discount and financing costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,344)</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt, net of unamortized debt discount and financing costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 68,656</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Reported as:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current portion of long-term debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,240</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:70.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Long-term debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 66,416</p></td></tr><tr><td style="vertical-align:bottom;width:70.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 68,656</p></td></tr></table> 25000000 45000000 70000000 1344000 68656000 2240000 66416000 68656000 45000000 25000000 0.005 0.01 0.01 0.0175 0.02 0.0275 0.01 0.0175 0.02 0.0275 0.005 3 1.25 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2025 (remaining nine months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,875</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,500</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,500</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,500</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,500</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2030</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 58,125</p></td></tr><tr><td style="vertical-align:bottom;width:84.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total future principal payments of long-term debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.11%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 70,000</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 1875000 2500000 2500000 2500000 2500000 58125000 70000000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">14. BUSINESS COMBINATION</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">On February 19, 2025, the Company entered into an Equity Purchase Agreement (the “Purchase Agreement”) with Telit IOT Solutions Inc., a Delaware corporation (the “Seller”), and SecureWise, pursuant to which the Company agreed to acquire the Seller’s SecureWise business (the “Business”) by means of a purchase of all of the outstanding equity interests of SecureWise held by the Seller (the “Transaction”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">On March 7, 2025, the Company completed the acquisition of the Business from the Seller pursuant to the Purchase Agreement for a cash purchase price of $130.0 million, subject to customary adjustments in respect of indebtedness, transaction expenses, cash and working capital of the Business, in each case, in accordance with the terms of the Purchase Agreement. The Company financed the Transaction using a combination of cash on hand and borrowings under the Credit Facilities.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company expects the Transaction to accelerate equipment makers’ ability to derive value from equipment data by enabling them to leverage the Company’s Exensio analytics software and to expand the capability of the Company’s secure data exchange (“DEX”) outsourced semiconductor assembly and test (“OSAT”) network by allowing equipment makers, fab operators, and fabless companies to collaborate to optimize chip manufacturing and test.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 0pt 0pt;">The Company accounted for the Transaction as a business combination in accordance with FASB ASC Topic 805, <i style="font-family:'revert';font-style:italic;">Business Combinations</i>. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the acquisition date. <span style="background:#ffffff;">The Company allocated the purchase price to identifiable assets acquired based on their estimated fair values. The fair value of the consideration transferred and the assets acquired and liabilities assumed was determined by the Company and in doing so management engaged a third-party valuation specialist to assist with the measurement of the fair value of identifiable intangible assets. The estimated fair value of the identifiable assets acquired and liabilities assumed was based on management’s best estimates. The fair value of the customer relationships was determined using the multi-period excess earnings income approach or cost approach. The fair value of trade names and </span>developed<span style="background:#ffffff;"> technology was determined using the relief-from-royalty method. The fair value of acquired technology was determined using the cost approach. </span>The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. The goodwill associated with the acquisition is deductible for tax purposes. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt;">The Company expensed all transaction costs in the period in which they were incurred. The total non-recurring legal, finance, integration and other costs related to the acquisition of SecureWise amounted to $5.3 million, of which $4.4 million was recorded in the first quarter of 2025 and $0.9 million in the fourth quarter of 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt 0pt 12pt 0pt;">The preliminary allocation of the purchase price for the acquisition of SecureWise, as of the date of the completion of the Transaction, is as follows (in thousands, except amortization period):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Period (Years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Allocation of Purchase Price:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Fair value estimates of assets acquired and liabilities assumed</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,049</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 3,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Prepaid and other assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,049</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Fixed assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,592</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Fair value of intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trademark</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">5</p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 28,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">13</p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 11,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">7</p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 81,686</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accounts payable and other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,747)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Total purchase price allocation</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 130,767</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The estimated fair value of the accounts receivable acquired approximates the contractual value of $3.0 million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company is still finalizing the allocation of the purchase price to the individual assets acquired. Accordingly, these preliminary estimates are <span style="background:#ffffff;">subject</span> to change during the measurement period, which is the period subsequent to the acquisition <span style="background:#ffffff;">date</span> during which the acquirer may adjust the provisional amounts recognized for a business combination, not to exceed one year from the acquisition date. The final purchase price allocation, which may include changes in the allocations within intangible assets and between intangible assets and goodwill, as well as changes in the estimated useful lives of the intangible assets, will be determined when the Company has completed the detailed review of underlying inputs and assumptions used in its preliminary purchase price allocation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;"><span style="background:#ffffff;">Pro forma information reflecting the impact of the Transaction has not been presented as the Transaction was not material to the Company’s financial results.</span></p> 130000000 5300000 4400000 900000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Period (Years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Allocation of Purchase Price:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Fair value estimates of assets acquired and liabilities assumed</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,049</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 3,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Prepaid and other assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,049</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Fixed assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,592</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Fair value of intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Trademark</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 6,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">5</p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 28,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">13</p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 11,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">7</p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 81,686</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accounts payable and other current liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,747)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Total purchase price allocation</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 130,767</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">  </p></td></tr></table> 1049000 3038000 1049000 1592000 6600000 P5Y 28900000 P13Y 11600000 P7Y 81686000 4747000 130767000 3000000 false false false false