0000897101-22-000230.txt : 20220311 0000897101-22-000230.hdr.sgml : 20220311 20220311113530 ACCESSION NUMBER: 0000897101-22-000230 CONFORMED SUBMISSION TYPE: 10-K PUBLIC DOCUMENT COUNT: 94 CONFORMED PERIOD OF REPORT: 20211231 FILED AS OF DATE: 20220311 DATE AS OF CHANGE: 20220311 FILER: COMPANY DATA: COMPANY CONFORMED NAME: CYBEROPTICS CORP CENTRAL INDEX KEY: 0000768411 STANDARD INDUSTRIAL CLASSIFICATION: OPTICAL INSTRUMENTS & LENSES [3827] IRS NUMBER: 411472057 STATE OF INCORPORATION: MN FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-K SEC ACT: 1934 Act SEC FILE NUMBER: 000-16577 FILM NUMBER: 22731895 BUSINESS ADDRESS: STREET 1: 5900 GOLDEN HILLS DR CITY: GOLDEN VALLEY STATE: MN ZIP: 55416 BUSINESS PHONE: 763-542-5000 MAIL ADDRESS: STREET 1: 5900 GOLDEN HILLS DR CITY: GOLDEN VALLEY STATE: MN ZIP: 55416 10-K 1 cybe-20211231.htm 10-K cybe-20211231.htm
NASDAQ MN 1 1 1 MN false true false true false --12-31 Non-accelerated Filer 1 1 0000768411 CYBEROPTICS CORP false 2021 FY Yes false 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2019-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2019-12-31 0000768411 us-gaap:RetainedEarningsMember 2019-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-12-31 0000768411 us-gaap:CommonStockMember 2019-12-31 0000768411 2021-01-01 2021-12-31 0000768411 2021-12-31 0000768411 srt:MinimumMember 2021-01-01 2021-12-31 0000768411 srt:MaximumMember 2021-01-01 2021-12-31 0000768411 us-gaap:CommonStockMember 2021-01-01 2021-12-31 0000768411 us-gaap:RetainedEarningsMember 2021-01-01 2021-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-01-01 2021-12-31 0000768411 us-gaap:CommonStockMember 2021-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-12-31 0000768411 us-gaap:RetainedEarningsMember 2021-12-31 0000768411 cybe:SemiconductorSensorsMember 2021-01-01 2021-12-31 0000768411 country:US 2021-01-01 2021-12-31 0000768411 country:NL 2021-01-01 2021-12-31 0000768411 cybe:OtherEuropeMember 2021-01-01 2021-12-31 0000768411 country:CN 2021-01-01 2021-12-31 0000768411 country:SG 2021-01-01 2021-12-31 0000768411 us-gaap:LeaseholdImprovementsMember srt:MinimumMember 2021-01-01 2021-12-31 0000768411 us-gaap:LeaseholdImprovementsMember srt:MaximumMember 2021-01-01 2021-12-31 0000768411 country:KR 2021-01-01 2021-12-31 0000768411 cybe:GoldenValleyMember stpr:MN 2021-12-31 0000768411 cybe:GoldenValleyMember stpr:MN 2021-01-01 2021-12-31 0000768411 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember cybe:CustomerOneMember 2021-01-01 2021-12-31 0000768411 country:JP 2021-01-01 2021-12-31 0000768411 cybe:OtherAsiaMember 2021-01-01 2021-12-31 0000768411 cybe:OtherGeographicLocationMember 2021-01-01 2021-12-31 0000768411 country:US 2021-12-31 0000768411 srt:EuropeMember 2021-12-31 0000768411 cybe:AsiaAndOtherMember 2021-12-31 0000768411 cybe:RetirementSavingsPlanSection401KMember 2021-01-01 2021-12-31 0000768411 cybe:DefinedContributionRetirementSavingsPlansMember 2021-01-01 2021-12-31 0000768411 country:SG 2021-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2021-01-01 2021-12-31 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2021-01-01 2021-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2021-12-31 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel1Member 2021-12-31 0000768411 us-gaap:FairValueInputsLevel2Member 2021-12-31 0000768411 us-gaap:FairValueInputsLevel3Member 2021-12-31 0000768411 us-gaap:EmployeeStockOptionMember 2021-01-01 2021-12-31 0000768411 us-gaap:RestrictedStockUnitsRSUMember 2021-01-01 2021-12-31 0000768411 cybe:NonEmployeeDirectorStockPlanMember 2021-12-31 0000768411 cybe:NonEmployeeDirectorStockPlanMember 2021-01-01 2021-12-31 0000768411 us-gaap:EmployeeStockOptionMember 2021-12-31 0000768411 cybe:RestrictedSharesAndRestrictedStockUnitsMember 2021-01-01 2021-12-31 0000768411 cybe:RestrictedSharesAndRestrictedStockUnitsMember 2021-12-31 0000768411 us-gaap:EmployeeStockMember 2021-01-01 2021-12-31 0000768411 us-gaap:EmployeeStockMember 2021-12-31 0000768411 cybe:StockGrantPlanForNonEmployeeDirectorsMember 2021-01-01 2021-12-31 0000768411 cybe:StockOptionsAndRestrictedStockUnitsRsusMember 2021-01-01 2021-12-31 0000768411 us-gaap:EquipmentMember 2021-12-31 0000768411 us-gaap:LeaseholdImprovementsMember 2021-12-31 0000768411 us-gaap:PatentsMember 2021-12-31 0000768411 us-gaap:ComputerSoftwareIntangibleAssetMember 2021-12-31 0000768411 us-gaap:CustomerRelatedIntangibleAssetsMember 2021-12-31 0000768411 us-gaap:PatentsMember 2021-01-01 2021-12-31 0000768411 us-gaap:ComputerSoftwareIntangibleAssetMember 2021-01-01 2021-12-31 0000768411 us-gaap:CustomerRelatedIntangibleAssetsMember 2021-01-01 2021-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2021-12-31 0000768411 us-gaap:EmployeeStockOptionMember cybe:StockIncentivePlanMember 2021-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember 2021-12-31 0000768411 us-gaap:EmployeeStockMember srt:MinimumMember 2021-01-01 2021-12-31 0000768411 us-gaap:EmployeeStockMember srt:MaximumMember 2021-01-01 2021-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:ShortTermInvestmentsMember 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:ShortTermInvestmentsMember 2021-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:ShortTermInvestmentsMember 2021-12-31 0000768411 us-gaap:EquitySecuritiesMember 2021-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:FairValueInputsLevel1Member 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:FairValueInputsLevel1Member 2021-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:FairValueInputsLevel1Member 2021-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:FairValueInputsLevel1Member 2021-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:FairValueInputsLevel2Member 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:FairValueInputsLevel2Member 2021-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:FairValueInputsLevel2Member 2021-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:FairValueInputsLevel2Member 2021-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:FairValueInputsLevel3Member 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:FairValueInputsLevel3Member 2021-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:FairValueInputsLevel3Member 2021-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:FairValueInputsLevel3Member 2021-12-31 0000768411 us-gaap:ShortTermInvestmentsMember 2021-12-31 0000768411 us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 us-gaap:TransferredOverTimeMember 2021-01-01 2021-12-31 0000768411 us-gaap:TransferredAtPointInTimeMember 2021-01-01 2021-12-31 0000768411 us-gaap:AccountingStandardsUpdate201409Member us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member 2021-01-01 2021-12-31 0000768411 cybe:MrsBasedSensorsMember 2021-01-01 2021-12-31 0000768411 cybe:MrsBasedSystemsMember 2021-01-01 2021-12-31 0000768411 cybe:InspectionAndMetrologySystemsMember 2021-01-01 2021-12-31 0000768411 cybe:HighPrecision3DAnd2DSensorsMember 2021-01-01 2021-12-31 0000768411 us-gaap:CommonStockMember 2020-01-01 2020-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-01-01 2020-12-31 0000768411 us-gaap:RetainedEarningsMember 2020-01-01 2020-12-31 0000768411 us-gaap:CommonStockMember 2020-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:FairValueInputsLevel1Member 2020-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:FairValueInputsLevel2Member 2020-12-31 0000768411 us-gaap:RetainedEarningsMember 2020-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:FairValueInputsLevel3Member 2020-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:FairValueInputsLevel1Member 2020-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:FairValueInputsLevel2Member 2020-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2020-01-01 2020-12-31 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2020-01-01 2020-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2020-12-31 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2020-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember 2020-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2020-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember 2020-12-31 0000768411 us-gaap:EquitySecuritiesMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel1Member 2020-12-31 0000768411 us-gaap:FairValueInputsLevel2Member 2020-12-31 0000768411 us-gaap:FairValueInputsLevel3Member 2020-12-31 0000768411 us-gaap:EmployeeStockOptionMember 2020-01-01 2020-12-31 0000768411 cybe:RestrictedSharesAndRestrictedStockUnitsMember 2020-01-01 2020-12-31 0000768411 us-gaap:EmployeeStockMember 2020-01-01 2020-12-31 0000768411 cybe:StockOptionsAndRestrictedStockUnitsRsusMember 2020-01-01 2020-12-31 0000768411 cybe:StockGrantPlanForNonEmployeeDirectorsMember 2020-01-01 2020-12-31 0000768411 srt:MinimumMember 2020-01-01 2020-12-31 0000768411 srt:MaximumMember 2020-01-01 2020-12-31 0000768411 us-gaap:EquipmentMember 2020-12-31 0000768411 us-gaap:LeaseholdImprovementsMember 2020-12-31 0000768411 us-gaap:PatentsMember 2020-12-31 0000768411 us-gaap:ComputerSoftwareIntangibleAssetMember 2020-12-31 0000768411 us-gaap:CustomerRelatedIntangibleAssetsMember 2020-12-31 0000768411 us-gaap:PatentsMember 2020-01-01 2020-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:FairValueInputsLevel3Member 2020-12-31 0000768411 us-gaap:ComputerSoftwareIntangibleAssetMember 2020-01-01 2020-12-31 0000768411 us-gaap:CustomerRelatedIntangibleAssetsMember 2020-01-01 2020-12-31 0000768411 cybe:RetirementSavingsPlanSection401KMember 2020-01-01 2020-12-31 0000768411 cybe:DefinedContributionRetirementSavingsPlansMember 2020-01-01 2020-12-31 0000768411 cybe:HighPrecision3DAnd2DSensorsMember 2020-01-01 2020-12-31 0000768411 cybe:SemiconductorSensorsMember 2020-01-01 2020-12-31 0000768411 cybe:InspectionAndMetrologySystemsMember 2020-01-01 2020-12-31 0000768411 cybe:MrsBasedSensorsMember 2020-01-01 2020-12-31 0000768411 cybe:MrsBasedSystemsMember 2020-01-01 2020-12-31 0000768411 country:US 2020-01-01 2020-12-31 0000768411 country:NL 2020-01-01 2020-12-31 0000768411 cybe:OtherEuropeMember 2020-01-01 2020-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:FairValueInputsLevel1Member 2020-12-31 0000768411 country:CN 2020-01-01 2020-12-31 0000768411 country:SG 2020-01-01 2020-12-31 0000768411 country:KR 2020-01-01 2020-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:FairValueInputsLevel2Member 2020-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:FairValueInputsLevel3Member 2020-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:FairValueInputsLevel1Member 2020-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:FairValueInputsLevel2Member 2020-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:FairValueInputsLevel3Member 2020-12-31 0000768411 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember cybe:CustomerOneMember 2020-01-01 2020-12-31 0000768411 country:JP 2020-01-01 2020-12-31 0000768411 cybe:OtherAsiaMember 2020-01-01 2020-12-31 0000768411 cybe:OtherGeographicLocationMember 2020-01-01 2020-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:ShortTermInvestmentsMember 2020-12-31 0000768411 us-gaap:AccountingStandardsUpdate201409Member srt:MinimumMember us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:ShortTermInvestmentsMember 2020-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:ShortTermInvestmentsMember 2020-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 country:US 2020-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 srt:EuropeMember 2020-12-31 0000768411 cybe:AsiaAndOtherMember 2020-12-31 0000768411 us-gaap:TransferredOverTimeMember 2020-01-01 2020-12-31 0000768411 2020-12-31 0000768411 2020-01-01 2020-12-31 0000768411 us-gaap:TransferredAtPointInTimeMember 2020-01-01 2020-12-31 0000768411 us-gaap:ShortTermInvestmentsMember 2020-12-31 0000768411 us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 us-gaap:AccountingStandardsUpdate201409Member srt:MaximumMember us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member 2021-12-31 0000768411 us-gaap:CustomerConcentrationRiskMember us-gaap:AccountsReceivableMember cybe:CustomerThreeMember 2021-12-31 0000768411 country:SG cybe:JobsSupportProgramMember us-gaap:ReducedEmployeeExpensesMember 2021-01-01 2021-12-31 0000768411 us-gaap:CustomerConcentrationRiskMember cybe:CustomerOneMember us-gaap:AccountsReceivableMember 2021-12-31 0000768411 srt:MinimumMember 2021-12-31 0000768411 2022-02-28 0000768411 2021-06-30 0000768411 srt:MaximumMember 2021-12-31 0000768411 srt:AffiliatedEntityMember 2021-01-01 2021-12-31 0000768411 srt:AffiliatedEntityMember 2020-01-01 2020-12-31 0000768411 2019-12-31 0000768411 cybe:NonEmployeeDirectorStockPlanMember 2020-05-14 2020-05-14 0000768411 us-gaap:CustomerConcentrationRiskMember us-gaap:SalesRevenueNetMember cybe:CustomerTwoMember 2020-01-01 2020-12-31 0000768411 us-gaap:CustomerConcentrationRiskMember us-gaap:AccountsReceivableMember cybe:CustomerFourMember 2021-12-31 0000768411 us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member us-gaap:AccountingStandardsUpdate201409Member 2020-01-01 2020-12-31 0000768411 cybe:NonEmployeeDirectorStockPlanMember 2021-05-13 2021-05-13 0000768411 us-gaap:GeographicConcentrationRiskMember us-gaap:SalesRevenueNetMember us-gaap:NonUsMember 2021-01-01 2021-12-31 0000768411 us-gaap:GeographicConcentrationRiskMember us-gaap:SalesRevenueNetMember us-gaap:NonUsMember 2020-01-01 2020-12-31 0000768411 srt:AffiliatedEntityMember 2021-12-31 0000768411 srt:AffiliatedEntityMember 2020-12-31 xbrli:shares xbrli:pure utr:sqft utr:Q iso4217:USD iso4217:USD xbrli:shares cybe:plan cybe:reporting_unit cybe:renewal_option

SECURITIES AND EXCHANGE COMMISSION

WASHINGTON, D.C. 20549


FORM 10-K


x ANNUAL REPORT PURSUANT TO SECTION 13 or 15(d) of the Securities Exchange 

Act of 1934 for the Year Ended December 31, 2021.

 

o TRANSITION PURSUANT TO SECTION 13 or 15(d) of the Securities Exchange

Act of 1934 for the transition period from ______ to ______.

 

COMMISSION FILE NO. (0-16577)

 

CYBEROPTICS CORPORATION

(Exact name of registrant as specified in its charter)

Minnesota

41-1472057

(State or other jurisdiction of incorporation or organization)  

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

5900 Golden Hills Drive

MINNEAPOLIS, MINNESOTA

55416

(Address of principal executive offices)

(Zip Code)

(763) 542-5000

(Registrant’s telephone number, including area code)

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

Title of each class

Trading Symbol(s)

Name of each exchange on which registered

Common Stock, no par value

CYBE 

NASDAQ Stock Market LLC


Securities registered pursuant to Section 12(g) of the Exchange Act: None 

 

Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Yes ☐ No

 

Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act. Yes ☐ No

 

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 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 standard provided pursuant to Section 13(a) of the Exchange Act. ☐

 

Indicate by check mark whether the company has filed an attestation report regarding management's assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act by the accounting firm that prepared or issued its audit report. Yes ☐ No


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

 

State the aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant’s most recently completed second fiscal quarter: $288,262,267.


As of February 28, 2022, there were 7,402,683 shares of the registrant’s Common Stock, no par value, issued and outstanding.  

 

DOCUMENTS INCORPORATED BY REFERENCE:

 

The responses to Part III items 10, 11, 12, 13 and 14 herein are incorporated by reference to certain information in the Company’s definitive Proxy Statement for its Annual Meeting of Shareholders to be held May 12, 2022.


CYBEROPTICS CORPORATION

FORM 10-K

For the Fiscal Year Ended December 31, 2021





PART I.
2
ITEM 1. DESCRIPTION OF BUSINESS 2
ITEM 1A. RISK FACTORS 13
ITEM 1B. UNRESOLVED STAFF COMMENTS  19
ITEM 2. PROPERTIES 19
ITEM 3. LEGAL PROCEEDINGS 19
ITEM 4. MINE SAFETY DISCLOSURES 19
PART II.
20
ITEM 5. MARKET FOR REGISTRANT’S COMMON EQUITY, RELATED STOCKHOLDER MATTERS AND ISSUER PURCHASES OF EQUITY SECURITIES 20
ITEM 6. RESERVED 20
ITEM 7. MANAGEMENT’S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS 21
ITEM 7A. QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK 29
ITEM 8. FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA 30
ITEM 9. CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE 57
ITEM 9A. CONTROLS AND PROCEDURES 57
ITEM 9B. OTHER INFORMATION 57
ITEM 9C. DISCLOSURE REGARDING FOREIGN JURISDICTIONS THAT PREVENT INSPECTIONS 57
PART III.
58
ITEM 10. DIRECTORS, EXECUTIVE OFFICERS AND CORPORATE GOVERNANCE 58
ITEM 11. EXECUTIVE COMPENSATION 58
ITEM 12. SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS 58
ITEM 13. CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE 58
ITEM 14. PRINCIPAL ACCOUNTANT FEES AND SERVICES 58
PART IV.
59
ITEM 15. EXHIBITS AND FINANCIAL STATEMENT SCHEDULES 59

SIGNATURES 61

 

 

 

 

GENERAL


Background

 

CyberOptics Corporation was founded in 1984 and is a leading global developer and manufacturer of high precision sensing technology solutions and system products for inspection and metrology. Our headquarters are located at 5900 Golden Hills Drive in Golden Valley, Minnesota. Our website address is www.cyberoptics.com. You can access, free of charge, our filings with the Securities and Exchange Commission, including our annual report on Form 10-K, quarterly reports on Form 10-Q, current reports on Form 8-K and any amendments to those reports, at our website, or at the Commission’s website at www.sec.gov. Proxy materials for our upcoming 2022 annual shareholders meeting to be held on May 12, 2022 will be available electronically via the internet at the following address: http://www.idelivercommunications.com/proxy/cybe/.


We are a leading global developer and manufacturer of high precision 3D sensors and system products for inspection and metrology. We also develop and manufacture our WaferSense® products, a family of wireless, wafer-shaped sensors that provide measurements of critical factors in the semiconductor fabrication process. We intend to leverage our sensor technologies in the surface mount technology (SMT) and semiconductor industries to deliver profitable growth. A key element of our strategy is the continued development and sale of high precision 3D sensors and system products based on our proprietary Multi-Reflection Suppression™ (MRS) technology. We believe that our MRS technology is a breakthrough 3D optical technology for high-end inspection and metrology with the potential to significantly expand our markets. Another key element in our strategy is the continued development and introduction of new sensor applications for our WaferSense family of products.    


Our products are used in the SMT and semiconductor industries to significantly improve our customers' manufacturing yields and productivity, and to assist our customers in meeting their rigorous demands for manufacturing quality. Our products use a variety of proprietary technologies such as lasers, optics and machine vision, combined with software, electronics and mechanical design. Our products help manufacturers solve their most complex manufacturing challenges by providing them with key information relating to their manufacturing processes, which allows them to improve production volumes, yields and product quality.


Manufacturing yield challenges as electronics and semiconductors become more complex are driving the need for more precise inspection and metrology. As a result, we believe 3D inspection and metrology represent high-growth segments in both the SMT and semiconductor capital equipment markets. We expect a growing number of opportunities in the markets for SMT and semiconductor inspection and metrology, because our 3D MRS technology platform is well suited for many of these applications, particularly with respect to complex circuit boards and semiconductor wafer and advanced packaging inspection and metrology applications.


We manufacture 3D and 2D optical sensors for use in our own proprietary inspection system products and for sale to original equipment manufacturers (OEMs), system integrators and end customers in the SMT and semiconductor capital equipment markets. Our inspection system products are sold to manufacturers of SMT electronic circuit boards to control quality as in-line systems, particularly with respect to complex circuit boards used in smart phones and other high-end electronic products. These products are used by manufacturers to measure screen-printed solder paste, to inspect circuit boards and components after component placement, to confirm proper placement after full assembly of circuit boards and to inspect solder joints on printed circuit boards. We also sell our inspection system products to leading semiconductor manufacturers and outsourced semiconductor assembly and test (OSAT) companies. Manufacturers of DRAM and Flash Memory use our inspection system products to inspect assembly of their memory modules. Increasingly, our inspection system products are being used for various semiconductor related inspection and metrology applications, including advanced packaging.


We believe that a strategy of developing and selling complete inspection systems and metrology products to end-users provides us with valuable customer input in the markets we currently serve, and allows us to refine the sensors and sensor subsystems for these markets and adjacent markets. At the same time, sales to OEMs and system integrators allow us to capitalize on our strengths in optical physics, sensor design and software algorithm development. We believe that the resulting sensor products and subsystems are unique and add significant value to our products and the products of our customers.


Our WaferSense family of products assist with yield improvement and tool uptime in semiconductor wafer fabrication and flat panel display manufacturing by providing highly accurate measurements of critical process factors. These measurements are impossible or very difficult to obtain without powering down the equipment used for wafer fabrication and flat panel display manufacturing. Customers who use our products have better yields, throughput and tool up-time. Our products are more accurate when compared to the various manual techniques historically used by semiconductor manufacturers to obtain critical wafer fabrication process measurements. We have continued to invest in our WaferSense product family and anticipate strong future sales growth for these products. 



Covid-19 was first identified in December 2019, and in March 2020, the World Health Organization categorized Covid-19 as a pandemic. The Covid-19 pandemic is affecting our customers, suppliers, service providers and employees to varying degrees, and the ultimate impacts of Covid-19, including the potential impact of known and future variants, on our business, results of operations, liquidity and prospects are not fully known at this time. Overall, the Covid-19 outbreak has had a relatively minimal impact on our business to date. Our revenues increased by 32% to $92.8 million in 2021, from $70.1 million in 2020. We are forecasting strong revenue growth on a year-over-year basis in the first quarter of 2022. Our forecast for the first quarter of 2022 could change if the Covid-19 pandemic worsens, or if unforeseen events related to the pandemic occur. We currently do not anticipate any significant credit losses or asset impairments resulting from the Covid-19 pandemic. As of December 31, 2021, our available balances of cash and marketable securities totaled $38.3 million. We believe that we have the resources required to attain our growth objectives and to meet any unforeseen difficulties resulting from the Covid-19 pandemic. We will continue to closely monitor the Covid-19 pandemic and its impact on our business. 


Our ability to implement our strategy effectively is subject to numerous uncertainties and risks, including the risks identified in Item 1A of this Annual Report on Form 10-K. There can be no assurance that our strategy will be successful.  

 

OPERATIONS AND PRODUCTS

 

Multi-Reflection Suppression Technology


We have successfully launched a number of products based on our 3D MRS technology for inspection and metrology in the SMT and semiconductor industries, including our SQ3000™ and SQ3000™+ Multi-Function systemsMX3000 system for memory module inspection and our 3D NanoResolution MRS™ sensor and WX3000 system for semiconductor wafer and advanced packaging inspection and metrology. We are continually developing new high precision 3D sensors and system products based on our proprietary MRS technology. We believe 3D inspection and metrology represent a high growth segment for both the SMT and semiconductor capital equipment markets. Our recent and planned product introductions are designed to strengthen our competitive position in our current markets and expand into adjacent markets.


Challenges with shrinking transistor dimensions have driven the need for advances in semiconductor packaging, including 3D stacking of chips. Accordingly, advanced semiconductor packaging is expected to experience significant growth in the next 5 to 10 years. Yield challenges resulting from the increasing sophistication and complexity of semiconductor packaging and other high-end applications, including mini-LED and advanced SMT for high-end electronics, is driving the need for inspection and metrology. We believe our 3D MRS technology platform is well suited for many of these applications, and we are introducing new products based on our MRS technology that we believe will allow us to capitalize on these opportunities and increase our revenues in the future.


We recently launched our next generation SQ3000™+ Multi-Function system for inspection and metrology that is specifically designed for high-end applications including advanced packaging, mini-LED and advanced SMT for high-end electronics. We have significantly advanced our 3D MRS sensor technology as part of a research initiative aimed at applying our 3D MRS sensor technology to semiconductor advanced packaging inspection and metrology. Our next generation ultra-high resolution 3-micron pixel 3D NanoResolution MRS sensor and WX3000 inspection and metrology system perform two to three times faster than alternate technologies at data processing speeds in excess of 75 million 3D data points per second. The 3D NanoResolution MRS sensor and WX3000 system perform 100% 3D and 2D inspection and metrology simultaneously at high speeds, deliver throughput of more than 25 wafers per hours and are capable of accurately measuring feature sizes down to 25 microns, which makes these products suitable for many high volume semiconductor wafer and advanced packaging inspection and metrology applications. We anticipate that sales of sensors and systems based on 3D MRS technology, including for semiconductor wafer and advanced packaging inspection and metrology, will provide us with long-term growth opportunities. 


We intend to expand sales of products based on our MRS technology in the SMT and semiconductor markets through current and new distribution channels, OEM partners, system integrators and direct sales to end-user customers. 

 

High Precision 3D and 2D Sensors

 

We manufacture high precision sensors for inspection and metrology in the SMT and semiconductor markets. We sell our 3D MRS sensors to OEMs and system integrators for use in their proprietary system products, and we integrate our 3D MRS sensors into our own proprietary system products for inspection and metrology. Our SMT electronic assembly alignment sensor products are a family of sensors that are customized and incorporated into the equipment manufactured by our customers for use in SMT circuit board assembly. We work closely with our OEM customers and system integrators to incorporate our high precision 3D and 2D sensors into their product offerings. Sales of high precision 3D and 2D sensors accounted for 28% of our revenues in 2021 and 25% of our revenues in 2020. 



3D MRS Sensors 

 

Our proprietary 3D MRS sensor technology enables metrology grade accuracy by inhibiting optical measurement distortions and reflections. Our sensor architecture simultaneously captures and transmits multiple images in parallel while proprietary 3D fusing algorithms merge the images together. The result is ultra-high quality 3D images and high-speed inspection. Our 3D MRS sensors are used for inspection and metrology in a variety of applications, including SMT (printed circuit boards), semiconductor component package, solder balls and bumps, wafer bumps, copper pillars and other semiconductor wafer and advanced packaging applications. Our 3D MRS sensors can also be used for industrial metrology. Our high precision 3D MRS sensors are based on commercially available cameras, digital light projectors and other hardware components, which are combined with our proprietary MRS technology, 3D fusing algorithms and precision optics. The combination of these elements allow our sensors to capture microscopic quality images at production speeds. Our 3D MRS sensors include nine models featuring varying fields of view (FOV), 3D acquisition time and minimum feature sizes. Our ultra-high resolution three-micron pixel 3D NanoResolution MRS sensor is capable of measuring feature sizes down to 25 microns accurately and at high speeds, and is suitable for many semiconductor wafer and advanced packaging inspection and metrology applications. We are targeting one micron, three-sigma accuracy, at speeds that would inspect more than 25 300-millimeter wafers in an hour. Sales of high precision 3D MRS sensors accounted for 19% of our revenues in 2021 and 17% of our revenues in 2020.

 

SMT Electronic Assembly Alignment Sensors

 

Our LaserAlign® sensors align both large and extremely small surface mount and through-hole components, known as chip capacitors and resistors, during transport on a pick-and-place machine prior to placement. LaserAlign sensors are incorporated into the placement heads of pick-and-place machines to ensure accurate component placement at high production speeds. LaserAlign sensors integrate an intelligent sensor, composed of a laser, optics and detectors with a microprocessor and software for making specific measurements. LaserAlign sensors enable quick and accurate alignment of each component as it is being transported by the pick-and-place arm for surface mount or through-hole assembly. Using non-contact technology, LaserAlign sensors facilitate orientation and placement of components at higher speeds than can be achieved using conventional mechanical or machine vision component centering systems.


Our board alignment cameras are used to identify fiducial markings on a circuit board to ensure accurate board registration in a pick-and-place machine or a solder paste screen printer. Accurate board placement is needed to ensure proper placement of solder paste deposits and components on a printed circuit board. In some instances, our board alignment cameras are used for 2D solder paste and stencil inspection.


Sales of SMT Electronic Assembly Alignment Sensors accounted for 9% of our revenues in 2021 and 8% of our revenues in 2020.


Inspection and Metrology Systems

 

Our inspection and metrology system products are primarily used in the SMT and semiconductor industries for process control, inspection and metrology. These systems are sold to end-user manufacturing customers that use them in a production line or alongside a production line to maintain process and quality control. Our products incorporate our proprietary 3D and 2D optical sensors, off the shelf, translation or robotics hardware and conveyors and complete computer systems or processors with internally developed software. Sales of inspection and metrology systems accounted for 46% of our revenues in 2021 and 54% of our revenues in 2020.

 

Automated Optical Inspection (AOI) Products

 

We have been selling AOI products for two decades and have continued to develop and improve our AOI offerings since they were first introduced. These products are typically used to inspect circuit boards after component placement to determine whether all components have been placed correctly, and to measure the quality of solder joints after reflow. These products are also used for mini-LED and semiconductor inspection and metrology, including semiconductor wafer and advanced packaging applications, and for certain industrial metrology applications. 


SQ3000 Multi-Function systems (SQ3000, SQ3000 3D CMM and SQ3000+). Our SQ3000 Multi-Function systems for AOI, solder paste inspection (SPI) and coordinate measurement (CMM) applications, are designed to expand our presence in markets requiring high precision inspection and metrology. In these markets, identifying defects has become highly challenging and critical due to smaller semiconductor and electronics packaging and increasing component density on circuit boards. We believe the combination of our proprietary 3D MRS sensor technology, Ai2 (Autonomous Image Interpretation) software and sophisticated 3D fusing algorithms allows us to offer microscopic image quality at production line speeds. The SQ3000 is an all-in-one solution for AOI and SPI in a single product. The SQ3000 3D CMM goes a step further by adding metrology functionality. Manufacturers in a variety of industries, including the SMT and semiconductor markets, can use the SQ3000 3D CMM as an in-line or off-line metrology tool to help solve complex manufacturing and product quality challenges. The SQ3000+ Multi-Function system delivers CMM data with a higher resolution MRS sensor that inhibits reflection-based distortions caused by shiny components and surfaces and is capable of measuring feature sizes down to 50 microns at in-line production speeds. The SQ3000+ is specifically designed for high-end inspection and metrology applications including advanced packaging, mini-LED and advanced SMT for high-end electronics. 



We believe there are a growing number of sales opportunities for our SQ3000 Multi-Function systems in the markets for SMT and semiconductor inspection and metrology. We believe our 3D MRS sensor technology is uniquely suited for many of these applications. Our SQ3000 Multi-Function systems are available in versions that can accommodate dual production lanes and larger circuit board sizes. Sales of SQ3000 Multi-Function systems accounted for 24% of our revenues in 2021 and 27% of our revenues in 2020.

 

QX Series 2D AOI systems. Our QX AOI systems feature our strobe inspection module (SIM) sensor technology and are designed for 2D inspection of circuit boards. We offer QX systems with varying levels of resolution and inspection speeds. We also offer QX systems that can accommodate dual production lanes, larger circuit board sizes and both top and bottom inspection of a circuit board.

 

MX products. Our MX systems and 3D MRS sensors are used for inspection of memory modules following the singulation step of the manufacturing process. Our MX600™ system utilizes our SIM sensor technology and Ai2 software, and is used for 2D inspection of memory modules. Our MX3000™ system utilizes our 3D MRS sensor technology, SQ3000 system software and Ai2 software, and is used for 3D inspection of memory modules. Two of the world’s three largest memory manufacturers and their subcontractors have now purchased the MX3000 system. We believe the potential market opportunity for our MX products is significant. Sales of MX products accounted for 9% of our revenues in 2021 and 10% of revenue in 2020. 


SPI Products

 

SE3000™. The SE3000 is an in-line solder paste inspection system based on our 3D MRS sensor technology. The SE3000 utilizes our new Dual-mode MRS™ sensor to measure in 3D the amount of solder paste applied to a circuit board after the first step of the SMT circuit board assembly process. Because of the small size of the components that must be placed on each pad of solder paste and the density of components placed on the circuit board, a significant amount of SMT assembly problems are related to the quality of solder paste deposition. Misplaced solder paste or excess or inadequate amounts of paste can lead to improper connections or bridges between leads causing an entire circuit board to malfunction. The new Dual-Mode MRS sensor provides maximum flexibility for dedicated solder paste applications by offering one mode for high speed inspection and another mode for high resolution inspection. The SE3000 inspects the height, area and volume of solder paste placed on an entire circuit board at production line speeds and with resolution that allows the SE3000 to measure the smallest chip scale packages and micro ball array component sites. The SE3000 can be integrated into most SMT production lines, providing real time quality control immediately after a printed circuit board leaves the screen printer and before component placement commences. 


SE600. The SE600 is an in-line solder paste inspection system incorporating a dual-illumination sensor that measures in 3D the height, area and volume of solder paste placed on an entire circuit board at production line speeds. The SE600 can be integrated into most SMT production lines.


SE500ULTRA. The SE500ULTRA is an in-line solder paste inspection system incorporating the same proprietary 3D inspection technology as the SE600 but utilizes a single illumination sensor. The SE500ULTRA inspects at faster speeds than the SE600 and is intended for use in high-volume production environments. Because the SE500ULTRA performs inspections at very high speed, it does not provide the same level of resolution and measurement performance as the SE3000 or SE600.


Semiconductor Wafer and Advanced Packaging Products

Our new WX3000 system is suitable for many high volume semiconductor wafer and advanced packaging inspection and metrology applications for feature sizes down to 25 microns. The WX3000, which incorporates our next generation ultra-high resolution 3D NanoResolution MRS sensor, performs 100% 3D and 2D inspection and metrology simultaneously at high speeds and delivers throughput of more than 25 wafers per hour. We believe the WX3000 performs two to three times faster than alternate technologies at data processing speeds in excess of 75 million 3D data points per second. We recently received our first purchase order for the WX3000 from a large integrated device manufacturer. We believe the potential market opportunity for the WX3000 is significant.


General Industrial Metrology Products and Services

 

CyberGage®360Manufacturers in a variety of industries use CyberGage360 as a near-line or off-line metrology tool to capture surface data to help solve complex manufacturing and product quality challenges. Our sales of CyberGage360 to date have not been significant. There can be no assurance that CyberGage360 will ever achieve widespread market acceptance.


Other Metrology Products and Services. We also sell 3D scanning and metrology equipment manufactured by other suppliers and provide 3D scanning and metrology services for objects of all sizes and complexity for customers that do not have their own 3D scanning and metrology equipment. 



Semiconductor Sensors


Our principal semiconductor products, the WaferSense family of products, are a series of wireless sensors that provide measurements of critical factors in the semiconductor fabrication process. We designed our WaferSense family of sensors to be used where wafers or reticles are located in semiconductor fabrication to provide measurements of critical factors that are currently impossible or extremely difficult to obtain without powering down the fabrication process equipment. Because the user is not required to break down semiconductor fabrication equipment when using our WaferSense products, significant time is saved. In addition, measurement accuracy is increased over the accuracy of the manual techniques currently used by many customers when checking the process parameters measured by our WaferSense products. As a result of WaferSense technology, our customers are able to improve the up-time, throughput and process yield for their semiconductor fabrication equipment. We intend to continue to enhance and expand the WaferSense family of products in the future. Sales of semiconductor sensors accounted for 26% of our revenues in 2021 and 21% of our revenues in 2020.


Automatic Leveling Sensor (ALS). The ALS is a wireless, vacuum-compatible sensor that can be placed in cassettes, FOUPS, on-end effectors, aligners, in-load locks and process chambers used in semiconductor fabrication to ensure that all stations are level and coplanar.


Automatic Gapping Sensor (AGS). The AGS is a gapping tool that measures the gap in three places between the showerhead and pedestal in semiconductor process equipment. The amount of gap between the showerhead and pedestal can affect uniformity when material is deposited on semiconductor wafers.


Automatic Teaching Sensor (ATS). The ATS measures X-Y-Z offset from robotic transfers of wafers to the pedestal in semiconductor process equipment. The amount of gap and offset after robotic transfer of wafers to the shower pedestal can affect film thickness and uniformity when material is deposited or etched on semiconductor wafers, impacting quality and product yields. 


Automatic Vibration Sensor (AVS). The AVS measures X-Y-Z acceleration for shock and vibration, which can generate wafer particles, scratches or wafer breakage that reduce yield. 


WaferSense Airborne Particle Sensor™. The WaferSense airborne particle sensors (APS) allow engineers to efficiently detect and classify particles and their exact sources in a process as wafers are transferred, slit valves are actuated and chambers are cycled, pumped down and purged. APS sensors are designed to be compatible with front-ends, coater/developer tracks, and deposition and etch equipment. ReticleSense® Airborne Particle Sensors allow users to quickly identify geographic particle sources in reticle environments. The ReticleSense Airborne Particle Sensor is compatible with ASML, Nikon and Canon scanners and can travel the entire reticle path to detect in real-time when and where particles might exist. The ReticleSense Airborne Particle Sensor helps our customers exceed manufacturing quality and productivity standards in the Photo lithography scanner environment.


In-Line Particle Sensor™. The In-Line Particle Sensor (IPS™) with CyberSpectrum software detects particles in gas and vacuum lines 24/7 in semiconductor process equipment. The IPS quickly identifies, monitors and enables troubleshooting of particles down to 0.1 micron in size. The IPS can be installed in any gas or vacuum system, and is particularly relevant for EUV lithography tools where the ability to monitor particles in-line can significantly improve EUV lithography tool yield and productivity. For example, an IPS can be installed at the vacuum line in between the EUV process chamber and the vacuum pump, saving significant time compared to current methods of sending a monitor dummy reticle into the EUV system to check for particles before and after sending the reticle into the EUV system. The IPS is constantly collecting data, which is especially critical during chamber purging. Process and equipment engineers in semiconductor fabs can increase the speed of equipment qualification. Contamination sources can be identified quickly and the effects of cleaning, adjustments and repairs can be seen in real-time. Through use of the IPS, fabs can shorten equipment maintenance cycles, lower equipment expenses and optimize preventative maintenance plans.


WaferSense Auto Multi Sensor™. The WaferSense Auto Multi Sensor is an all-in-one wireless real-time device that allows engineers to quickly take leveling, vibration and humidity measurements. Humidity measurements are becoming more important as the use of Fin Field Effect Transistor technology increases among semiconductor manufacturers. The ReticleSense Auto Multi Sensor allows users to quickly take leveling, vibration and humidity measurements in reticle environments.


WaferSense 300mm Auto Resistance Sensor™. The WaferSense 300mm Auto Resistance Sensor (ARS™) with CyberSpectrum software enables real-time resistance measurements of plating cell contacts in semiconductor Electrochemical Deposition (ECD) applications. The ARS quickly identifies and monitors resistance measurements with 50 separate pads around the perimeter utilizing a Kelvin sensing (4-wire resistance) method to detect residue affecting plating pins. Process and equipment engineers in semiconductor fabs can predict when a tool needs maintenance with quantitative analysis of measured mean resistance over time, shorten equipment maintenance cycles, and improve cell-to-cell uniformity with the wafer-like, 4-wire resistance sensor and CyberSpectrum software's objective and repeatable data.


WaferSense Auto Vibration and Leveling Sensor.  The WaferSense Auto Vibration and Leveling Sensor (AVLS3) with a thickness of 3.5mm can travel to most locations and tools within a semiconductor fab where a real semiconductor wafer travels. The Chemically Hardened Glass (CHG) substrate enables smooth wafer handling and improved vacuum chucking. The AVLS3, with CyberSpectrum software, collects and displays both vibration and leveling data simultaneously for fast equipment set-up and alignment and real-time equipment diagnostics to speed equipment qualification and shorten equipment maintenance cycles.



Markets and Customers 

 

We sell the majority of our products into the markets for SMT and semiconductor inspection and metrology. The value of automation is high in these markets because the products produced have high unit costs and are manufactured at speeds too great for effective human involvement. Trends in these markets include further efforts to reduce the cost of the manufacturing process and to increase automation. Moreover, the trend toward smaller electronic devices with higher circuit densities, smaller circuit paths and extremely small components requires manufacturing and testing equipment capable of extremely accurate alignment and multidimensional measurement. Challenges with shrinking transistor dimensions has driven the need for advances in semiconductor packaging applications, including 3D stacking of chips. Yield challenges with these products are driving the need for more accurate inspection and metrology. We expect a growing number of opportunities in the markets for SMT and semiconductor inspection and metrology, because our 3D MRS technology platform is well suited for many of these applications. We sell our semiconductor sensors primarily to manufacturers of equipment used in the front-end of the semiconductor fabrication process and to manufacturers of semiconductor wafers and flat panel displays.


High Precision 3D and 2D Sensors


3D MRS Sensors


We sell our 3D MRS sensors to OEM customers for use in semiconductor component package inspection. We have an agreement to supply Nordson-YESTECH with 3D MRS sensors for its 3D AOI inspection equipment serving the SMT market. We sell our 3D MRS sensors, including our next generation ultra-high resolution 3D NanoResolution MRS sensor, to OEMs and system integrators that make capital equipment for semiconductor manufacturers and OSATs. We believe sales of 3D MRS sensors to manufacturers of equipment for semiconductor component package inspection and semiconductor wafer and advanced packaging inspection and metrology represent compelling long-term growth opportunities. We estimate that the total available market for sales of our 3D MRS sensors to manufacturers of equipment for these types of inspection and metrology applications was approximately $100 million in 2021, and will grow to approximately $190 million in 2025. We have just started selling our 3D MRS sensors for use in semiconductor wafer and advanced packaging inspection and metrology equipment and our sales to date have not been significant.


SMT Electronic Assembly Alignment Sensors


The vast majority of our SMT electronic assembly alignment sensors are sold on an OEM basis to Juki Corporation, Kulicke & Soffa Industries, Inc. and ASM Pacific Technology Ltd. for integration into DEK brand equipment serving the SMT circuit board assembly market. 


Inspection and Metrology Systems

 

We sell our AOI and SPI inspection and metrology systems to many of the leading SMT electronic assembly circuit board manufacturers, end-user customers manufacturing their own circuit boards, semiconductor manufacturers and OSAT companies. Manufacturers of DRAM and Flash Memory use our inspection system and 3D MRS sensor products to inspect assembly of their memory modules. Sales of 3D AOI inspection systems account for roughly 40% of the approximately $1.2 billion total annual AOI inspection systems market, with 3D AOI representing the fastest growing segment of this market. We estimate that the total market for 3D AOI systems for SMT inspection and metrology will grow from approximately $475 million in 2021 to approximately $1.5 billion by 2028. We primarily participate in the high-end of the 3D AOI market, which accounts for roughly 50% of the total market for 3D AOI systems for SMT inspection and metrology. We estimate that the total available market of 3D and 2D semiconductor wafer and advanced packaging inspection and metrology equipment was approximately $480 million in 2021, and will grow to approximately $1.0 billion by 2025.


The total available market for general industrial metrology equipment is very large, diverse and growing. Our 3D scanning and metrology services scan, model and inspect objects of all sizes and complexity for customers who do not have their own scanning and metrology equipment.


Semiconductor Sensors

 

Our semiconductor products, primarily our WaferSense family of products, are used by process and equipment engineers as non-contact precision measurement tools to optimize the process for production of semiconductor wafers and manufacturing of flat panel displays. Most of the world’s largest manufacturers of semiconductors and semiconductor equipment purchase our WaferSense products. We believe the available market for our WaferSense products is potentially significant, and will continue to increase in the future as new product applications are added.



Export Sales and Significant Customers

 

Export sales totaled $77.4 million or 83% of our total sales in 2021, compared to $56.0 million or 80% of our total sales in 2020. Export sales represent a large percentage of our total sales because a large portion of electronics assembly and semiconductor production occurs outside the United States. In addition, a significant portion of our export sales include high precision 3D and 2D sensors sold to OEM customers located in Europe and Asia. See Note 13 to our consolidated financial statements contained in Item 8 of this Annual Report on Form 10-K for information regarding the percentage of total sales revenue represented by total export sales (sales of products into countries other than the United States, including sales delivered through distributors) by location during the past two years. Most of our international export sales are negotiated, invoiced and paid in U.S. dollars. We manufacture our inspection system products in Singapore and a portion of our raw material purchases are denominated in Singapore dollars. We also have R&D and sales personnel located in Singapore and sales offices located in other parts of the world. Although currency fluctuations do not significantly affect our revenue, they can impact our costs and influence the price competitiveness of our products and the willingness of existing and potential customers to purchase our products.


In 2021, sales to our largest customer accounted for 17% of our total revenues. In 2020, sales to our largest customer accounted for 14% of our total revenues, and sales to another customer accounted for 13% of our total revenues.  No other customers accounted for more than 10% of our total revenues in 2021 or 2020. 

 

Sales and Marketing


We market our products by offering demonstrations and evaluations in our facilities and at customer locations, through appearances at industry trade shows, advertising in industry journals, articles published in industry and technical journals and on the Internet.


High Precision 3D and 2D Sensors

 

Our high precision 3D and 2D sensors are sold in most countries to OEMs and system integrators by direct sales personnel located in Minnesota and Asia. Some of the global channel partners for our other products also market our high precision 3D MRS sensors to system integrators and semiconductor manufacturers.


Inspection and Metrology Systems

 

Our AOI, SPI and semiconductor wafer and advanced packaging inspection and metrology system products are sold in most countries. Sales and marketing of our inspection and metrology system products are more heavily concentrated in Asia where a significant portion of the worldwide production capacity for circuit board assembly and semiconductor manufacturing occurs. Our inspection and metrology system products are sold by direct sales personnel located in the United States, the United Kingdom, Singapore, Malaysia, Taiwan and China and through independent sales representatives and distributors. We have sales and service team members based in the United States and Mexico to serve the Americas market. Our sales and service office in the United Kingdom serves the European market. We have sales and service offices in Singapore, Malaysia, Taiwan and China to serve the markets in Asia. We have agreements with 48 independent sales representatives and distributors, which focus on sales and service of our inspection and metrology system products to end-user customers. These agreements cover North and South America (16), Europe (17) and China and Asia-Pacific (15). We sell our general industrial metrology products and services to end-user customers mainly through a direct sales staff located in Minnesota.


Semiconductor Sensors


We sell our semiconductor products, primarily our WaferSense family of products, to semiconductor fabrication facilities through a separate worldwide sales channel of independent sales representatives and distributors. We also sell our WaferSense products directly to large OEM customers, which are mainly semiconductor capital equipment manufacturers. We currently have agreements in place or in process with 14 independent sales representatives and distributors, which focus on sales and service for our WaferSense products. These agreements cover the United States (4), Europe (3) and the Asia-Pacific (7). Our sales to OEM customers and our worldwide network of independent sales representatives and distributors are managed by direct sales personnel located in the United States and Asia. 

 


Backlog and Seasonality

 

Product backlog was $47.3 million at December 31, 2021, $23.0 million at December 31, 2020 and $17.7 million at December 31, 2019. Product backlog at September 30, 2021 was $44.2 million. Our products are typically shipped two weeks to six months after the receipt of an order. However, in some cases we have received orders from OEM customers which cover a period of several years. Sales of some inspection and metrology system products may require customer acceptance due to performance or other acceptance criteria included in the terms of sale. For these product sales, revenue is recognized at the time of customer acceptance. Although our business is generally not of a highly seasonal nature, sales may vary based on the capital procurement practices in the SMT and semiconductor fabrication industries. However, we are not able to quantify with any level of precision the impact of these practices on our sales in any given quarterly period, and any seasonal cyclicality is often masked by more dramatic changes in demand caused by the normal volatility in electronics and semiconductor markets that are associated with changes in the economy. Our scheduled backlog at any time may vary significantly based on the timing of orders from OEM customers or the receipt of large orders for inspection and metrology system products. 

 

Research and Development

 

We differentiate our products primarily on the basis of innovative and proprietary technology and on our ability to combine several different technologies to address industry and customer needs. In addition, we actively seek ongoing strategic customer relationships with leading product innovators in existing and new markets. We actively investigate the needs of, and seek input from, these customers to facilitate the adoption of current innovative technologies and to identify opportunities to improve manufacturing processes. 


We commit substantial resources to development of important next-generation technologies that, we believe, will position us to be a global technology leader in high precision 3D sensors, enable us to capture additional market share in our key markets of SMT and semiconductor inspection and metrology, and maintain our leadership position in the markets served by our WaferSense products. We maintain our commitment to research and development and product development even during periods when demand for our products is not strong. During the past two years, research and development efforts have been focused on a number of activities that are critical to our future growth and success, including the following:

  

  

We have continued to advance our SQ3000 Multi-Function systems for 3D AOI, SPI and CMM applicationswhich are designed to expand our presence in markets requiring high precision inspection and metrology. The recently introduced SQ3000+ Multi-Function system delivers CMM data with a higher resolution MRS sensor that inhibits reflection-based distortions caused by shiny components and surfaces and is capable of measuring feature sizes down to 50 microns at in-line production speeds. The SQ3000+ is specifically designed for high-end inspection and metrology applications including advanced packaging, mini-LED and advanced SMT for high-end electronics. We believe there are a growing number of sales opportunities for our SQ3000 Multi-Function systems in the markets for 3D AOI of complex circuit boards and semiconductor inspection and metrology. ;



Our next generation ultra-high resolution three-micron pixel 3D NanoResolution MRS sensor is capable of measuring feature sizes down to 25 microns accurately and at high speeds. We are targeting one micron, three-sigma accuracy, at speeds that would inspect more than 25 300-millimeter wafers in an hour. The 3D NanoResolution MRS sensor is suitable for many semiconductor wafer and advanced packaging inspection and metrology applications. We have adapted the system software used in our SQ3000 Multi-Function systems to work with wafer handling equipment to facilitate sales of our NanoResolution sensor to OEMs and system integrators.


Our next generation MX3000 system for 3D inspection of memory modules following the singulation step of the manufacturing process. The MX3000 utilizes our MRS sensor technology, SQ3000 system software and Ai2 software. Two of the world’s three largest memory manufacturers and their subcontractors have now purchased our MX3000 system. We believe the potential market opportunity for our MX3000 system and 3D MRS sensors for memory module inspection is significant.


Our WX3000 system for semiconductor wafer and advanced packaging inspection and metrology. The WX3000, which utilizes our 3D NanoResolution MRS sensor and SQ3000 system software, performs 100% 3D and 2D inspection and metrology simultaneously at high speeds and delivers throughput of more than 25 wafers per hour. We believe the WX3000 performs two to three times faster than alternate technologies at data processing speeds in excess of 75 million 3D data points per second. The WX3000 is suitable for many high volume semiconductor wafer and advanced packaging inspection and metrology applications for feature sizes down to 25 microns.

  

  

Development of new applications for our WaferSense family of products. We recently launched a WaferSense 300mm Auto Resistance Sensor (ARS) that enables real-time resistance measurements of plating cell contacts in semiconductor ECD applications. Other new WaferSense products under development include next generation Automatic Teaching Sensors (ATS) in both wafer and reticle formats, products for wafer edge detection and products that measure temperature during semiconductor fabrication.

 


Research and development expenses were $10.9 million or 12% of revenue in 2021 and $9.6 million or 14% of revenue in 2020. Research and development expenses consist primarily of salaries, project materials, contract labor and other costs associated with ongoing product development and enhancement efforts. Research and development resource utilization is centrally managed based on market opportunities and the status of individual projects.


Manufacturing


All of our high precision 3D and 2D sensors and semiconductor sensors are assembled at our Minneapolis, Minnesota headquarters facility. Our inspection and metrology systems, including our SQ3000 Multi-Function system products, are assembled in Singapore. We rely on third party automation suppliers to provide the material handling platforms for our 2D MX600, 3D MX3000 and WX3000 system products. Much of our product manufacturing, which is primarily circuit board manufacturing, lens manufacturing and metal parts production, is performed by outside contractors. Our production personnel inspect incoming parts, perform final assembly, calibrate and perform final quality control testing of finished products. We have elected not to make the capital investments necessary for complete internal manufacturing of our products. 


A variety of components used in our products are available only from single sources and involve relatively long order cycles, in some cases more than one year in length. Lead times have become longer and it has become increasingly difficult to obtain adequate supplies of certain key components and labor for product assembly due to disruptions in the global supply chain caused by the Covid-19 pandemic. We believe we have identified alternative assembly contractors for most of our sub-assemblies. However, use of alternative contractors could require substantial rework of the product designs. An actual change in such contractors would likely require a period of training and testing.


The inability to obtain adequate supplies of components or labor, an interruption in a supply relationship or reduced production capacity experienced by one or more of the contractors for our sub-assemblies could result in the inability to meet customer demands and deliver one or more of our products for a period of several months or longer. To help prevent delays in the shipment of our products, we maintain in inventory, or on scheduled delivery from suppliers, components that we believe will be sufficient to meet forecasted demand, often times for a minimum of six months or longer.


Competition


We face competition from a number of companies in the machine vision, image processing and inspection and metrology systems markets, many of which are larger and have greater financial resources than we do. However, we believe our current and planned products offer advantages from competing products in terms of price and suitability for specific applications. 


High Precision 3D and 2D Sensors


Our high precision 3D and 2D sensors mainly compete with the sensors and vision systems developed by OEMs using their own design employees for incorporation into their products.


Some of our competitors in the markets for AOI, SPI and semiconductor wafer and advanced packaging inspection and metrology systems rely on 3D sensors manufactured by Keyence Corporation. We believe the advantages offered by our 3D MRS sensor technology and SQ system software allow our customers, including OEMs and system integrators, to compete favorably in these markets.


Our SMT electronic assembly alignment sensor products also compete with vision (camera and software-based) systems and component libraries available from Cognex Corporation and others. Although advances in vision systems have reduced some of the advantages of our SMT electronic assembly alignment sensor products in some configurations, we continue to believe that our sensors compete favorably based on our ability to custom design products with stringent physical form requirements, speed, flexibility, low cost and ease of use.


Inspection and Metrology Systems


The primary competition for sales of our AOI and SPI inspection and metrology system products has been from Korean-based companies, including Koh Young Technology, MirTec Ltd., and PARMI Co. Ltd. We also compete with Taiwanese-based Test Research, Inc. and German-based Viscom AG, among others. In our view, the 3D MRS sensor technology, system software and Ai2 software used in our SQ3000 Multi-Function systems differentiate our products from competing products and our products compete effectively in the AOI and SPI inspection and metrology systems market based on performance, ease of use and the low rate of false calls. We also believe that our SQ3000 Multi-Function systems, enabled by our proprietary MRS technology, 3D fusing algorithms and precision optics, offer advantages over competing products and will allow us to gain market share based on our ability to offer microscopic quality images at fast production line speeds.  


The markets for semiconductor wafer and advanced packaging inspection and metrology systems are fragmented. Our competitors in the markets for semiconductor wafer and advanced packaging inspection and metrology systems include Camtek, Inc., Unity SC, Utechzone Co. Ltd. and Onto Innovation, Inc., among others.



The multi-billion dollar market for 3D scanning and metrology products is highly fragmented. The primary competition for the various metrology products and solutions we sell include coordinate-measuring machines sold by Hexagon, Zeiss and others, and assorted other 3D measurement products offering varying combinations of speed and accuracy, including x-ray systems. The market for 3D scanning and metrology services is dominated by small regional market participants. 


Semiconductor Sensors

 

We believe our semiconductor sensors, primarily consisting of our WaferSense family of products, are unique to the marketplace and mainly face competition from the manual techniques currently used by most customers to monitor their semiconductor fabrication or flat panel display manufacturing equipment. For some WaferSense applications, there are other products available in the marketplace that are capable of monitoring semiconductor fabrication equipment, but these competing solutions are typically not wireless or fully automated like our WaferSense products. We believe that our WaferSense products provide more reliable and accurate measurements than the manual techniques currently in use or other solutions currently available in the marketplace. In a semiconductor fabrication environment, we believe that our WaferSense products save significant time because the user is not required to break down process equipment, or pressurize a vacuum chamber, which improves tool up-time, throughput and process yield.


Employees

 

As of December 31, 2021, we had 189 full-time employees worldwide, including 47 in sales, marketing and customer support, 55 in manufacturing, purchasing and production operations, 67 in engineering, research and development, and 20 in finance, administration and information services. Of these employees, 106 are located at our corporate headquarters in Minneapolis, Minnesota and 83 are located in other offices (10 in other states throughout the U.S., 5 in the United Kingdom, 48 in Singapore, 7 in China, 6 in Taiwan, 2 in Mexico, 2 in Malaysia, 2 in Korea and 1 in Japan). Although we have been successful in attracting and retaining qualified technical personnel and direct labor for product assembly, there is an ongoing need for more employees, including those with advanced degrees and training in mathematics, optical physics and other key disciplines. There can be no assurance that we will be able to successfully retain or recruit qualified technical personnel or direct labor for product assembly in the future. None of our employees are covered by collective bargaining agreements or are members of a union.


Proprietary Protection

 

We rely on the technical expertise and know-how of our personnel and trade secret protection, as well as on patents, to maintain our competitive position. We attempt to protect intellectual property by restricting access to proprietary methods by a combination of technical and internal security measures. In addition, we make use of non-disclosure agreements with customers, consultants, suppliers and employees. Nevertheless, there can be no assurance that any of the above measures will be adequate to protect our proprietary technology, and it is possible that any of our products could be duplicated by other companies in the same markets in which we participate.


We hold 70 patents (31 U.S. and 39 foreign) on a number of technologies, including the technologies used in our SQ3000 Multi-Function inspection and metrology systems for AOI, SPI and CMM applications; other inspection and metrology systems; MRS high-precision 3D sensors; SMT electronic assembly alignment sensors, SIM sensors and semiconductor sensors, primarily consisting of our WaferSense wireless measurement devices; and other products. In addition, we have 44 pending patents (10 U.S. and 34 foreign). We protect the proprietary nature of our software primarily through copyright and license agreements, and also through close integration with our hardware offerings. We utilize 42 registered trademarks (11 U.S. and 31 foreign) and have 15 trademark registrations pending. We also have 12 domain names and several common law trademarks. It is our policy to protect the proprietary nature of our new product developments whenever they are likely to become significant sources of revenue. No guarantee can be given that we will be able to obtain patent or other protection for other products. 

 

As the number of our products increases and the functionality of those products expands, we may become increasingly subject to attempts to duplicate our proprietary technology. As a result, we may be required to bring patent infringement lawsuits against parties that have duplicated our proprietary technology. We periodically receive communications from third parties asserting that our products infringe, or may infringe, the proprietary rights of these third parties or others. These claims of infringement may lead to protracted and costly litigation, which could require us to pay substantial damages or have the sale of our products stopped by an injunction. Infringement lawsuits or claims could also cause product delays, require us to redesign our products, hinder our ability to sell our products, or make the sale of these products more expensive. In addition, although we do not believe that any of our products infringe the rights of others, there can be no assurance that third parties will not assert infringement claims in the future or that any such assertion will not require us to enter into a royalty arrangement or result in litigation. 

 

Government Regulation

 

Our business is subject to many foreign, federal, state and local legal and regulatory requirements, including among others those related to securities, employment, international trade, anticorruption, health, safety and the environment. Significant costs may arise from these requirements, or from new, modified or more stringent requirements, which could affect our operations and competitive position. 

 

 

Note Regarding Forward-Looking Statements


This Annual Report on Form 10-K contains, or incorporates by reference, not only historical information, but also forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended, or the Securities Act, and Section 21E of the Securities Exchange Act of 1934, or the Exchange Act, and that are subject to the safe harbors created by such sections. Forward-looking statements involve numerous risks and uncertainties. Our actual results may differ from our beliefs, expectations, estimates, and projections and, consequently, you should not rely on these forward-looking statements as predictions of future events. Forward-looking statements are not historical in nature and can be identified by words such as “anticipate,” “estimate,” “will,” “should,” “expect,” “target,” “believe,” “intend,” “seek,” “plan,” “goals,” “future,” “likely,” “may,” and similar expressions or their negative forms, or by references to strategy, plans, or intentions. These forward-looking statements are subject to risks and uncertainties, including, among other things, those described in this Annual Report on Form 10-K under the caption “Risk Factors”. Other risks, uncertainties, and factors that could cause actual results to differ materially from those projected are described below and may be described from time to time in reports we file with the Securities and Exchange Commission, or the SEC, including our Quarterly Reports on Form 10-Q and Current Reports on Form 8-K. Forward-looking statements speak only as of the date they are made, and we undertake no obligation to update or revise any such forward-looking statements, whether as a result of new information, future events, or otherwise.

 

Important factors, among others, that may affect our actual results include: a possible world-wide recession or depression resulting from the economic consequences of the COVID-19 pandemic; the negative effect on our revenue and operating results of the COVID-19 crisis on our customers and suppliers and the global supply chain; market conditions in the global SMT and semiconductor capital equipment industries; trade relations between the United States and China and other countries; the effects of inflation on our future costs; the timing of orders and shipments of our products, particularly our 3D MRS SQ3000 and SQ3000+ Multi-Function systems and MX systems for memory module inspection; increasing price competition and price pressure on our product sales, particularly our inspection and metrology systems; the level of orders from our OEM customers; the availability of parts required to meet customer orders; unanticipated product development challenges; the effect of world events on our sales, the majority of which are from foreign customers; rapid changes in technology in the electronics and semiconductor markets; product introductions and pricing by our competitors; the success of our 3D technology initiatives; the market acceptance of our SQ3000 and SQ3000+ Multi-Function systems and products for semiconductor advanced packaging inspection and metrology; costly and time consuming litigation with third parties related to intellectual property infringement; the negative impact on our customers and suppliers due to past and future terrorist threats and attacks and any acts of war; the impact of lower gross margin MX3000 orders on our consolidated gross margin percentage in any future period; and risks related to cancellation or renegotiation of orders we have received. Our ability to implement our strategy effectively is subject to numerous uncertainties and risks, including the risks identified in Item 1A of this Annual Report on Form 10-K. There can be no assurance that our strategy will be successful.  



 

Our operations are subject to a number of risks and uncertainties that may affect our financial results, and the accuracy of the forward looking statements we make in this Annual Report on Form 10-K. We make statements regarding anticipated product introductions and performance, changes in markets, customers and customer order rates, expenditures in research and development, growth in revenue, improvements to and changes in gross profit margins and profits, taxation levels, the effects of product pricing, and competition, all of which represent our expectations and beliefs about future events. Our actual results may vary from these expectations because of a number of factors that affect our business. The most important of these factors include the following:


Risks Related to the Global Economy and Public Health Crises




The Covid-19 pandemic has significantly and negatively impacted worldwide economic conditions that could have a material adverse effect on our operations and business in the future. The Covid-19 pandemic is affecting our customers, suppliers, service providers and employees to varying degrees, and the ultimate impacts of Covid-19, including the potential impact of known and future variants, on our business, results of operations, liquidity and prospects are not fully known at this time. Covid-19 is likely to continue to affect our business, especially if government authorities re-impose mandatory closures, shelter-in-place mandates and social distancing protocols, and seek voluntary facility closures or impose other restrictions. Recently, some domestic and foreign governments have taken actions to re-open their economies. However, as a result of increased cases of Covid-19 infections and deaths, certain domestic and foreign governments have taken steps to reverse some of these re-opening initiatives. Actions to impede spread of Covid-19 could materially adversely affect our ability to adequately staff and maintain our operations and negatively impact long-term research and development projects. Global travel restrictions could hinder our ability to obtain timely customer acceptance for some product sales, thereby negatively impacting our revenue and operating results. Our global supply chain has been and will most likely continue to be disrupted, which could negatively affect our sales, ability to provide products to our customers and ability to service our customers. In addition, the economic disruptions caused by the Covid-19 outbreak could prevent customers from paying us for our products and result in significant credit losses. A prolonged global recession or depression resulting from the Covid-19 pandemic most likely would have a significant negative impact on our revenue and operating results, and could lead to asset impairment charges. As we cannot predict the duration or scope of the Covid-19 pandemic, the anticipated negative financial impact to our operating results cannot be reasonably estimated, but could be material and last for an extended period of time.  





The Covid-19 pandemic has caused disruptions in the global supply chain, including shortages of raw materials, parts and labor, and shipping and logistics issues, including delays in ocean freight and port congestion. A continuation of these disruptions for an extended period could have a material adverse effect on our operations and business in the future. It has become increasingly difficult to obtain adequate supplies of certain key components and labor for product assembly. Port congestion and tight bookings for global sea freight have caused delays in product deliveries. These issues have increased the prices we pay for labor and freight, and in some cases the key components for our products. Increases in the cost of components, labor and freight negatively impact our profitability. Delays in product deliveries, the inability to obtain adequate supplies of components or labor, an interruption in a supply relationship or reduced production capacity, could result in the inability to meet customer demands and deliver one or more of our products for a period of several months or longer, negatively impacting our revenue and profitability.





Our business has been and will continue to be significantly impacted by the global economy and uncertainty in the outlook for the global economy makes it more likely that our actual results will differ materially from expectations. Economic uncertainties affect businesses such as ours in a number of ways, making it difficult to accurately forecast and plan our future business activities, and negatively impacting our operating results. Economic instability or uncertainty could cause tightening of credit in financial markets, may lead consumers and businesses to postpone spending, and may cause our customers to cancel, decrease or delay their existing and future orders with us. In addition, financial difficulties experienced by our suppliers, distributors or customers could result in product delays, increased accounts receivable defaults and inventory challenges. The OEMs, system integrators and equipment manufacturers that purchase our sensors, and the semiconductor and SMT manufacturers that purchase our WaferSense® and inspection and metrology system products, are largely dependent on continued demand for consumer and commercial electronics, including smartphones, tablets and computers. Demand for electronics is a function of the health of the economies in the United States and around the world. Sales of our general purpose metrology products and services are also dependent upon the health of the global economy and the competitiveness of the end products manufactured by the customers we serve. Our results would be adversely affected in the future if these economies were to experience recessions, or if the products manufactured by our end customers are not successful in the marketplace. 





We must attract, retain and integrate employees of all types and abilities in order to be successful, ranging from direct labor for product assembly to key research and development employees. The labor market has become increasingly competitive, causing us to increase our costs which negatively impacts our profitability. The inability to attract and retain the employees we need could have a material adverse effect on our ability to grow our business in the future. Identifying, hiring, developing, training and retaining employees is critical to our future success, and competition for all types of employees is becoming more intense. It has become increasingly difficult to find, hire and retain the employees we need to operate and grow our business, causing us to increase pay levels for current and prospective employees, which has a negative impact on our costs and profitability. Failure to successfully hire key research and development employees or the loss of key research and development employees could have a significant negative impact on our ability to create innovative new products, effectively compete in the markets we serve, and on our ability to profitably grow our business. The inability to find the direct labor we need for product assembly could impact our ability to deliver products in a timely manner, negatively impacting our revenue and profitability.




World events beyond our control, including the current crisis in Ukraine, may affect our operations.  Our operations and markets could be negatively affected by world events that effect economies and commerce in specific countries, such as China, Singapore, Taiwan and Japan, in which we do business, or indirectly by events in other countries, such as Ukraine, in which we do not do business. Natural disasters have affected travel patterns and accessibility in these countries in the past and other natural occurrences could affect the business we do in these countries in the future. Terrorist activity or other armed conflicts, labor disputes that impact complex international shipping arrangements, increases in energy prices or other unanticipated actions could negatively impact our business. Many of the countries in which we do business can be affected by economic forces that are different from the forces that affect the United States and change the amount of business we conduct. 




Global trade conflicts may negatively impact our sales and results of operations. Ongoing trade conflicts with other countries, particularly China, may impact our sales and results of operations. Concerns over the impact of the U.S. and China trade war on the global economy may cause our customers to refrain from making investments in capital equipment, which would negatively impact our sales. We or our suppliers source certain raw materials and components from China. If the United States were to increase existing tariff levels or impose new tariffs, our supply chain and costs would be negatively impacted, resulting in an increase in our cost structure and negatively impacting our operating profits.




We generate over 80% of our revenue from export sales that are subject to risks of international operations. Our export sales are subject to many of the risks of international operations, including:

 

  


 

currency controls and fluctuations in currency exchange rates; 

 

  


 

changes in local market business requirements and increased cost and development time required to modify and translate our products for local markets;

 

  


 

inability to recruit qualified personnel in a specific country or region; 

 

  


 

difficulty in establishing and maintaining relationships with local vendors; 

 

  


 

differing foreign technical standards;

 

  


 

differing regulatory requirements; 

 

  


 

export restrictions and controls, tariffs and other trade barriers; 

 

  


 

reduced protection for intellectual property rights; 

 

  


 

changes in political and economic conditions; 

 

  


 

potentially adverse tax assessments; and 

 

  


 

terrorism, pandemics, war or other events that may affect local economies and our access to markets outside the U.S. 






Exchange rate fluctuations may have a significant negative impact on our revenue and results of operations. Most of our international export sales are negotiated, invoiced and paid in U.S. dollars. Significant fluctuations in the value of the U.S. dollar relative to other currencies could have a negative impact on the price competitiveness of our products relative to foreign competitors and the willingness of customers to purchase our products. A significant portion of our cost of revenues, research and development and sales and marketing costs are denominated in the Singapore dollar. In addition, other sales and marketing costs are denominated in British Pounds Sterling, the new Taiwan dollar and the Chinese Yuan. Our costs will increase and our results will be negatively impacted in future periods, if the U.S. dollar weakens relative to the currencies of these countries. Fluctuations in the relationship between the U.S. dollar and the currencies of other geographies could have a significant negative impact on our future revenue, costs and results of operations. 


Risks Related to Our Products and Customer Preferences


The markets for capital equipment in the SMT and semiconductor industries in which we operate are cyclical, and market downturns have occurred, such as the industry-wide slowdown in demand for SMT and semiconductor capital equipment that we experienced in 2019. We operate in cyclical markets – the SMT and semiconductor capital equipment markets – that periodically adjust independent of global economic conditions. For example, sluggish conditions in the markets for SMT and semiconductor capital equipment emerged late in the fourth quarter of 2018 and continued through the third quarter of 2019. In the past, we have not been able to predict with accuracy the timing or magnitude of periodic downturns in these markets. Some of these downturns have severely affected our operations and resulted in several years of unprofitable operations. Ultimately, we have difficulty determining the duration or severity of any market downturns, the strength of any subsequent recoveries, and the long-term impact that economic conditions may have on our business.


We have recently introduced or are in the process of introducing a number of products based upon our 3D MRS technology, the failure of new products employing this technology to achieve acceptance in the marketplace would materially adversely affect our future anticipated operating results. We have incorporated our MRS technology into various products, including our next generation ultra-high resolution 3-micron pixel 3D NanoResolution MRS sensor, other 3D MRS sensor offerings, WX3000 system, MX3000 system and SQ3000™ and SQ3000+™ Multi-Function systems. We also expect to use this technology in other new products, including next generation sensors and systems for semiconductor component package inspection, semiconductor wafer and advanced packaging inspection and metrology. If the products we have introduced or are about to introduce based upon the MRS technology do not operate up to specifications, if the market otherwise does not find these products attractive, or if we are unable to efficiently identify new customers and new applications for these products given our current sales channels, our operating results for 2022 and longer-term growth in revenue and operating results would be materially adversely affected.


Sales of sensors to five OEM customers constituted over 25% of our revenues in 2021, and the loss of any of these customers could have a materially adverse impact on our results of operations. If the order rates from these five OEM customers are negatively impacted by global economic events or competitive factors, if they choose sensors manufactured by other suppliers, or otherwise terminate their relationships with us, our results of operations could be adversely affected.

  

  

Our products could become obsolete. Our current products, as well as the products we have under development, are designed to operate with the technology that we believe currently exists or may exist for electronic components, printed circuit boards, memory modules and semiconductor manufacturing markets, including semiconductor component packaging, semiconductor wafer and advanced packaging inspection and metrology. The products we develop to meet customer needs and requirements are subject to rapid technological change and, because it takes considerable time to develop new products, we must anticipate industry trends, as well as technological developments, in order to effectively compete. Further, because we do not have unlimited development resources, we might choose to forgo the pursuit of what becomes a leading technology or market and devote our resources to technologies and markets that are less successful. If we incorrectly anticipate technology developments or market trends, or have inadequate resources to develop our products to deal with changes in technology and markets, our products could become obsolete, and our future revenue and operating results would be negatively impacted.

  

 

The market for most SMT capital equipment has become more mature and price competitive. The electronics capital equipment market for surface mount technologies is becoming more mature, resulting in increased price pressure on suppliers of this type of equipment. Consequently, our AOI and SPI inspection and metrology systems and SMT electronic assembly alignment sensor products have become subject to increased levels of price competition and competition from other suppliers, which may or may not utilize different technology, including lower cost Asian based suppliers.    

 

 

The market for 3D AOI equipment for printed circuit board inspection has become more price competitive, which has negatively impacted our margins. Pricing for 3D AOI equipment for inspection of printed circuit boards with less demanding features and complexity has become more competitive, resulting in increased price pressure. In some instances, our SQ3000 Multi-Function systems compete in the marketplace for inspection of printed circuit boards in which the inspection requirements are less complex and stringent. In this segment of the market, we have experienced competitive pressures that have reduced the sales prices, which in turn has negatively impacted our revenue and gross margins. If this level of competition were to increase in the future, our revenue and gross margins would be negatively impacted. 

  

Because of the high cost of changing equipment, customers in our markets are sometimes resistant to purchasing our products even if they are superior. We believe that, because of the high cost of installation and integration of new inspection equipment into production lines, once an SMT customer has selected a vendor’s equipment, the customer generally relies upon that equipment and, to the extent possible, subsequent generations of the same vendor’s equipment. Accordingly, unless our systems offer performance or cost advantages that outweigh the expense of installing and integrating new systems, it may be difficult for us to achieve significant sales to a customer that currently uses a competitor’s equipment. 



An increase in competition in the marketplace for our WaferSense products could negatively impact our future revenue and profitability. Our WaferSense products generate a high gross margin and are very profitable. As our WaferSense products become more established in the marketplace, we may attract competitors, some of which may be larger than us with better sales channels and more resources for product development. An increase in competition for our WaferSense products could cause us to lose future sales, reduce sales prices, or increase our costs for enhanced sales channels or product development in order to compete, thereby negatively impacting our revenue and profitability.
 
Risks Related to Our Business


Our operating results have varied, and will likely continue to vary significantly, from quarter to quarter. Our quarterly operating results have varied in the past and will likely continue to vary significantly from quarter to quarter. Some of the factors that may influence our operating results include the following: changes in customer demand for our sensors, inspection and metrology systems, which is influenced by economic conditions in our markets and the overall health of the global economy; demand for products that use circuit boards and semiconductors; market acceptance of our products and those that have integrated our 3D MRS sensors into their product offerings, including OEM's and system integrators; competition; seasonal variations in customer demand; the timing, cancellation or delay of customer orders, particularly our SQ3000 and SQ3000+ Multi-Function systems and MX systems for memory module inspection; the timing of product shipments and related customer acceptances; and product development and other costs, including increased research, development, engineering and marketing expenses associated with our introduction of new products and product enhancements, and ongoing sales and marketing activities.


Our development and assembly operations in Singapore, and our sales operations in Asia and Europe, are subject to unique risks because of the remote nature of the operations. Our Singapore development and manufacturing operations, and our Asian and European sales operations, present a number of risks. These risks relate to the retention of personnel, management of product development and operations, management and access to customer and distributor interactions, control over administrative and business processes, regulatory and legal issues and other matters relating to foreign operations. Our financial performance, ability to serve our customers and ability to manufacture and sell products in Asia and Europe could be negatively impacted if we are unable to retain our Asian and European based employees, if it costs more than expected to retain these employees or hire other experienced employees in a timely manner, if we are unable to manage these employees appropriately, or if we are unable to locate suitable sources of components for our products manufactured in Asia.

Our ability to compete in the markets for our products is dependent upon our ability to recruit new capable channel partners and direct sales employees and the sales skills of our channel partners and employees. In order to generate significant incremental revenue in the future, we need to expand and enhance our sales capabilities by recruiting new, high quality channel partners and sales employees. Our efforts to increase the size and capability of our direct sales team and channel partners will increase our cost structure. If we are unable to successfully improve our direct sales team and sales channel, our future sales will be negatively impacted, and we will not obtain an adequate return on the increase in our cost structure, including obtaining an adequate return on our investment in research and development. To the extent our competitors have relationships with stronger channel partners, it may be difficult for us to achieve significant incremental revenue, even if our products are technologically superior.


Competitors in Asia may be able to compete favorably with us based on lower production and employee costs, greater financial resources and larger sales distribution networks. We compete with large multinational companies when selling our inspection and metrology system products. These competitors are able to take advantage of greater financial resources and larger sales distribution networks. We also compete with new Asian based suppliers, many of which may have lower overall production and employee costs and are willing to offer their products at lower selling prices to customers. 

    


We are exposed to credit risk through sales to our OEM customers and distributors of our inspection and metrology system products. We sell our products through key OEM customers, and usually have significant credit exposure with respect to these customers. In addition, we sell our inspection and metrology system products through a network of international distributors. These distributors tend to be small and have limited financial resources and access to capital. Although these distributors do not hold our products in inventory for re-sale, we are exposed to credit risk and would incur losses if they are unable to pay for the products they have purchased from us. 



    

We are dependent upon outside suppliers and contractors for components of our products, and delays in or unavailability of those components would adversely affect our results. We use outside contractors to manufacture the components used in many of our products and some of the components we order require significant lead times that could affect our ability to sell our products if the components are not available. In addition, if these components do not meet stringent quality requirements or become obsolete, there could be delays in the availability of our products, and we could be required to make significant investments in designing replacement components.

    


Breaches of our network security could expose us to losses. We manage and store on our network systems various proprietary information and sensitive or confidential data relating to our operations and products. There has been an increasing incidence of unauthorized access to the computer networks of various technology companies. Computer programmers and hackers may be able to gain unauthorized access to our network system and steal proprietary information, compromise confidential information, create system disruptions, or cause shutdowns. These parties may also be able to develop and deploy viruses, worms, and other malicious software programs that disrupt our operations and create security vulnerabilities. Attacks on our network systems could result in significant losses, compromise our competitive advantages and damage our reputation with customers.

    


We are dependent on several key employees, including Dr. Subodh Kulkarni, our President and Chief Executive Officer, for new product innovation and much of the sales, marketing and business development activity related to our products (especially our MRS sensors). These key employees perform a critical role for us with respect to product strategy and new product development. Also, they have been instrumental in development and expansion of our relationships with key OEM customers, system integrators and others. If the employment of Dr. Kulkarni and other key employees with CyberOptics were to end for any reason, our ability to develop innovative products and achieve sustained long-term revenue growth may be negatively impacted.


Risks Related to Legal and Regulatory Proceedings


Our efforts to protect our intellectual property may be less effective in certain foreign countries, where intellectual property rights are not as well protected as in the United States. The laws of some foreign countries do not protect our proprietary rights to as great an extent as do the laws of the U.S., and many U.S. companies have encountered substantial problems in protecting their proprietary rights against infringement abroad. Consequently, there is a risk that we may be unable to adequately protect our proprietary rights in certain foreign countries. If this occurs, it would be easier for our competitors to develop and sell competing products in these countries. 



We may fail to adequately protect our intellectual property and therefore lose our competitive advantage. Our future success and competitive position depend in part upon our ability to obtain and maintain proprietary technology for our principal product families, and we rely, in part, on patent and trade secret law and confidentiality agreements to protect that technology. If we fail to adequately protect our intellectual property, our competitors may be able to duplicate and enhance the products we have developed. We own or have licensed a number of patents, and have filed applications for additional patents. Any of our pending patent applications may be rejected, and we may be unable to develop additional proprietary technology that is patentable in the future. In addition, the patents that we do own or that have been issued or licensed to us may not provide us with competitive advantages and may be challenged by third parties. Further, third parties may also design around these patents. In addition to patent protection, we rely upon trade secret protection for our confidential and proprietary information and technology. We routinely enter into confidentiality agreements with our employees and other third parties. Even though these agreements are in place, there can be no assurance that trade secrets and proprietary information will not be disclosed, that others will not independently develop technology substantially equivalent to our proprietary technology or otherwise gain access to our trade secrets, or that we can fully protect our trade secrets and proprietary information. Violations by others of our confidentiality agreements and the loss of employees who have specialized knowledge and expertise could harm our competitive position and cause our sales and operating results to decline as a result of increased competition. Our failure to obtain or maintain trade secret protection might adversely affect our ability to continue our research or bring products to market.




Protection of our intellectual property rights, or the efforts of third parties to enforce their own intellectual property rights against us, may result in costly and time-consuming litigation, substantial damages, lost product sales and/or the loss of important intellectual property rights. We may be required to initiate litigation in order to enforce any patents issued to or licensed by us, or to determine the scope or validity of a third party’s patent or other proprietary rights. Any litigation, regardless of outcome, could be expensive and time consuming, and could subject us to significant liabilities or require us to re-engineer our products or obtain expensive licenses from third parties. There can be no assurance that any patents issued to or licensed by us will not be challenged, invalidated or circumvented or that the rights granted thereunder will provide us with a competitive advantage. In addition, our commercial success depends in part on our ability to avoid infringing or misappropriating patents or other proprietary rights owned by third parties. We periodically receive communications from third parties asserting that our products infringe, or may infringe, the proprietary rights of these third parties or others. These claims of infringement may lead to protracted and costly litigation, which could require us to pay substantial damages or have the sale of our products stopped by an injunction. Infringement lawsuits or claims could also cause product delays or require us to redesign our products and these delays could result in the loss of substantial revenues. We may also be required to obtain a license from the third party or cease activities utilizing the third party’s proprietary rights. We may not be able to enter into such a license or such a license may not be available on commercially reasonable terms. Accordingly, the patent infringement litigation or claims could hinder our ability to sell our products, or make the sale of these products more expensive.



Risks Related to Financial and Capital Markets and Tax Matters


We have significant deferred tax assets recorded on our balance sheet, and our ability to utilize these deferred tax assets is dependent on our ability to generate sufficient profits in future periods. A change in income tax laws or a further reduction in income tax rates in the future could require us to write-down the value of our deferred tax assets. The amount of any write-down could be large and may result in a significant charge against future earnings. Our ability to utilize our deferred tax assets and realize their value is dependent upon our ability to generate sufficient levels of profitability and taxable income in future periods. If we do not generate sufficient profits and taxable income in future periods, we most likely would be required to record a valuation allowance against our deferred tax assets, resulting in a significant charge against earnings. 

  

  

Our stock price is highly volatile. The trading price of our common stock fluctuates significantly in response to, among other risks, the risks described elsewhere in this Annual Report on Form 10-K, as well as: 

 

  


 

conditions or trends in the industries in which we operate;

 

  


 

quarterly variations in our operating results; 

 

  


 

fluctuations in the stock market in general and market prices for the stock of companies that provide sensing technology solutions and inspection and metrology systems in particular; 

 

  


 

changes in financial estimates by us or securities analysts and recommendations by securities analysts; 

 

  


 

changes in capital structure, including issuance of additional debt or equity to the public; and 

 

  


 

transactions in our common stock by major investors and certain analyst reports, news and speculation. 

  

The absence of significant market liquidity in our common stock could impact the ability of our shareholders to purchase and sell larger blocks, the attractiveness of our stock to institutional shareholders, and the market value of our common stock. There were 7,391,906 shares of our common stock outstanding as of December 31, 2021. Although our common stock is traded on the NASDAQ Stock Market, in part because of the number of shares we have outstanding and available for trading, the daily trading volume in our stock is low, averaging less than 100,000 shares per day. Shareholders wishing to purchase or sell larger blocks of stock may not be able to do so quickly, and disposal by any shareholder of a significant block of stock could adversely affect the sale price in the marketplace. Further, institutional investors often have policies against investment in stock that is illiquid, and many institutional investors may elect not to purchase or hold our stock because of the inability to dispose of it. Lack of institutional interest in our common stock can negatively impact its market price and liquidity.

  


 

Not applicable.

 

 

We lease a 61,208 square foot mixed office and warehouse facility built to our specifications in Golden Valley, Minnesota, which functions as our corporate headquarters and primary manufacturing facility for our sensor products, including those used in our inspection and metrology system products. Our lease for the Golden Valley facility expires July 31, 2026, contains a rent escalation clause and one renewal option of five years.

 

We lease a 19,805 square foot mixed office and warehouse facility in Singapore that serves as a sales, development and final assembly and integration facility for our inspection and metrology system products. Our lease for the Singapore facility expires on July 24, 2023.

 

As of December 31, 2021, we also have operating leases for small facilities in Malaysia, Taiwan, the United Kingdom and China, which expire in December 2023, June 2023, May 2023 and November 2022, respectively. 

 


We are not currently subject to any material pending or threatened legal proceedings.

 


Not applicable.

 

 

 

 

Our common stock is traded on the Nasdaq Global Market under the trading symbol "CYBE". 

 

As of February 28, 2022, there were approximately 200 holders of record of our common stock and approximately 5,500 beneficial holders. We have never paid a dividend on our common stock. Dividends are payable at the discretion of the Board of Directors out of funds legally available. Our Board has no current intention of paying dividends.


We withhold common shares to cover employee tax withholding obligations from the exercise of stock options and the vesting of restricted stock units. In the three months ended December 31, 2021, we withheld 1,340 shares to satisfy employee tax withholding requirements of $59,000. In the year ended December 31, 2021, we withheld 18,403 shares to satisfy employee tax withholding requirements of $787,000.


 

Overview


We are a leading global developer and manufacturer of high precision 3D sensors and system products for inspection and metrology. We also develop and manufacture our WaferSense® products, which is a family of wireless, wafer-shaped sensors that provide measurements of critical factors in the semiconductor fabrication process. We intend to leverage our sensor technologies in the surface mount technology (SMT) and semiconductor industries to deliver profitable growth. A key element of our strategy is the continued development and sale of high precision 3D sensors and system products based on our proprietary Multi-Reflection Suppression™ (MRS™) technology. We believe that our MRS technology is a breakthrough 3D optical technology for high-end inspection and metrology with the potential to significantly expand our markets. Another key element in our strategy is the continued development and introduction of new sensor applications for our WaferSense family of products.


We believe that conditions in the SMT and semiconductor capital equipment markets are favorable, and we believe this market strength will continue in 2022. Over the longer-term (i.e., the next several years), we expect a growing number of opportunities in the markets for SMT and semiconductor inspection and metrology. We believe that our 3D MRS sensor and system products and our WaferSense family of products have the potential to expand our presence in the markets for SMT and semiconductor capital equipment.  

 

Manufacturing yield challenges as electronics and semiconductors become more complex are driving the need for more precise inspection and metrology. We believe 3D inspection and metrology represent high-growth segments in both the SMT and semiconductor capital equipment markets. We believe our 3D MRS technology platform is well suited for many applications in these markets, particularly with respect to complex circuit boards, semiconductor component package inspection and semiconductor wafer and advanced packaging inspection and metrology applications. We are taking advantage of current market trends by deploying our 3D MRS sensor technology in the following products:

  

  

·

Our SQ3000™ and SQ3000™+ Multi-Function systems for Automated Optical Inspection (AOI), Solder Paste Inspection (SPI) and coordinate measurement (CMM) applicationswhich are designed to expand our presence in markets requiring high precision inspection and metrology. In these markets, identifying defects has become highly challenging and critical due to smaller semiconductor and electronics packaging and increasing component density on circuit boards. The SQ3000+ Multi-Function system with its higher resolution MRS sensor that inhibits reflection-based distortions caused by shiny components and surfaces is capable of measuring feature sizes down to 50 microns and is specifically designed for high-end inspection and metrology applications including advanced packaging, mini-LED and advanced SMT for high-end electronics. We believe our 3D MRS sensor technology is uniquely suited for many of these applications because of its ability to offer microscopic image quality and superior measurement performance at production line speeds.

  

  

·

Our next generation ultra-high resolution three micron pixel 3D NanoResolution MRS sensor, which is capable of measuring feature sizes down to 25 microns accurately and at high speeds, and is suitable for many semiconductor wafer and advanced packaging inspection and metrology applications. We have adapted the software used in our SQ3000 Multi-Function systems to work with wafer handling equipment to facilitate sales of our 3DNanoResolution MRS sensor to OEM's and system integrators. 


  

·

Our next generation MX3000™ AOI system for 3D inspection of memory modules following the singulation step of the manufacturing process. We recognized our first revenue from the sale of the MX3000 in the first quarter of 2020, and two of the world’s three largest memory manufacturers and their subcontractors have now purchased our MX3000 system. Additional orders for memory module inspection are expected in future periods, and we believe the potential market opportunity for our MX3000 system and 3D MRS sensors for memory module inspection is significant.



· Our WX3000™ metrology and inspection system for semiconductor wafer and advanced packaging applications, which incorporates our next generation ultra-high resolution 3D NanoResolution MRS sensor, performs 100% 3D and 2D inspection and metrology simultaneously at high speeds and delivers throughput of more than 25 wafers per hour. We believe the WX3000 performs two to three times faster than alternate technologies at data processing speeds in excess of 75 million 3D data points per second. The WX3000 is suitable for many high volume semiconductor wafer and advanced packaging inspection and metrology applications for feature sizes down to 25 microns. We recently received our first purchase order for the WX3000, with delivery of the system and recognition of the revenue expected in the first half of 2022. We anticipate that sales of sensors and systems based on our 3D MRS technology for semiconductor wafer and advanced packaging inspection and metrology will provide us with long-term growth opportunities.

 



Revenue from MRS based products, including 3D AOI systems and high precision 3D MRS sensors, increased by $16.4 million or 52% to $48.2 million in 2021, from $31.8 million in 2020. Over the long term, we anticipate continued increases in sales of products based on our MRS technology in the SMT and semiconductor capital equipment markets. In particular, we believe inspection and metrology for mini and micro-LED, memory modules and semiconductor wafer and advanced packaging applications represent significant long-term growth opportunities. We anticipate increasing sales of MRS-based products by selling them to new OEM customers and system integrators, and by expanding direct sales of inspection and metrology system products to end-user customers.

 

We have continued to invest in our WaferSense family of products, because fabricators of semiconductors and other customers view these products as valuable tools for improving yields and productivity. We have recently introduced several new WaferSense products to further increase our revenue growth, including the WaferSense 300mm Auto Resistance Sensor (ARS) that enables real-time resistance measurements of plating cell contacts in semiconductor ECD applications. Additional WaferSense applications are under development, including Automatic Teaching Sensors (ATS) in both wafer and reticle formats, products for wafer edge detection and products that measure temperature during semiconductor fabrication. Over the long-term, strong future sales growth is anticipated for our WaferSense family of products.


Our backlog was $47.3 million at December 31, 2021, an increase from $44.2 million at September 30, 2021, and $23.0 million at December 31, 2020. We are forecasting sales of $22.0 to $24.0 million for the first quarter of 2022, a significant increase from revenue of $17.7 million in the first quarter of 2021. We believe that conditions in the SMT and semiconductor capital equipment markets are favorable, and we believe this market strength will continue in 2022.However, an increase in the severity of the current Covid-19 pandemic, an escalation in the Ukraine conflict, and a resulting economic recession or depression, could cause a slow-down in demand for SMT and semiconductor capital equipment. Over the long term, we believe anticipated sales growth of our products based on 3D MRS technology and WaferSense sensors should increase revenues and net income. We believe that we have the resources required to attain our growth objectives, given our available cash and marketable securities balances totaling $38.3 million at December 31, 2021.


Impact from Covid-19

 

Effect of Covid-19 Outbreak on Business Operations 

 

Covid-19 was first identified in December 2019, and in March 2020, the World Health Organization categorized Covid-19 as a pandemic. The Covid-19 pandemic is affecting our customers, suppliers, service providers and employees to varying degrees, and the ultimate impacts of Covid-19, including the potential impact of known and future variants, on our business, results of operations, liquidity and prospects are not fully known at this time. Overall, the Covid-19 outbreak has had a relatively minimal impact on our business to date. Our revenues increased by 32% to $92.8 million in 2021, from $70.1 million in 2020. We are forecasting strong revenue growth on a year-over-year basis in the first quarter of 2022. Our forecast for the first quarter of 2022 could change if the Covid-19 pandemic worsens, or if unforeseen events related to the pandemic occur. The most significant impacts on our business from the Covid-19 pandemic include the following: 


· Our key factories are located in Minnesota and Singapore. Both of these locations have been subject to government mandated shelter-in-place orders. Because our operations have been deemed essential, we were able to keep our factories up and running while the shelter-in-place mandates were in effect. If the pandemic worsens, it is possible that our operations may not be deemed essential under future government mandated shelter-in-place orders, and we may be required to shut-down factory operations. We have periodically implemented split-shifts for our factory operations to minimize the number of employees in our facilities at any given time, but these measures have not affected our production capacity. Since the start of the pandemic, many of our non-factory employees have spent the majority of their time working remotely. To date, the shelter-in-place mandates and remote work arrangements have had a minimal impact on operations, but that could change if the pandemic worsens and is more than temporary.


· Sales of some products, mainly our SQ3000 Multi-Function systems and MX memory module inspection products, require customer acceptance due to performance or other criteria that is considered more than a formality. Most of our customer’s factories have remained open during the Covid-19 pandemic because they are deemed to be essential under government shelter-in-place mandates. However, global travel restrictions and quarantine measures have hindered our ability to obtain some customer acceptances for certain of our products at various times during the Covid-19 pandemic. Continuing or new global travel restrictions and quarantine measures could hinder our ability to obtain customer acceptances in a timely manner in the future, and therefore impact the timing of revenue recognition.


·
Certain operating expenses were reduced in 2021 and 2020 due to the Covid-19 pandemic. Travel, trade show expenses and other costs were reduced due to changes in employee travel patterns and trade show cancellations.  Travel, trade show and other costs may increase in the future once the Covid-19 pandemic starts to ease.



· The Covid-19 pandemic has caused disruptions in the global supply chain, including shortages of raw materials, parts and labor, and shipping and logistics issues, including delays in ocean freight and port congestion. Key supply chain disruptions impacting our business have been resolved to date. On-hand inventories have been sufficient to enable us to mitigate any supply disruptions with minimal impact on our sales or ability to service customers. Cost increases related to these issues have not had a significant impact on our results of operations. However, it has become increasingly difficult to obtain adequate supplies of certain key components and labor for product assembly. Port congestion and tight bookings for global sea freight have caused delays in product deliveries. Continued increases in the cost of components, labor and freight could negatively impact our profitability in the future if we are unable to recover these costs by charging more for the products we sell. The inability to obtain adequate supplies of components or labor could result in the inability to meet customer demands and deliver one or more of our products for a period of several months or longer, negatively impacting our revenue and profitability. Supply chain disruptions are expected to continue for the foreseeable future and may increase if the pandemic worsens or continues for an extended period of time.


We currently do not anticipate any significant credit losses or asset impairments resulting from the Covid-19 pandemic. As of December 31, 2021, our available balances of cash and marketable securities totaled $38.3 million. We believe that we have the resources required to attain our growth objectives and to meet any unforeseen difficulties resulting from the Covid-19 pandemic. We will continue to closely monitor the Covid-19 pandemic and its impact on our business in the coming months. 

 

Singapore Jobs Support Program

 

The Singapore Government implemented a jobs support program in 2020 that was intended to support businesses and encourage retention of employees during the period of economic uncertainty caused by the Covid-19 pandemic. Under the jobs support program, the Singapore Government co-funded a portion of the gross monthly wages paid to local employees, which reduced our operating expense by $410,000 in 2020. We did not receive any material benefit from the Singapore jobs support program in 2021, nor do we expect to receive any material benefits in future periods. 


Our ability to implement our strategy effectively is subject to numerous uncertainties and risks, including the risks identified in Item 1A of this Annual Report on Form 10-K.

 

Revenues

 

Our revenues increased by 32% to $92.8 million in 2021, from $70.1 million in 2020, and increased by 18% to $70.1 million in 2020, from $59.3 million in 2019. The following table sets forth, for the years indicated, revenues by product line:

 

 

 

 

 

 

 

 

 

 

 

 

 

(In thousands)

 

2021

 

2020

 

2019

High precision 3D and 2D sensors

 

$

25,941

 

 

$

17,522

 

 

$

12,579

 

Inspection and metrology systems

 

42,958

 

 

37,547

 

 

32,713

 

Semiconductor sensors

 

23,875

 

 

15,048

 

 

13,971

 

Total

 

$

92,774

 

 

$

70,117

   

 

$

59,263

 


Revenues from sales of high precision 3D and 2D sensors increased by $8.4 million or 48% to $25.9 million in 2021, from $17.5 million in 2020, and increased by $4.9 million or 39% to $17.5 million in 2020, from $12.6 million in 2019. The revenue increases were due to higher sales of 3D MRS sensors and legacy 2D sensors resulting from improving conditions in the global semiconductor and SMT capital equipment markets and higher adoption rates for 3D MRS sensors by existing OEM customers. Sales of 3D MRS sensors increased by $5.6 million or 48% to $17.2 million in 2021, from $11.6 million in 2020, and increased by $5.6 million or 93% in 2020, from $6.0 million in 2019.


Sales of high precision 3D and 2D sensors are dependent on the success of our OEM customers and system integrators selling products that incorporate our sensors. We believe sales of our 3D MRS sensors, including our next generation ultra-high resolution three micron pixel 3D NanoResolution MRS sensor, will represent an increasing percentage of our total high precision 3D and 2D sensor sales in the future. Sales of high precision 3D and 2D sensors, including 3D MRS sensors, are prone to significant quarterly fluctuations due to variations in market demand and customer inventory levels. 


Revenues from sales of inspection and metrology systems increased by $5.4 million or 14% to $43.0 million in 2021, from $37.5 million in 2020, and increased by $4.8 million or 15% to $37.5 million in 2020, from $32.7 million in 2019. The revenue increases in both periods were mainly due to higher sales of SQ3000 Multi-Function systems and MX memory module inspection systems resulting from improving market conditions, and increasing sales for more complex applications such as inspection and metrology for mini-LED and memory modules. Sales of SQ3000 Multi-Function systems increased by $3.5 million or 19% to $22.4 million in 2021, from $18.9 million in 2020, and increased by $1.4 million or 8% to $18.9 million in 2020, from $17.5 million in 2019. Sales of 2D and 3D MX memory module inspection systems totaled $8.3 million in 2021, compared to $6.7 million in 2020 and $3.3 million in 2019. 



In addition to improving market conditions, the increase in sales of SQ3000 Multi-Function systems was due to the competitive advantages offered by our 3D MRS sensor technology and many companies transitioning from 2D to 3D AOI systems to meet the increasingly demanding product inspection and metrology requirements in the SMT and semiconductor markets. The market transition away from 2D AOI systems is expected to result in an industry-wide compound annual rate of growth in global sales of 3D AOI systems of almost 20% through 2028. In addition, we believe the performance advantages of our SQ3000 Multi-Function systems have allowed us to attain a leading position in the high growth mini-LED inspection and metrology market. Sales of SQ3000 Multi-Function systems for mini-LED inspection and metrology applications totaled $8.0 million in 2021, compared to $4.6 million in 2020 and $2.2 million in 2019. Given these market dynamics and because of the competitive advantages of our 3D MRS sensor technology, we anticipate sales of SQ3000 Multi-Function systems will represent an increasing percentage of our total inspection and metrology system sales in the future.


We believe memory manufacturers have determined that post singulation automated optical inspection of memory modules is an important step in their manufacturing process to improve yields and product quality. We recognized our first revenue from the sale of the 3D MX3000™ memory module inspection system in the first quarter of 2020, and two of the world’s three largest memory manufacturers and their subcontractors have now purchased the MX3000 system. At December 31, 2021 our backlog of orders for memory module inspection totaled $3.5 million, and we expect to recognize these orders as revenue primarily in the first half of 2022. Additional orders for memory module inspection are expected in future periods, and we believe the potential market opportunity for our MX3000 system and 3D MRS sensors for memory module inspection is significant.


Revenues from sales of semiconductor sensors, principally our WaferSense line of products, increased by $8.8 million or 59% to $23.9 million in 2021, from $15.0 million in 2020, and increased by $1.1 million or 8% to $15.0 million in 2020, from $14.0 million in 2019. The revenue increases were due to construction of new semiconductor fabs, favorable market conditions for semiconductor capital equipment spending, and growing acceptance of our WaferSense products as important productivity enhancements tools by semiconductor manufacturers and capital equipment suppliers. Over the longer-term, we anticipate that the benefits from growing market awareness of our WaferSense products, improved account penetration at major semiconductor manufacturers and capital equipment suppliers and new product introductions will lead to additional WaferSense product sales.


Export revenues totaled $77.4 million or 83% of our revenues in 2021, compared to $56.0 million or 80% of total revenues in 2020, and $44.8 million or 76% of total revenues in 2019. Export revenues as a percentage of total revenues increased in 2021 and 2020 due to higher sales of 3D and 2D high precision sensors, semiconductor sensors, SQ3000 Multi-Function systems for mini-LED inspection and metrology and MX3000™ memory module inspection systems. A higher proportion of these products are generally sold outside the United States as compared to our other products.

 

Cost of Revenues and Gross Margin

 

Cost of revenues increased by $10.7 million or 28% to $49.6 million in 2021, and increased by $5.9 million or 18% to $38.9 million in 2020, from $33.0 million in 2019. Increases in cost of revenues in 2021 and 2020 were primarily due to the corresponding increases in revenue levels. Total revenues increased by 32% in 2021 and increased by 18% in 2020. Items included in cost of revenues that fluctuate with the level of sales include raw materials, direct labor and factory overhead costs. Revenue mix also contributed to the changes in cost of revenues. 

 

Total gross margin as a percentage of revenue was 46.5% in 2021, 44.5% in 2020, and 44.4% in 2019. Our gross margin percentage in 2021 was favorably impacted by proportionately higher sales of semiconductor sensors which generate a higher gross margin percentage than our other products, offset in part by sales of lower gross margin MX3000 systems. There was no significant change in our total gross margin as a percentage of revenue in 2020, when compared to 2019.


Our markets are highly price competitive, particularly in the electronics assembly and SMT markets. As a result, we have experienced continual pressure on our gross margins. We compensate for the pressure to reduce the price of our products by introducing new products with more features and improved performance and through manufacturing cost reduction programs. Sales of many products that we have recently introduced or are about to introduce, including our SQ3000+ Multi-Function system, WX3000 system for semiconductor wafer and advanced packaging inspection and metrology, next generation 3D MRS sensors and semiconductor sensors, (consisting primarily of our WaferSense line of products) have, or are expected to have, more favorable gross margins than many of our existing products. Our next generation 3D MRS sensor and system products are being designed for more complex and demanding inspection and metrology applications in the SMT and semiconductor markets. Sales prices and gross profit margins for these applications tend to be higher than margins for products sold in the general purpose SMT market. However, the gross margin percentage for our 3D MX3000 system for inspection of memory modules is lower than our current total gross margin percentage due to the significant costs for material handling and automation required for this product. Our total gross margin percentage would most likely be negatively impacted in the future if sales of our 3D MX3000 become a larger share of our total revenue mix.


The Covid-19 pandemic has caused disruptions in the global supply chain, including shortages of raw materials, parts and labor, and shipping and logistics issues, including delays in ocean freight and port congestion. Cost increases related to these issues have not had a significant impact on our results of operations. However, continued increases in the cost of components, labor and freight could negatively impact our gross margins in the future if we are unable to recover these costs by charging more for the products we sell. Supply chain disruptions are expected to continue for the foreseeable future and may increase if the Covid-19 pandemic worsens or continues for an extended period of time.


Operating Expenses

 

Research and development (R&D) expenses were $10.9 million or 12% of revenues in 2021, $9.6 million or 14% of revenues in 2020, and $9.4 million or 16% of revenues in 2019. The increase in R&D expenses in 2021 was due to higher compensation costs for new and existing R&D employees, including incentive compensation, engineering prototypes and consulting services. In 2020, higher compensation costs for new and existing R&D employees, including higher incentive compensation accruals, were mostly offset by the $340,000 favorable impact from the Singapore Government's jobs support program on wage costs discussed above. Current R&D expenditures are primarily focused on development of 3D MRS sensor and system products, including enhancements to existing products and development of next generation products, and continued R&D work on new and next generation WaferSense products.


Selling, general and administrative ("S,G&A") expenses were $18.0 million or 19% of revenues in 2021, $15.6 million or 22% of revenues in 2020, and $16.0 million or 27% of revenues in 2019. The increase in S,G&A expenses in 2021 was due to higher third party channel commissions resulting from the 32% increase in our revenues and higher compensation costs for new and existing S,G&A employees, including incentive compensation due to our improved financial performance. An increase in our allowance for doubtful accounts and bad debt expense also contributed to the increase. The decrease in S,G&A expenses in 2020 was due to lower costs for travel and trade shows resulting from the Covid-19 pandemic, lower costs for professional fees and a $70,000 benefit from the Singapore Government's jobs support program, offset in part by higher compensation costs, including higher incentive compensation accruals due to our improved financial performance. 


We anticipate that operating expenses will increase modestly in 2022 when compared to 2021. We have added incrementally to both R&D and sales employees throughout 2021, which will increase our costs in 2022. We also expect travel and trade show costs to increase once the Covid-19 pandemic begins to ease. These anticipated cost increases in 2022 may be partially offset by lower incentive compensation due to significant bonus over-achievement in 2021 and the higher levels of revenue and profitability required to earn a bonus in 2022.


Interest Income and Other

 

Interest income and other includes interest earned on investments and gains and losses associated with foreign currency transactions, primarily intercompany financing transactions associated with our subsidiaries in the United Kingdom, Singapore, China and Taiwan. We recognized foreign currency transaction losses of $11,000 in 2021, compared to foreign currency transaction gains of $27,000 in 2020.


Provision for Income Taxes

 

We recorded income tax expense of $1.7 million in 2021, compared to income tax expense of $612,000 in 2020. The increase in income tax expense in 2021 was mainly due to higher levels of income. Our income tax expense reflected an effective income tax rate of approximately 12% in 2021 and 10% in 2020. Our effective tax rate in 2021 was favorably impacted by Global Intangible Low-Taxed Income (GILTI), Foreign Derived Intangible Income (FDII), $605,000 of excess tax benefits from employee share-based compensation and favorable benefits from U.S. federal R&D tax credits and foreign tax credits. Our effective tax rate in 2020 was favorably impacted by $497,000 of excess tax benefits from employee share-based compensation and favorable benefits from U.S. federal R&D tax credits and foreign tax credits, offset in part by a negative impact from GILTI. All of our remaining federal net operating loss carry forwards were fully utilized in 2020. Credits and excess tax benefits have a reduced effect on our effective tax rate as income levels increase.

 

Liquidity and Capital Resources   

 

Our cash and cash equivalents increased by $5.3 million in 2021. Cash provided by operating activities of $10.1 million and proceeds of $10.8 million from maturities and sales of marketable securities were partially offset by purchases of marketable securities totaling $13.6 million and purchases of fixed assets and payment of capitalized patent costs totaling $1.9 million. Proceeds from stock option exercises and share purchases under our Employee Stock Purchase Plan totaling $675,000, were more than offset by $787,000 of cash used to make employee withholding tax payments for shares withheld related to stock option exercises and vesting of restricted stock units. Our cash and cash equivalents fluctuate in part because of sales and maturities of marketable securities and investment of cash balances in marketable securities, and from other sources of cash. Accordingly, we believe the combined balances of cash and marketable securities provide a more reliable indication of our available liquidity than cash balances alone. Combined balances of cash and marketable securities increased by $7.7 million to $38.3 million as of December 31, 2021, from $30.6 million as of December 31, 2020.

 

Our cash flow from operating activities increased to $10.1 million in 2021 from $6.0 million in 2020, primarily due to an increase in our profitability, offset in part by use of cash for working capital, including inventory and receivables, reflecting the 32% increase in our sales and anticipated customer demands in the future.

 

Operating activities provided $10.1 million of cash in 2021. The amount of cash provided by operations was favorably impacted by our net income of $12.8 million. Net income was affected by non-cash expenses totaling $5.6 million for depreciation and amortization, non-cash operating lease expense, provision for doubtful accounts, deferred taxes, non-cash gains from foreign currency transactions, share-based compensation costs and an unrealized gain on our available-for-sale equity security. Changes in operating assets and liabilities providing cash included an increase in accounts payable of $5.2 million and an increase in accrued expenses of $589,000. Changes in operating assets and liabilities using cash included an increase in accounts and trade notes receivable of $4.8 million, an increase in inventories of $8.2 million, a decrease in advance customer payments and other of $177,000 and a decrease in operating lease liabilities of $830,000. Increases in accounts payable and inventories at December 31, 2021 were due to planned purchases of raw materials to meet anticipated customer demand. The increase in accrued expenses was mainly due to higher accruals for wages and benefits, including incentive compensation, warranty and income taxes, mainly due to higher sales and our improved financial performance. Accounts and trades notes receivable increased due to higher sales in the fourth quarter of 2021 compared to the fourth quarter of 2020. Advance customer payments and other was down due to a decrease in deposits for equipment prior to transfer of control. The decrease in operating lease liabilities was due to monthly rental payments for our facility leases.

 

Operating activities provided $6.0 million of cash in 2020. The amount of cash provided by operations was favorably impacted by our net income of $5.7 million. Net income was affected by non-cash expenses totaling $4.6 million for depreciation and amortization, non-cash operating lease expense, provision for doubtful accounts, deferred taxes, non-cash gains from foreign currency transactions, share-based compensation costs and an unrealized loss on our available-for-sale equity security. Changes in operating assets and liabilities providing cash included a decrease in accounts and trade notes receivable of $1.9 million, an increase in accrued expenses of $1.3 million and an increase in advance customer payments of $247,000. Changes in operating assets and liabilities using cash included an increase in inventories of $5.2 million, a decrease in accounts payable of $1.9 million and a decrease in operating lease liabilities of $772,000. Accounts and trade notes receivable decreased due to an improvement in the rate of collections. Sales of sensor products, which typically have shorter collection cycles than sales of our inspection and metrology system products, were higher in the fourth quarter of 2020, when compared to the fourth quarter of 2019. The increase in accrued expenses was mainly due to bonus accruals resulting from our improved financial performance. Advance customer payments were up due to an increase in deposits for equipment prior to transfer of control. The increase in inventories was due to planned purchases of raw materials in the third quarter of 2020 to meet anticipated customer demand for SQ3000 Multi-Function systems. The decrease in accounts payable was due to the timing of raw material purchases, with lower purchases of raw materials in the fourth quarter of 2020, when compared to the fourth quarter of 2019. Operating lease liabilities decreased due to monthly rental payments under our facility leases.

 

Investing activities used $4.7 million of cash in 2021 and $3.3 million of cash in 2020. Changes in the level of investment in marketable securities, resulting from the purchases, sales and maturities of those securities used $2.8 million of cash in 2021 and $1.6 million of cash in 2020. We used $1.9 million of cash in 2021 and $1.7 million of cash in 2020 for the purchase of fixed assets and capitalized patent costs. 

 

Financing activities used $112,000 of cash in 2021 and $23,000 of cash in 2020. Proceeds from the exercise of stock options and share purchases under our employee stock purchase plan provided $675,000 of cash in 2021 and $582,000 of cash in 2020. Tax payments for shares withheld related to stock option exercises and vesting of restricted stock units used $787,000 of cash in 2021 and $605,000 of cash in 2020. In July 2019, our Board of Directors authorized a $3.0 million share repurchase program which expired on June 30, 2020. No shares were repurchased under this program in 2020 prior to its expiration.

 

At December 31, 2021, we did not have any relationships with unconsolidated entities or financial partnerships, such as entities often referred to as structured finance or special purpose entities. These entities are established by some companies for the purpose of establishing off-balance sheet arrangements or for other contractually narrow or limited purposes.

 

In February 2020, we finalized a new lease for our existing 19,805 square foot mixed office and warehouse facility in Singapore, which serves as a sales, development and final assembly and integration facility for our inspection and metrology system products. The new lease does not contain any incentives or renewal options and runs through July 24, 2023. Rent and facility operating costs under the new lease remain unchanged when compared to the old lease that expired in July 2020.

 


Except for obligations under facility leases and purchase contracts, we had no material commitments for expenditures as of December 31, 2021. Purchase commitments for raw materials and other inventory can vary based on the volume of revenue and resulting inventory requirements.


Our cash, cash equivalents and marketable securities totaled $38.3 million at December 31, 2021. We believe that on-hand cash, cash equivalents and marketable securities, coupled with anticipated future cash flow from operations, will be adequate to fund our cash flow needs for the foreseeable future, including the contractual obligations mentioned above.

 

Inflation and Foreign Currency Transactions

 

Changes in our revenues have resulted primarily because of changes in the level of unit shipments due to competitive factors and the relative strength or weakness of the worldwide SMT and semiconductor capital equipment markets. We do not believe that inflationary pressures and cost increases had a significant effect on our operations in 2021. Cost increases for material components, freight and employee wages could have an impact on our operations in future periods if inflationary pressures continue for an extended period of time and if we are unable to recover these costs by charging more for the products we sell.

 

Most of our international export sales are negotiated, invoiced and paid in U.S. dollars. We manufacture our inspection and metrology system products in Singapore and a portion of our raw material purchases are denominated in Singapore dollars. We also have R&D and sales personnel located in Singapore and sales offices located in other parts of the world. Although currency fluctuations do not significantly affect our revenue, they can impact our costs and influence the price competitiveness of our products and the willingness of existing and potential customers to purchase our products.

 

Critical Accounting Policies and Estimates


Our discussion and analysis of financial condition and results of operations is based upon our consolidated financial statements, which have been prepared in accordance with GAAP. The preparation of these consolidated financial statements requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenues and expenses, and related disclosure of contingent assets and liabilities. On an on-going basis, we evaluate these estimates, including estimates related to revenue recognition, bad debts, warranty obligations, inventory valuation, intangible assets, and income taxes. We base these estimates on historical experience and on various other assumptions that we believe are reasonable under the circumstances, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources. Our actual results may differ from these estimates under different assumptions or conditions. The estimates and judgments that we believe have the most effect on our reported financial position and results of operations are as follows:

 

Revenue Recognition.

 

Revenue is measured based on the consideration specified in a contract with a customer. A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account for purposes of revenue recognition. Revenue from all customers, including distributors, is recognized when a performance obligation is satisfied by transferring control of a product or service to a customer. Amounts billed to customers for shipping and handling are included in revenue. Taxes collected from customers and remitted to governmental authorities are excluded from revenue on the net basis of accounting. Accounts receivable are due under normal trade terms, generally 150 days or less.

 

Sales involving multiple performance obligations typically include the sale of an inspection or metrology systems product, installation and training, and in some cases, an extended warranty. When a sale involves multiple performance obligations, we account for individual products and services separately if the customer can benefit from the product or service on its own or with other resources that are readily available to the customer and the product or service are separately identifiable from other promises in the arrangement. The consideration is allocated between separate performance obligations in proportion to their estimated stand-alone selling price. If the stand-alone selling price is not directly observable, we use the cost plus margin approach to estimate stand-alone selling price. Costs related to products delivered are recognized in the period revenue is recognized, including product warranties for periods ranging from 1 to 3 years.


Our performance obligations are satisfied at a point in time or over time as work progresses. Revenue from products and services transferred to customers at a point in time totaled $90.5 million, or 97.6% of our total revenue in 2021, and $68.4 million, or 97.6% of our total revenue in 2020. Revenue from these contracts is recognized when obligations under the terms of the contract with our customers are satisfied, which is generally with the transfer of control upon shipment. Sales of some products may require customer acceptance due to performance or other acceptance criteria that is considered more than a formality. For these product sales, revenue is recognized upon notification of customer acceptance.



Revenue from products and services transferred to customers over time totaled $2.3 million, or 2.4% of our total revenue in 2021, and $1.7 million, or 2.4% of our total revenue in 2020. Periodically, sensor product arrangements with our OEMs will create an asset with no alternative use and include an enforceable right to payment. For these arrangements, control is transferred over the manufacturing process; therefore, revenue is recognized over time utilizing an input method based on actual costs incurred in the manufacturing process to date relative to total expected production costs. For certain longer duration 3D scanning service projects, we progress bill as the services are performed. These arrangements create an asset with no alternative use and include an enforceable right to payment. For these arrangements, control is transferred over the hours incurred to complete the scanning project; therefore, revenue is recognized over time utilizing an input method based on actual hours incurred relative to total projected project hours. For maintenance and extended warranty contracts, revenue is recognized over time on a straight-line basis over the term of the contract as the customer simultaneously receives and consumes the benefits of the coverage.

 

 Allowance for Doubtful Accounts and Trade Notes.

 

We maintain allowances for doubtful accounts for estimated losses resulting from the inability of our customers to make required payments. In making the determination of the appropriate allowance for doubtful accounts, we consider specific accounts, historical write-offs, changes in customer relationships and credit worthiness and concentrations of credit risk. Specific accounts and trade notes receivable are written-off once a determination is made that the account is uncollectible. If the financial condition of our customers were to deteriorate, resulting in an impairment of their ability to make payments, additional allowances may be required. If our accounts and trade notes receivable were to increase by $2.0 million, we estimate that our allowance for doubtful accounts would increase by $36,000. The allowance for doubtful accounts and trade notes was $355,000 at December 31, 2021 and $302,000 at December 31, 2020.

 

Allowance for Warranty Expenses.

 

We provide for the estimated cost of product warranties at the time revenue is recognized. While we engage in extensive product quality programs and processes, including actively monitoring and evaluating the quality of components provided by suppliers, warranty obligations do arise. These obligations are affected by product failure rates, the costs of materials used and service delivery expenses incurred in correcting a product failure. If actual product failure rates and material or service delivery costs differ from our estimates, revisions to the estimated warranty liability are required and could be material. If our sales were to increase by $10 million, we estimate that our allowance for warranty expenses would increase by $110,000. The allowance for warranties was $991,000 at December 31, 2021 and $839,000 at December 31, 2020.

 

Inventory Write Downs.

 

We write down inventory for estimated obsolescence or lack of marketability equal to the difference between the cost of inventory and the estimated market value based upon assumptions about future demand and market conditions. We formulate our assumptions regarding future demand and market conditions based on order trends and input from customers regarding their future requirements. If actual market conditions are less favorable than those projected, or if in the future we decide to discontinue sales and marketing of any of our products, additional inventory write-downs may be required. For some products, we typically carry on-hand inventories of $1 million or more. If these products were to become obsolete or otherwise non-saleable, we could be required to write down the value of the inventory by $1 million or more, depending upon the amount of inventory being carried. Excess and obsolete inventories were written down by $812,000 at December 31, 2021 and $752,000 at December 31, 2020.

 

Valuation of Intangible and Long-Lived Assets. 

 

We evaluate the carrying value of goodwill annually on December 31, and more frequently if management believes indicators of impairment exist. We assess the impairment of identifiable intangible assets, long lived assets and related goodwill whenever events or changes in circumstances indicate the carrying value may not be recoverable. Factors we consider important, which could trigger an impairment review and that we consider when performing our annual goodwill impairment assessment, include the following:

  


Significant under-performance relative to expected historical or projected future operating results. 

  


Significant changes in the manner of our use of the acquired assets or the strategy for our overall business. 

  


Significant negative industry or economic trends. 

  


Significant decline in the price of our common stock for a sustained period, and the size of our market capitalization relative to our net book value.

  


For intangible and long-lived assets, if the carrying value exceeds the undiscounted cash flows from such asset. 


When we determine that the carrying value of intangibles, long-lived assets and related goodwill may not be recoverable based upon the existence of one or more of the above indicators of impairment, we measure any potential impairment based on a projected discounted cash flow method using a discount rate that we believe is commensurate with the risk inherent in our current business model. We utilize the income approach to estimate our fair value. The income approach is a valuation technique under which we estimate future cash flows using financial forecasts. Future estimated cash flows are discounted to their present value to calculate fair value. When determining fair value, we also give consideration to the control premium in excess of our current market capitalization that might be obtained from a third party acquirer. These assumptions require significant judgment and actual results may differ from assumed or estimated amounts.

 

At December 31, 2021, we had goodwill of $1.4 million. Our recent analysis performed as of December 31, 2021 indicates that our goodwill is not impaired. However, our conclusion could change in the future, if our assumptions about future economic conditions, revenue growth or profitability change. Any resulting impairment charge could have a material effect on our financial position and results of operations in the future.

 

Income Taxes.

 

Significant judgment is required in determining worldwide income tax expense based upon tax laws in the various jurisdictions in which we operate. We have established reserves for uncertain tax positions by applying the “more likely than not” threshold (i.e., a likelihood of occurrence greater than fifty percent). The recognition threshold is met when an entity concludes that a tax position, based solely on its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statute of limitations. De-recognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained. All tax positions are analyzed periodically and adjustments are made as events warrant modification, such as the completion of audits or the expiration of statutes of limitations, which may result in future charges or credits to income tax expense.

 

As part of the process of preparing our consolidated financial statements, management is required to estimate income taxes in each of the jurisdictions in which we operate. This process involves estimating the current tax liability, as well as assessing temporary differences arising from the different treatment of items for financial statement and tax purposes. These differences result in deferred tax assets and liabilities, which are recorded on our consolidated balance sheet.


We have significant deferred tax assets as a result of temporary differences between the taxable income on our tax returns and U.S. GAAP income, R&D tax credit carry forwards and state net operating loss carry forwards. A deferred tax asset generally represents future tax benefits to be received when temporary differences previously reported in our consolidated financial statements become deductible for income tax purposes, when net operating loss carry forwards could be applied against future taxable income, or when tax credit carry forwards are utilized on our tax returns. We assess the realizability of our deferred tax assets and the need for a valuation allowance based on the guidance provided in current financial accounting standards.

 

At December 31, 2021, we had $5.2 million of deferred tax assets, of which $1.5 million were subject to valuation allowances. Our valuation allowances at December 31, 2021 and December 31, 2020 mainly relate to state R&D tax credits and net operating loss carry forwards. Significant judgment is required in determining the realizability of our deferred tax assets. The assessment of whether valuation allowances are required considers, among other matters, the nature, frequency and severity of any current and cumulative losses, forecasts of future profitability, the duration of statutory carry forward periods, our experience with credit and loss carry forwards not expiring unused and tax planning alternatives. In analyzing the need for valuation allowances, we first considered our history of cumulative operating results for income tax purposes over the past three years in each of the tax jurisdictions in which we operate, our financial performance in recent quarters, statutory carry forward periods and tax planning alternatives. In addition, we considered both our near-term and long-term financial outlook. After considering all available evidence (both positive and negative), we concluded that recognition of valuation allowances for substantially all of our U.S. and Singapore based deferred tax assets was not required at December 31, 2021 or December 31, 2020. However, our conclusion could change in the future, if our actual results or assumptions about future economic conditions, revenue growth or profitability deteriorate. Any resulting valuation allowance could have a material negative effect on our financial position and results of operations in the future. For example, if we were to experience losses over a period of several years, we could be required to record valuation allowances for most of our remaining net deferred tax assets, which totaled $3.7 million at December 31, 2021.


We file income tax returns in the United States and various state and foreign jurisdictions. Our federal income tax returns for years after 2017 are still subject to examination by the Internal Revenue Service. We are no longer subject to state and local income tax examinations for years prior to 2017. The Inland Revenue Authority of Singapore has initiated a routine compliance review of our 2018 income tax return. We presently anticipate that the outcome of this audit will not have a significant impact on our financial position or results of operations. 

 


Not applicable

  

 

 

CONSOLIDATED BALANCE SHEETS 

CYBEROPTICS CORPORATION

 

 

 

 

 

 

 

 

 

 

 

December 31,

 

December 31,

(In thousands, except share information)

 

2021

 

2020

ASSETS

 

 

 

 

 

 

Cash and cash equivalents

 

$

13,684

 

 

$

8,399

 

Marketable securities

 

7,327

 

 

8,121

 

Accounts receivable, less allowance for doubtful accounts of $355 at December 31, 2021 and $302 at December 31, 2020

 

19,821

 

 

14,735

Inventories

 

27,602

 

 

20,271

 

Prepaid expenses
808

686

Other current assets

 

864

 

 

890

 

Total current assets

 

70,106

 

 

53,102

 

 

 

 

 

 

Marketable securities, long-term

 

17,281

 

 

14,052

 

Equipment and leasehold improvements, net

 

3,174

 

 

3,235

 

Intangibles, net

 

375

 

 

325

 

Goodwill

 

1,366

 

 

1,366

 

Right-of-use assets (operating leases)
2,052

2,621
Trade notes receivable, long-term


418

Deferred tax assets

 

3,668

 

 

4,597

 

Total assets

 

$

98,022

 

 

$

79,716

 

 

 

 

 

 

LIABILITIES AND STOCKHOLDERS’ EQUITY

 

 

 

 

 

 

Accounts payable

 

$

10,275

 

 

$

5,118

 

Advance customer payments

 

599

 

 

823

 

Accrued expenses

 

4,418

 

 

3,893

 

Current operating lease liabilities
864

819

Total current liabilities

 

16,156

 

 

10,653

 

 

 

 

 

 

Other liabilities

 

177

 

 

134

 

Long-term operating lease liabilities
2,369

3,244

Reserve for income taxes

 

214

 

 

157

 

Total liabilities

 

18,916

 

 

14,188

 

 

 

 

 

 

Commitments and contingencies

 

 

 

 

 

 

 

 

 

 

 

Stockholders’ equity:

 

 

 

 

 

 

Preferred stock, no par value, 5,000,000 shares authorized, none outstanding

 

 

 

 

Common stock, no par value, 25,000,000 shares authorized, 7,391,906 shares issued and outstanding at December 31, 2021 and 7,294,617 shares issued and outstanding at December 31, 2020

 

39,052

 

 

37,817

 

Accumulated other comprehensive loss

 

(1,510

)

 

(1,102

)

Retained earnings

 

41,564

 

 

28,813

 

Total stockholders’ equity

 

79,106

 

 

65,528

 

Total liabilities and stockholders’ equity

 

$

98,022

 

 

$

79,716

 

 

THE ACCOMPANYING NOTES ARE AN INTEGRAL PART OF THE CONSOLIDATED FINANCIAL STATEMENTS.

 

 

CONSOLIDATED STATEMENTS OF OPERATIONS

CYBEROPTICS CORPORATION 

 

 



 

 

 

 

 

 

 

Year Ended December 31,

(In thousands, except per share amounts)

 

2021

 

2020

Revenues

 

$

92,774

 

 

$

70,117

 

Cost of revenues

 


49,608

 

 

38,900

 

 

 


 

 

 

 

Gross margin

 

 

43,166

 

 

31,217

 








Research and development expenses

 


10,857

 

 

9,572

 

Selling, general and administrative expenses

 


17,973

 

 

15,648

 









Income from operations

 


14,336

 

 

5,997

 

 

 


 

 

 

 

Interest income and other, net


159

357

 

 


 

 

 

 

Income before income taxes

 


14,495

 

 

6,354

 

 

 


 

 

 

 

Income tax provision

 


1,744

 

 

612

 

 


 

 

 

 

Net income 

 

$

12,751

 

 

$

5,742

 

 


 

 

 

 

Net income per share – Basic

 

$

1.74

 

 

$

0.80

 

Net income per share – Diluted

 

$

1.69

 

 

$

0.77

 

 

 



 

 

 

Weighted average shares outstanding – Basic

 


7,320

 

 

7,215

 

Weighted average shares outstanding – Diluted

 


7,537

 

 

7,454

 

 

THE ACCOMPANYING NOTES ARE AN INTEGRAL PART OF THE CONSOLIDATED FINANCIAL STATEMENTS.

 

 

CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME 

CYBEROPTICS CORPORATION

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Net income

 

12,751

 

 

$

5,742

 

 

 

 

 

 

 

 

Other comprehensive income (loss), before tax:

 

 

 

 

 

 

 

Foreign currency translation adjustments

 

 

(193

)

 

190

 

 

 

 

 

 

 

Unrealized gains (losses) on available-for-sale securities

 

 

(272

)

 

145


 

 

 

 

 

 

 

Total other comprehensive income (loss) before income taxes

 

 

(465

)

 

335









Income tax provision (benefit)

 

 

(57

)

 

31









Total other comprehensive income (loss) after income taxes

 

 

(408

)

 

304









Total comprehensive income

 

12,343

 

 

$

6,046

 

 

THE ACCOMPANYING NOTES ARE AN INTEGRAL PART OF THE CONSOLIDATED FINANCIAL STATEMENTS.

 

 

CONSOLIDATED STATEMENTS OF CASH FLOWS

CYBEROPTICS CORPORATION 

 

 

Year Ended December 31,

(In thousands) 

 

2021


2020

CASH FLOWS FROM OPERATING ACTIVITIES:

 


 


 

 

Net income

 

$

12,751


 

$

5,742

 

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

 


 


 

 

Depreciation and amortization

 


2,560


 

2,629

 

Non-cash operating lease expense

569

521

Provision (recovery) for doubtful accounts

 


124

 

(20

)

Deferred taxes

 


983

 

366


Foreign currency transaction gains

 


(8

)


(97

)

Share-based compensation

 


1,347

 

 

1,181

  

Unrealized (gain) loss on available for sale equity security

(13 )
18

Changes in operating assets and liabilities:

 


 

 

 

 

Accounts and trade notes receivable

 


(4,792

)

 

1,888

Inventories

 


(8,221

)

 

(5,212

)

Prepaid expenses and other assets

 


9

 

49

Accounts payable

 


5,198

 

(1,903

)

Advance customer payments and other

 


(177

)

 

247

Accrued expenses

 


589

 

1,321

Operating lease liabilities

(830 )
(772 )

Net cash provided by operating activities

 


10,089

 

 

5,958

 

 


 

 

 

 

CASH FLOWS FROM INVESTING ACTIVITIES:

 


 

 

 

 

Proceeds from maturities of available-for-sale marketable securities

 


10,601

 

 

11,576

 

Proceeds from sale of available-for-sale marketable securities

225


Purchases of available-for-sale marketable securities

 


(13,639

)

 

(13,186

)

Additions to equipment and leasehold improvements

 


(1,627

)

 

(1,527

)

Additions to patents

 


(254

)

 

(212

)

Net cash used in investing activities

 


(4,694

)

 

(3,349

)

 

 


 

 

 

 

CASH FLOWS FROM FINANCING ACTIVITIES:

 


 

 

 

 

Proceeds from exercise of stock options

 


428

 

 

358

 

Tax payments related to shares withheld for share-based compensation plans

 

(787

)

 

(605

Proceeds from issuance of common stock under employee stock purchase plan

 


247

 

 

224

 

Net cash used in financing activities

 


(112

)

 

(23

)

 

 


 

 

 

 

Effects of exchange rate changes on cash and cash equivalents

 


2

 

(23

)

 

 


 

 

 

 

Net increase in cash and cash equivalents

 


5,285

 

2,563

 

 


 

 

 

 

Cash and cash equivalents – beginning of period

 


8,399

 

 

5,836

 

Cash and cash equivalents – end of period

 

$

13,684

 

 

$

8,399

 

 

THE ACCOMPANYING NOTES ARE AN INTEGRAL PART OF THE CONSOLIDATED FINANCIAL STATEMENTS.

 


CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

CYBEROPTICS CORPORATION

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Common Stock

 

Accumulated Other Comprehensive Loss

 

Retained Earnings

 

Total Stockholders’ Equity

(In thousands)

 

Shares

 

Amount

 

 

 

BALANCE, December 31, 2019

 


7,155

 

 

$

36,659

 

 

(1,406

)

 

23,071

 

 

$

58,324

 


















Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment

 


135

 

 

358

 

 

 

 

 

 

358

 


















Tax payments related to shares withheld for share-based compensation plans

 

 

(23

)

 

(605

)

 

 

 

 

 

(605

)

















Share issuances for director compensation

 


8

 

 

 

 

 

 

 

 

 


















Share-based compensation

 


 

 

1,181

 

 

 

 

 

 

1,181

 


















Issuance of common stock under Employee Stock Purchase Plan

 


20

 

 

224

 

 

 

 

 

 

224

 


















Other comprehensive income, net of tax

 


 

 

 

 

304

 

 

 

304


















Net income

 


 

 

 

 

 

 

5,742

 

 

5,742

 






















BALANCE, December 31, 2020

 


7,295

 

 


37,817

 

 


(1,102

)

 


28,813

 

 


65,528

 


















Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment

 


100

 

 

428

 

 

 

 

 

 

428

 


















Tax payments related to shares withheld for share-based compensation plans

 

 

(18

)

 

(787

)

 

 

 

 

 

(787

)

















Share issuances for director compensation 

 


8

 


 

 

 

 

 

 


 


















Share-based compensation

 


 

 

1,347

 

 

 

 

 

 

1,347

 


















Issuance of common stock under Employee Stock Purchase Plan

 


7

 

 

247

 

 

 

 

 

 

247

 


















Other comprehensive loss, net of tax

 


 

 

 

 

(408

)

 

 

 

(408

)

















Net income

 


 

 

 

 

 

 

12,751

 

 

12,751

 






















BALANCE, December 31, 2021



7,392



$

39,052



$

(1,510

)


$

41,564



$

79,106


 

THE ACCOMPANYING NOTES ARE AN INTEGRAL PART OF THE CONSOLIDATED FINANCIAL STATEMENTS.

 

 

 

NOTES TO THE CONSOLIDATED FINANCIAL STATEMENTS

CYBEROPTICS CORPORATION

 

NOTE 1 BUSINESS DESCRIPTION AND SIGNIFICANT ACCOUNTING POLICIES

Description of Business

We are a leading global developer and manufacturer of high precision 3D sensors and systems for inspection and metrology. We also develop and manufacture our WaferSense® products, a family of wireless, wafer-shaped sensors that provide measurements of critical factors in the semiconductor fabrication process. Our sensors and system products are used in surface mount technology (SMT) and semiconductor markets to significantly improve yields and productivity.

Principles of Consolidation

The consolidated financial statements include the accounts of CyberOptics Corporation and its wholly-owned subsidiaries. In these notes to the consolidated financial statements, these companies are collectively referred to as “CyberOptics,” “we,” “us,” or “our.” All significant inter-company accounts and transactions have been eliminated in consolidation.


Segment Reporting

We operate in a single reportable segment that includes the design, development and manufacture of high precision sensing, inspection and metrology solutions for the SMT and semiconductor markets.


Use of Estimates

The preparation of consolidated financial statements in conformity with generally accepted accounting principles requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ significantly from those estimates.


Cash and Cash Equivalents

We consider all highly liquid investments purchased with an original maturity of 90 days or less to be cash equivalents. Cash and cash equivalents consist of funds maintained in demand deposit accounts, money market accounts, certificate of deposits, corporate debt instruments and U.S. government backed obligations. Cash and cash equivalent balances, at times, may exceed federally insured limits.


Marketable Securities


We determine the classification of investment securities at the time of purchase. Marketable securities are classified as short-term or long-term in the consolidated balance sheets based on their maturity date and expectations regarding sales. All marketable securities are classified as available-for-sale and are a part of our asset/liability management strategy and may be sold in response to changes in interest rates, prepayment risk or other market factors.


Cash and marketable securities held by foreign subsidiaries totaled $588,000 at December 31, 2021 and $672,000 at December 31, 2020.


Debt Securities


Debt securities consist of U.S. government and agency backed obligations, certificates of deposit, corporate debt instruments, or asset backed securities.

 

Available-for-sale securities are carried at estimated fair value. Unrealized gains and losses for debt securities are reported as a separate component of stockholders’ equity in accumulated other comprehensive income (loss), net of applicable income taxes, until realized. Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The amortized cost and fair value of debt securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of debt securities sold and the resulting realized gains or losses are also determined by specific identification. Interest income and dividends are recognized in interest income on an accrual basis. Premiums and discounts on debt securities are amortized as an adjustment to interest income over the period to maturity of the related security using the effective interest method.

We monitor the carrying value of our debt securities compared to their fair value to determine whether an other-than-temporary impairment (“OTTI”) has occurred. Factors considered in determining whether a loss is other-than-temporary include the length of time and extent to which fair value has been less than the amortized cost basis, credit quality (considering factors such as adverse conditions specific to the issuer and the security and ratings agency actions) and our ability and intent to hold the investment for a period of time sufficient to allow for any anticipated recovery in market value. If a decline in fair value of our debt securities is determined to be other-than-temporary, the amount by which amortized cost exceeds the fair value of a debt security is separated into a component representing the credit loss, which is recognized in earnings, and a component related to all other factors, which is recognized in other comprehensive income (loss). The measurement of the credit loss component is equal to the difference between the debt security’s amortized cost basis and the present value of its expected future cash flows discounted at the security’s effective yield. If we intend to sell the security, or if it is more likely than not we will be required to sell the security before recovery, an OTTI write-down is recognized in earnings equal to the entire difference between the amortized cost basis and fair value of the security.

Equity Securities


Equity securities have readily determinable fair values. Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The fair value of equity securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of equity securities sold and resulting realized gains or losses are also determined by specific identification. Dividends are recognized in interest income on an accrual basis. Unrealized gains and losses for equity securities are reported in net income.


Inventories

 

Inventories are stated at the lower of cost or net realizable value, with cost determined using the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business less cost to sell and considers our current assessment of general market and economic conditions, slow-moving inventory and future demand. Appropriate consideration is given to deterioration, obsolescence, and other factors in evaluating net realizable value.  

 

Accounts and Trade Notes Receivable


We extend unsecured credit to our customers in the normal course of business. We periodically provide financing to customers for the purchase of SQ3000 Multi-Function system products. Trade notes receivable bear interest at annual effective rates ranging from approximately 5% to 7%, and are repayable over periods ranging from 18 to 36 months. The current portion of the trade notes are classified as accounts receivable in the accompanying balance sheets.


Interest income will be discontinued for any trade notes receivable with a specific reserve established if it is likely that we will be unable to collect all amounts due according to the original terms of the trade notes. For these trade notes receivable, cash collection will first be applied as a reduction to principal outstanding. Any cash received in excess of the outstanding principal payments will be recognized as interest income. Trade notes receivable may be removed from non-accrual status with respect to interest income based upon changes in customer circumstances, including a sustained history of payments. At December 31, 2021 and December 31, 2020, none of our trade notes receivable were in a non-accrual status with respect to interest income.


Allowance for Doubtful Accounts and Trade Notes 

 

Allowances for doubtful accounts are maintained for estimated losses resulting from the inability of our customers to make required payments. In making the determination of the appropriate allowance for doubtful accounts, we consider specific accounts, historical write-offs, changes in customer relationships and credit worthiness and concentrations of credit risk. Specific accounts and trade notes receivable are written-off once a determination is made that the account is uncollectible.

 

Equipment and Leasehold Improvements

 

Equipment and leasehold improvements are stated at cost. Significant additions or improvements extending asset lives are capitalized, while repairs and maintenance are charged to expense as incurred. In-progress costs are capitalized with depreciation beginning when assets are placed in service. Depreciation is recorded using the straight-line method over the estimated useful lives of the equipment, ranging from one to seven years. Leasehold improvements are amortized using the straight-line method over the shorter of the asset useful life or the underlying lease term, ranging from one to eight years. Gains or losses on dispositions are included in current operations.

 

Goodwill

 

Goodwill represents the excess of purchase price over the fair value of net assets acquired in a business combination. We have determined that we have one reporting unit. We evaluate the carrying value of goodwill annually on December 31st and more frequently if management believes indicators of impairment exist. Such indicators could include, but are not limited to (1) a significant adverse change in legal factors or in business climate, (2) unanticipated competition, or (3) an adverse action or assessment by a regulator. We first assess qualitative factors to determine whether it is more likely than not that our fair value is greater than carrying value (i.e. net book value). If we conclude that it is more likely than not that our fair value is greater than carrying value, no further testing is required. If we conclude that it is more likely than not that our fair value is less than carrying value, we estimate our fair value using the income approach. The income approach is a valuation technique under which we estimate future cash flows using financial forecasts. Future estimated cash flows are discounted to their present value to calculate fair value. When considering fair value, we also give consideration to the control premium in excess of our current market capitalization that might be obtained from a third party acquirer. Goodwill impairment is measured as the amount by which our carrying value exceeds our fair value, but not in an amount in excess of the carrying value of goodwill.

 

On December 31, 2021 and 2020, we performed a qualitative assessment to determine if there was any indication that our goodwill might be impaired. After considering all available evidence, including our financial performance, financial outlook and current market capitalization, we concluded that it is more likely than not that our fair value is greater than carrying value. As a result, no further testing was deemed necessary, and we determined that our goodwill was not impaired. Therefore, no amounts were recorded for goodwill impairment in 2021 or 2020.


Patents

 

Patents consist of legal and patent registration costs for protection of our proprietary technology. We amortize patent costs on a straight-line basis, based upon their estimated life.


Long Lived Assets

 

Intangible assets subject to amortization and other long-lived assets are reviewed for impairment when events or changes in circumstances indicate that the carrying amount of the assets may not be recoverable. An impairment loss would be recognized when future undiscounted cash flows expected to result from use of the asset and eventual disposition are less than the carrying amount. 


Operating Leases


We determine if an arrangement is a lease at inception. Operating leases are recorded in operating lease right-of-use (ROU) assets, current operating lease liabilities, and long-term operating lease liabilities in our consolidated balance sheets. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Operating lease ROU assets and liabilities are recognized based on the present value of lease payments over the lease term. The operating lease ROU assets exclude lease incentives. As our leases do not provide an implicit rate, we use our incremental borrowing rate to determine the present value of lease payments. Our leases may include renewal options to extend the lease term, the exercise of which are at our sole discretion. In our accounting treatment of leases, the lease terms used do not include any option to extend the lease, because it is not reasonably certain that we will exercise the option. Lease expense is recognized on a straight-line basis over the lease term. We have lease agreements with lease and non-lease components (e.g., common-area or other maintenance costs) which are generally accounted for separately and expensed monthly. We do not recognize a ROU asset and lease liability for leases having a term of 12 months or less at the effective date.


Revenue Recognition

 

Revenue is measured based on consideration specified in the contract with a customer. A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account for purposes of revenue recognition. Revenue from all customers, including distributors, is recognized when a performance obligation is satisfied by transferring control of a product or service to a customer. Amounts billed to customers for shipping and handling are included in revenue. All shipping and handling costs associated with outbound freight are accounted for as fulfillment costs and are included in cost of sales. Taxes collected from customers and remitted to governmental authorities are excluded from revenue on the net basis of accounting. Accounts receivable are due under normal trade terms, typically 150 days or less.


Our performance obligations are mostly satisfied at a point in time and to a lesser extent over time as work progresses. Revenue for products and services transferred to customers at a point in time is recognized when obligations under the terms of the contract with our customer are satisfied; generally with the transfer of control upon shipment. Sales of some products may require customer acceptance due to performance or other acceptance criteria that is considered more than a formality. For these product sales, revenue is recognized upon notification of customer acceptance.



Sales involving multiple performance obligations typically include the sale of an inspection or metrology systems product, installation and training, and in some cases, an extended warranty. When a sale involves multiple performance obligations, we account for individual products and services separately if the customer can benefit from the product or service on its own or with other resources that are readily available to the customer and the product or service are separately identifiable from other promises in the arrangement. Undelivered performance obligations in an arrangement are typically minimal, consisting of undelivered installation and training services. The consideration is allocated between separate performance obligations in proportion to their estimated stand-alone selling price. If the stand-alone selling price is not directly observable, we use the cost plus margin approach to estimate stand-alone selling price. Costs related to products delivered are recognized in the period revenue is recognized; including product warranties for periods ranging from 1 to 3 years (see Note 9).

 

Periodically, sensor product arrangements with our original equipment manufacturers (OEM's) will create an asset with no alternative use and include an enforceable right to payment. For these arrangements, control is transferred over the manufacturing process; therefore, revenue is recognized over time utilizing an input method based on actual costs incurred in the manufacturing process to date relative to total expected production costs. For certain longer duration 3D scanning service projects, we progress bill as the services are performed. These arrangements create an asset with no alternative use and include an enforceable right to payment. For these arrangements, control is transferred over the hours incurred to complete the scanning project; therefore, revenue is recognized over time utilizing an input method based on actual hours incurred relative to total projected project hours. For maintenance and extended warranty contracts, revenue is recognized over time on a straight-line basis over the term of the contract as the customer simultaneously receives and consumes the benefits of the coverage.

  

Practical Expedients 


We generally expense the incremental costs of obtaining a contract when incurred because the amortization period for these costs would be less than one year. These costs primarily relate to sales commissions and are recorded in selling, general and administrative expense in our consolidated statements of operations. 


We do not disclose the value of unsatisfied performance obligations for contracts with an original expected length of one year or less, primarily consisting of product installation and training. We do not adjust the promised amount of consideration for the effects of a significant financing component if we expect, at contract inception, that the period between when we transfer a promised good or service to a customer and when the customer pays for that good or service will be one year or less.  


Foreign Currency Translation

Financial position and results of operations of our international subsidiaries are measured using local currency as their functional currency. Assets and liabilities of these operations are translated at the exchange rates in effect at each fiscal year-end. Statements of operations accounts are translated at the average rates of exchange prevailing during the year. Translation adjustments arising from the use of differing exchange rates from period to period are included as a cumulative translation adjustment in stockholders’ equity.

Foreign Currency Transactions

Foreign currency transaction gains and losses are included in interest income and other, net in the statement of operations. We recognized foreign currency transaction losses of $11,000 in 2021. We recognized foreign transaction gains of $27,000 in 2020.


Research and Development

Research and development (R&D) costs, including product software development, are expensed when incurred. Product software development costs are required to be expensed until the point that technological feasibility and proven marketability of the product are established; costs otherwise capitalizable after such point also are expensed because they are insignificant. All other R&D costs are expensed as incurred. R&D expenses consist primarily of salaries, project materials, contract labor and other costs associated with ongoing product development and enhancement efforts.

 

Advertising Costs

We expense all advertising costs as incurred. Advertising expenses were $252,000 in 2021 and $371,000 in 2020.

 

Warranty Costs

 

We provide for the estimated cost of product warranties, which cover products for periods ranging from one to three years at the time revenue is recognized.

See Note 9 to the consolidated financial statements for additional information related to warranty costs. 

Income Taxes

We evaluate uncertain tax positions using the “more likely than not” threshold (i.e., a likelihood of occurrence greater than fifty percent). The recognition threshold is met when an entity concludes that a tax position, based solely on its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are classified as a gross unrecognized tax benefit until the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statute of limitations. De-recognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained. Our net unrecognized tax benefit ("UTB") is a long-term income tax reserve within our consolidated balance sheets.

 

Only the portion of the UTB that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statute of limitations) or are not expected to be paid within one year are not classified as current. It is our policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.

Deferred income taxes are recorded to reflect the tax consequences in future years of differences between the financial reporting and tax bases of assets and liabilities. We have made an accounting policy election to record the U.S. income tax effect of future global intangible low-taxed income ("GILTI") inclusions in the period in which they arise, rather than establishing deferred taxes with respect to the expected future tax liabilities associated with future GILTI inclusion. Income tax expense is the sum of the tax currently payable and the change in the deferred tax assets and liabilities during the period, excluding changes in deferred tax assets recorded to goodwill or accumulated other comprehensive loss. Valuation allowances are established when, in the opinion of management, it is more likely than not that some portion or all of the deferred tax assets will not be realized. We assess the realizability of our deferred tax assets and the need for a valuation allowance based on all positive and negative evidence.


Net Income Per Share


Basic net income per basic share is computed by dividing net income by the weighted average number of common shares outstanding during the period. Net income per diluted share is computed by dividing net income by the weighted average number of common and common equivalent shares outstanding during the period. Common equivalent shares consist of common shares to be issued upon exercise of stock options, vesting of restricted stock units, vesting of restricted shares and from purchases of shares under our employee stock purchase plan, as calculated using the treasury stock method. Common equivalent shares are excluded from the calculation of net income per diluted share if their effect is anti-dilutive.


Comprehensive Income


Total comprehensive income and the components of accumulated other comprehensive loss are presented in the Consolidated Statements of Comprehensive Income and the Consolidated Statements of Stockholders' Equity. Accumulated other comprehensive loss is composed of foreign currency translation effects and unrealized gains and losses on available-for-sale marketable debt securities. We use the individual item approach for releasing income tax effects from accumulated other comprehensive loss. 


Fair Value of Financial Instruments 


The carrying amounts of financial instruments such as cash equivalents, accounts receivable, other assets, accounts payable, advance customer payments, accrued expenses and other liabilities approximate their related fair values due to the short-term maturities of these instruments. The fair value for trade notes receivable is based on discounted future cash flows using current interest rates that would be offered for a similar transaction to a similarly situated customer. The difference between the carrying amount and estimated fair value for trade notes receivable is immaterial.


See Note 6 for information related to fair value of marketable securities. 


Share-Based Compensation


All share-based payments to employees, including grants of stock options, are required to be recognized as an expense in our consolidated statements of operations based on the grant date fair value of the award. We utilize the straight-line method of expense recognition over the award’s service period for our graded vesting options. The fair value of stock options has been determined using the Black-Scholes model. We account for the impact of forfeitures related to employee share-based payment arrangements when the forfeitures occur. We have classified employee share-based compensation within our consolidated statements of operations in the same manner as our cash based employee compensation costs.

See Note 7 to the consolidated financial statements for additional information related to employee share-based compensation. 


Related Party Transactions


We periodically sell or purchase products from companies for which our board members serve in an executive capacity and in some cases on the board of directors. These transactions occur in the normal course of business. Our cumulative sales to these companies were $387,000 in 2021 and $40,000 in 2020Accounts receivable due from related party sales were $185,000 as of December 31, 2021 and $3,000 as of December 31, 2020. Our cumulative purchases from these companies were $61,000 in 2021 and $59,000 in 2020. 


Recent Accounting Developments


In June 2016, the FASB issued ASU No. 2016-13, Measurement of Credit Losses on Financial Instruments, which revises guidance for the accounting for credit losses on financial instruments within its scope, and in November 2018, issued ASU No. 2018-19, which amended the standard. The new standard introduces an approach to estimating credit losses that is based on expected losses (referred to as the current expected credit losses model), and applies to most financial assets measured at amortized cost and certain other instruments, including available-for-sale marketable debt securities, trade and other receivables. The new standard is effective for us on January 1, 2023, with early adoption permitted. We are required to apply the standard’s provisions as a cumulative-effect adjustment to retained earnings as of the beginning of the first reporting period in which the guidance is adopted. We presently do not believe the new standard will have a material impact on our consolidated financial statements.


No other new accounting pronouncements are expected to have a significant impact on our consolidated financial statements.


NOTE 2 - COVID-19 PANDEMIC


Effect of Covid-19 Outbreak on Business Operations 

Covid-19 was first identified in December 2019, and in March 2020, the World Health Organization categorized Covid-19 as a pandemic. The Covid-19 pandemic is affecting our customers, suppliers, service providers and employees to varying degrees, and the ultimate impacts of Covid-19, including the potential impact of known and future variants, on our business, results of operations, liquidity and prospects are not fully known at this time. Overall, the Covid-19 outbreak has not had a significant impact on our business to date. However, the following factors have affected and may continue to affect our business: 
  • Our key factories are located in Minnesota and Singapore. Both of these locations have been subject to government mandated shelter-in-place orders. Because our operations have been deemed essential, we were able to keep our factories up and running while the shelter-in-place mandates were in effect. If the pandemic worsens, it is possible that our operations may not be deemed essential under future government mandated shelter-in-place orders, and we may be required to shut-down factory operations. We have periodically implemented split-shifts for our factory operations to minimize the number of employees in our facilities at any given time, but these measures have not affected our production capacity. Since the start of the pandemic, many of our non-factory employees have spent the majority of their time working remotely. To date, the shelter-in-place mandates and remote work arrangements have had a minimal impact on operations, but material negative effects on our business could result if the pandemic worsens and continues for an extended period of time.
  • Sales of some products, mainly our SQ3000 Multi-Function systems and MX memory module inspection products, require customer acceptance due to performance or other criteria that is considered more than a formality. Most of our customer’s factories have remained open during the Covid-19 pandemic because they are deemed to be essential under government shelter-in-place mandates. However, global travel restrictions and quarantine measures have hindered our ability to obtain some customer acceptances of certain products at various times during the Covid-19 pandemic. Continuing or new global travel restrictions and quarantine measures could hinder our ability to obtain customer acceptances in a timely manner in the future, and therefore impact the timing of revenue recognition.
  • The Covid-19 pandemic has caused disruptions in the global supply chain, including shortages of raw materials, parts and labor, and shipping and logistics issues, including delays in ocean freight and port congestion. Key supply chain disruptions impacting our business have been resolved to date. On-hand inventories have been sufficient to enable us to mitigate any supply disruptions with minimal impact on our sales or ability to service customers. However, it has become increasingly difficult to obtain adequate supplies of certain key components and labor for product assembly. Port congestion and tight booking for global sea freight have caused delays in product deliveries. The inability to obtain adequate supply of components or labor could result in the inability to meet customer demands and deliver one or more of our products for a period of several months or longer. Supply chain disruptions are expected to continue for the foreseeable future and may increase if the pandemic worsens or continues for an extended period of time.

Although we cannot estimate the continuing impact of the Covid-19 outbreak at this time, it may have an adverse effect on our results of future operations, financial position and liquidity in 2022 and beyond. 


Singapore Jobs Support Program

 

The Singapore Government implemented a jobs support program in 2020 that was intended to support businesses and encourage retention of employees during the period of economic uncertainty caused by the Covid-19 pandemic. Under the jobs support program, the Singapore Government co-funded a portion of the gross monthly wages paid to local employees, which reduced our operating expense by $410,000 in 2020. We did not receive any material benefit from the Singapore jobs support program in 2021.


NOTE 3 – REVENUE RECOGNITION

Performance Obligations  


Our revenue performance obligations are primarily satisfied at a point in time and limited revenue streams are satisfied over time as work progresses.


The following is a summary of our revenue performance obligations:

 



For the Year Ended December 31,


2021
2020

(In thousands)


Revenues


Percent of Revenues


Revenues

Percent of Revenues

Revenue recognized over time
$ 2,253
2.4 %
$ 1,715
2.4 %
Revenue recognized at a point in time

90,521
97.6 %

68,402
97.6 %


$ 92,774
100.0 %
$ 70,117
100.0 %


See Note 13 for additional information regarding disaggregation of revenue. 


Contract Balances 


Contract assets consist of unbilled amounts from sales where we recognize the revenue over time and the revenue recognized exceeds the amount billed to the customer at a point in time. Accounts and trade notes receivable are recorded when the right to payment becomes unconditional. Contract liabilities consist of payments received in advance of performance under the contract. Contract liabilities are recognized as revenue when we perform under the contract.


The following summarizes our contract assets and contract liabilities: 


(In thousands)

 

December 31, 2021

December 31, 2020

Contract assets, included in other current assets

 

$

7

 

 

$

 2

 

Contract liabilities - advance customer payments

 

$

289

 

 

$

567

 

Contract liabilities - deferred warranty revenue
$ 445

$ 344

Changes in contract assets in 2021 and 2020 resulted from unbilled amounts under sensor product arrangements and longer duration 3D scanning service projects in which revenue is recognized over time. Changes in contract liabilities primarily resulted from reclassification of beginning contract liabilities to revenue as performance obligations were satisfied or from cash received in advance and not recognized as revenue. See Note 9 for changes in contractual obligations related to deferred warranty revenue. Unsatisfied performance obligations for deferred warranty revenue are generally expected to be recognized as revenue over the next one to three years. There were no impairment losses for contract assets in 2021 or 2020.


The following summarizes the amounts reclassified from beginning contract liabilities to revenue:

Year Ended December 31,

(In thousands)

 

2021

2020

Amounts reclassified from beginning contract liabilities to revenue

 

$

393

 

 

$

 171

 

Amounts reclassified from deferred warranty revenue

263

193

Total

$

656

$

364



NOTE 4  MARKETABLE SECURITIES


Our investments in marketable securities are classified as available-for-sale and consist of the following: 

 

 

December 31, 2021

(In thousands)

 

Amortized Cost

 

Unrealized
Gains

 

Unrealized
Losses

 

Fair Value

Short-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

3,005

 

 

$

13

 

 

$

 

$

3,018

 

Corporate debt securities and certificates of deposit

 

4,177

 

 

8

 

 

(2

)

 

4,183

 

Asset backed securities

 

125

 

 

1

 

 

 

126

 

Marketable securities – short-term

 

$

7,307

 

 

$

22

 

 

$

(2

)

 

$

7,327

 

Long-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

9,921

 

 

$

5

 

 

$

(57

)

 

$

9,869

 

Corporate debt securities and certificates of deposit

 

4,869

 

 

9

 

 

(18

)

 

4,860

 

Asset backed securities

 

2,511

 

 

9

 

 

(11

)

 

2,509

 

Equity security

 

42

 

 

1

 

 

 

43

 

Marketable securities – long-term

 

$

17,343

 

 

$

24

 

 

$

(86

)

 

$

17,281

 



 

December 31, 2020

(In thousands)

 

Amortized Cost

 

Unrealized
Gains

 

Unrealized
Losses

 

Fair Value

Short-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

4,817

 

 

$

36

 

 

$

 

$

4,853

 

Corporate debt securities and certificates of deposit

 

3,113

 

 

21

 

 

 

3,134

 

Asset backed securities

 

133

 

 

1

 

 

 

134

 

Marketable securities – short-term

 

$

8,063

 

 

$

58

 

 

$

 

$

8,121

 

Long-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

7,529

 

 

$

66

 

 

$

 

$

7,595

 

Corporate debt securities and certificates of deposit

 

3,975

 

 

61

 

 

(1

)

 

4,035

 

Asset backed securities

 

2,347

 

 

45

 

 

 

2,392

 

Equity security

 

42

 

 

 

 

(12

)

 

30

 

Marketable securities – long-term 

 

$

13,893

 

 

$

172

 

 

$

(13

)

 

$

14,052

  



In Unrealized Loss Position For
Less Than 12 Months
 
 In Unrealized Loss Position For
Greater Than 12 Months
(In thousands)  
 
Fair Value
 
Gross Unrealized
Losses
 
Fair Value
 
Gross Unrealized
Losses
December 31, 2021
 
 

 
 

 
 

 
 

U.S. government and agency obligations
 
$
9,250

 
$
(57
)
 
$
 
$
Corporate debt securities and certificates of deposit
 
5,188

 
(18
)
 
355
 
(2
)
Asset backed securities


1,278



(11
)






Marketable securities
 
$
15,716

 
$
(86
)
 
$
355
 
$
(2
)
December 31, 2020
 
 

 
 

 
 

 
 

U.S. government and agency obligations
 
$
330

 
$
 
$
 
$
Corporate debt securities and certificates of deposit
 
411

 
(1
)
 
 
Marketable securities
 
$
741

 
$
(1
)
 
$
 
$



Our long-term investments in marketable debt securities all have maturities of less than 5 years. Net pre-tax unrealized losses for marketable debt securities of $43,000 at December 31, 2021 and net pre-tax unrealized gains of $229,000 at December 31, 2020 have been recorded as a component of accumulated other comprehensive loss in stockholders’ equity. We only invest in highly rated investment grade securities. We have determined that the net pre-tax unrealized gains and losses for marketable debt securities at December 31, 2021 and December 31, 2020 were caused by fluctuations in interest rates and are temporary in nature. We review our marketable debt securities to identify and evaluate investments that have indications of possible impairment. Factors considered in determining whether a loss is other-than-temporary include the length of time and extent to which fair value has been less than the cost basis, the investment grade credit quality of our debt securities and our ability and intent to hold the investment for a period of time sufficient to allow for any anticipated recovery in market value. We received proceeds of $225,000 from the sale of marketable securities in 2021. The gain recognized on the sale was insignificant. No marketable securities were sold in 2020. See Note 6 for additional information regarding the fair value of our investments in marketable securities.


Investments in marketable debt securities classified as cash equivalents of $8.8 million at December 31, 2021 and $1.3 million at December 31, 2020, consist of corporate debt securities and certificates of deposit. There were no unrealized gains or losses associated with any of these securities at December 31, 2021 or December 31, 2020.  


NOTE 5  OTHER COMPREHENSIVE INCOME (LOSS) 


There were no reclassification adjustments in 2021 or 2020. Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss) are as follows:

 


Year Ended December 31, 2021

 

Year Ended December 31, 2020

(In thousands)

 

Before Tax

 

Tax Effect

 

Net of Tax
Amount

 

Before Tax

 

Tax Effect

 

Net of Tax
Amount

Foreign currency translation adjustments

 

$

(193

)

 

$

 

$

(193

)

 

$

190

 

$

 

$

190

Unrealized gains (losses) on available-for-sale securities

 

(272

)

 

57

 

(215

)

 

145


 

(31

)

 

114

Other comprehensive income (loss)

 

$

(465

)

 

$

57

 

$

(408

)

 

$

335

 

$

(31

)

 

$

304


At December 31, 2021 and December 31, 2020 components of accumulated other comprehensive loss is as follows:

 

 

 

 

 

 

 

 

 

 

 

 

 

(In thousands)

 

Foreign
Currency
Translation
Adjustments

 

Available-
for-Sale
Securities

 

Accumulated
Other
Comprehensive
Loss

Balances at December 31, 2019

 

$

(1,475

)

 

$

69

 

$

(1,406

)

Other comprehensive income for the year ended December 31, 2020

 

190

 

114

 

304

Balances at December 31, 2020

 

$

(1,285

)

 

$

183

 

$

(1,102

Other comprehensive loss for the year ended December 31, 2021

 

 

(193

)

 

 

(215

)

 

 

(408

)

Balances at December 31, 2021

 

$

(1,478

 

$

(32

)

 

$

(1,510

)

 

NOTE 6  FAIR VALUE MEASUREMENTS

We determine the fair value of our assets and liabilities based on the exchange price that would be received for an asset or paid to transfer a liability (exit price) in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Valuation techniques used to measure fair value maximize the use of observable inputs and minimize the use of unobservable inputs. We use a fair value hierarchy with three levels of inputs, of which the first two are considered observable and the last is considered unobservable, to measure fair value. The fair value hierarchy gives the highest priority to quoted prices in active markets for identical assets or liabilities (Level 1). The next highest priority is based on observable inputs other than Level 1 inputs including quoted prices for similar assets or liabilities in active markets or quoted prices for identical or similar assets or liabilities in less active markets or other observable inputs (Level 2). The lowest priority is given to unobservable inputs (Level 3). The following provides information regarding fair value measurements for our marketable securities as of December 31, 2021 and December 31, 2020 according to the three-level fair value hierarchy.


 

 

Fair Value Measurements at
December 31, 2021 Using

(In thousands)

 

Balance
December 31, 2021

 

Quoted Prices
in Active
Markets for
Identical
Assets
(Level 1)

 

Significant
Other Observable Inputs
(Level 2)

 

Significant
Unobservable Inputs
(Level 3)

Marketable securities:

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

12,887

 

 

$

 

 

$

12,887

 

 

$

 

Corporate debt securities and certificates of deposit

 

9,043

 

 

 

 

9,043

 

 

 

Asset backed securities

 

2,635

 

 

 

 

2,635

 

 

 

Equity security

 

43

 

 

43

 

 

 

 

 

Total marketable securities

 

$

24,608

 

 

$

43

 

 

$

24,565

 

 

$

  

 

 

 

Fair Value Measurements at
December 31, 2020 Using

(In thousands)

 

Balance
December 31, 2020

 

Quoted Prices
in Active
Markets for
Identical
Assets
(Level 1)

 

Significant
Other Observable Inputs
(Level 2)

 

Significant
Unobservable Inputs
(Level 3)

Marketable securities:

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

12,448

 

 

$

 

 

$

12,448

 

 

$

 

Corporate debt securities and certificates of deposit

 

7,169

 

 

 

 

7,169

 

 

 

Asset backed securities

 

2,526

 

 

 

 

2,526

 

 

 

Equity security

 

30

 

 

30

 

 

 

 

 

Total marketable securities

 

$

22,173

 

 

$

30

 

 

$

22,143

 

 

$

  

 

During 2021 and 2020, we owned no Level 3 securities and there were no transfers within the three level hierarchy. A significant transfer is recognized when the inputs used to value a security have been changed which merit a transfer between the levels of the valuation hierarchy.

The fair value for our U.S. government and agency obligations, corporate debt securities and certificates of deposit and asset backed securities are determined based on valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The fair value for our equity security is based on a quoted market price obtained from an active market. The carrying amounts of financial instruments included in cash equivalents approximate their related fair values due to the short-term maturities of those instruments. See Note 4 for additional information regarding our investments in marketable securities.


Non-financial assets such as equipment and leasehold improvements, goodwill and intangible assets and right-of-use assets for operating leases are subject to non-recurring fair value measurements if they are deemed impaired. We had no re-measurements of non-financial assets to fair value in 2021 or 2020.


The fair value for trade notes receivable is based on discounted future cash flows using current interest rates that would be offered for a similar transaction to a similarly situated customer. The difference between the carrying amount and estimated fair value for trade notes receivable is immaterial. If measured at fair value in the financial statements, these financial instruments would be classified as Level 3 in the fair value hierarchy.

 

NOTE 7  SHARE-BASED COMPENSATION

We have three share-based compensation plans that are administered by the Compensation Committee of the Board of Directors. We have (a) an Employee Stock Incentive Plan for officers, other employees, consultants and independent contractors under which we have granted options and restricted stock units to officers and other employees, (b) an Employee Stock Purchase Plan under which shares of our common stock may be acquired by employees at discounted prices, and (c) a Non-Employee Director Stock Plan that provides for automatic grants of restricted shares of our common stock to non-employee directors. New shares of our common stock are issued upon stock option exercises, vesting of restricted stock units, issuances of shares to board members and issuances of shares under the Employee Stock Purchase Plan.



Employee Stock Incentive Plan


As of December 31, 2021, there are 87,507 shares of common stock reserved in the aggregate for issuance pursuant to future awards under our Employee Stock Incentive Plan and 397,726 shares of common stock reserved in the aggregate for issuance pursuant to outstanding awards under such plan. Although our Compensation Committee has authority to issue options, restricted stock, restricted stock units, share grants and other share-based benefits under our Employee Stock Incentive Plan, to date only restricted stock units and stock options have been granted under the plan. Options have been granted at an option price per share equal to the market value of our common stock on the date of grant, vest over a four year period and expire seven years after the date of grant. Restricted stock units vest over a four year period and entitle the holders to one share of our common stock for each restricted stock unit. Reserved shares underlying outstanding awards, including options and restricted stock units, that are forfeited are available under the Employee Stock Incentive Plan for future grant.

Non-Employee Director Stock Plan

As of December 31, 2021, there were 36,000 shares of common stock reserved in the aggregate for issuance pursuant to future restricted share grants under our Non-Employee Director Stock Plan and 8,000 shares of common stock reserved in the aggregate for issuance pursuant to outstanding stock option awards under our Non-Employee Director Stock Plan (which previously authorized the granting of stock options to non-employee directors). Under the terms of the plan, each non-employee director receives annual restricted share grants of 2,000 shares of our common stock on the date of each annual meeting at which such director is elected to serve on the board. The annual restricted share grants of common stock vest in four equal quarterly installments during the year after the grant date, provided the non-employee director is still serving as a director on the applicable vesting date. 


On the dates of our 2021 and 2020 annual meetings, we issued 8,000 shares of our common stock to our non-employee directors, which were restricted as specified in the Non-Employee Director Stock Plan. The shares granted at the 2021 annual meeting had an aggregate fair market value on the date of grant equal to $224,000 (grant date fair value of $27.96 per share). As of December 31, 2021, 4,000 of these shares were vested. The aggregate fair value of the 4,000 unvested shares based on the closing price of our common stock on December 31, 2021 was $186,000. The shares granted at the 2020 annual meeting had an aggregate fair market value on the date of grant equal to $227,000 (grant date fair value of $28.34 per share). As of December 31, 2021, all of the shares granted at the 2020 annual meeting were vested.


Stock Option Activity 


The following is a summary of activity in stock options for 2021:

 

 

 

 

 

 

 

 


 

Options Outstanding

 

Weighted Average Exercise
Price Per Share

Outstanding, December 31, 2020

 

419,100

 

 

$

15.22

 

Granted

 

24,000

 

 

42.90

 

Exercised

 

(89,500

)

 

11.26

 

Forfeited
(1,775 )
17.52

Outstanding, December 31, 2021

 

351,825

 

 

$

18.11

 

Exercisable, December 31, 2021

 

257,026

 

 

$

14.82

 


The intrinsic value of an option is the amount by which the market price of the underlying common stock exceeds the option's exercise price. For options outstanding at December 31, 2021, the weighted average remaining contractual term of all outstanding options was 3.41 years and their aggregate intrinsic value was $10.0 million. At December 31, 2021, the weighted average remaining contractual term of options that were exercisable was 2.6 years and their aggregate intrinsic value was $8.1 million. The aggregate intrinsic value of stock options exercised was $2.7 million in 2021 and $2.7 million in 2020We received proceeds from stock option exercises of $428,000 in 2021 and $358,000 in 2020. The aggregate fair value of options that vested was $491,000 in 2021 and $456,000 in 2020.  


The fair value of stock options granted to our employees was estimated on the date of grant using the Black-Scholes model. The Black-Scholes valuation model incorporates ranges of assumptions that are disclosed in the table below. The risk-free interest rate is based on the United States Treasury yield curve at the time of grant with a remaining term equal to the expected life of the awards. We used historical experience to estimate the expected term, representing the length of time in years, that the options are expected to be outstanding. Expected volatility was computed based on historical fluctuations in the daily price of our common stock.



For stock options granted in the two-year period ended December 31, 2021, we utilized the fair value of our common stock on the date of grant and employed the following key assumptions in computing fair value using the Black-Scholes option-pricing model:


 

 

 

 

 

 

 

 

2021

 

2020

Risk-free interest rates

1.15% - 1.18%

 

0.44% - 0.50%

Expected life in years

5.19 - 5.64 

 

5.12 - 5.55

Expected volatility

 58.02% - 58.44%

 

59.43% - 59.81%

Dividend yield

0.00%

 

0.00%

Weighted average fair value on grant date

$22.24

 

$14.58

 

Restricted Shares and Restricted Stock Units 

 

Restricted shares are granted under our Non-Employee Director Stock Plan. Restricted stock units are granted under our Employee Stock Incentive Plan. The fair value of restricted shares and restricted stock units is equal to the market value of our common stock on the date of grant. There were 24,100 restricted shares and restricted stock units granted in 2021 (weighted average grant date fair value of $37.94 each). There were 30,700 restricted shares and restricted stock units granted in 2020 (weighted average grant date fair value of $28.33 each). The aggregate fair value of outstanding restricted shares and restricted stock units based on the closing share price of our common stock as of December 31, 2021 was $2.7 million. The aggregate fair value of restricted shares and stock units that vested, based on the closing share price of our common stock on the vesting date, was $1.4 million in 2021 and $857,000 in 2020.

 

The following is a summary of activity in restricted shares and restricted stock units for 2021:

 

Non-vested restricted stock units

 

Shares

 

Weighted Average Grant Date
Fair Value

Non-vested at December 31, 2020

 

68,454

 

 

$

21.45

 

Granted

 

24,100

 

 

37.94

 

Vested

 

(33,322

)

 

21.56

 

Forfeited
(1,331 )
23.03

Non-vested at December 31, 2021

 

57,901

 

 

$

28.21

 


Employee Stock Purchase Plan


We have an Employee Stock Purchase Plan available to eligible U.S. employees. Under terms of the plan, eligible employees may designate from 1% to 10% of their compensation to be withheld through payroll deductions, up to a maximum of $6,500 in each plan year, for the purchase of common stock at 85% of the lower of the market price on the first or last day of the offering period. Purchases under this plan were 7,380 shares in 2021 and 19,897 shares in 2020. As of December 31, 2021, 129,411 shares remain available for future issuance under this plan.


Share-Based Compensation Information

Pre-tax share-based compensation expense for 2021 includes $993,000 for stock options and restricted stock units, $130,000 for our employee stock purchase plan, and $224,000 for restricted shares issued to board members. Pre-tax share-based compensation expense for 2020 includes $876,000 for stock options and restricted stock units, $111,000 for our employee stock purchase plan, and $194,000 for restricted shares issued to board members.


 

 

 

 


 

 

 

 

(In thousands)

 

 2021


 

2020

Pre-tax share-based compensation expense

 

$

1,347


 

$

1,181

 

Income tax benefits related to share-based compensation

 

$

833



$

712

 


At December 31, 2021, the total unrecognized compensation cost related to non-vested share-based compensation arrangements was $2.9 million and the related weighted average period over which such cost is expected to be recognized is 2.9 years. 


NOTE 8  NET INCOME PER SHARE

Net income per basic share is computed by dividing net income by the weighted average number of common shares outstanding during the period. Net income per diluted share is computed by dividing net income by the weighted average number of common and common equivalent shares outstanding during the period. Common equivalent shares consist of common shares to be issued upon exercise of stock options, vesting of restricted stock units, vesting of restricted shares and from purchases of shares under our Employee Stock Purchase Plan, as calculated using the treasury stock method. Common equivalent shares are excluded from the calculation of net income per diluted share if their effect is anti-dilutive. The components of net income per basic and diluted share were as follows:

   
(In thousands except per share amounts)
 
Net Income
 
Weighted Average Shares Outstanding
 
Per Share Amount
Year Ended 12/31/2021:
 
 
 

 
 
 
 
 

Basic
 
$
12,751

 
7,320
 
 
$
1.74

Dilutive effect of common equivalent shares
 

 
217
 
 
(0.05
)
Dilutive
 
$
12,751

 
7,537
 
 
$
1.69

 

 

 

 

 

 

 

 

 

 

 

 

(In thousands except per share amounts)

 

Net Income

 

Weighted Average Shares Outstanding

 

Per Share Amount

Year Ended 12/31/2020:

 

 

 

 

 

 

 

 

 

Basic

 

$

5,742

 

 

7,215

 

 

$

0.80

 

Dilutive effect of common equivalent shares

 

 

 

239

 

 

(0.03

)

Dilutive

 

$

5,742

 

 

7,454

 

 

$

0.77

 


Potentially dilutive shares consist of stock options, restricted stock units, restricted shares and purchases of shares under our Employee Stock Purchase Plan. Potentially dilutive shares excluded from the calculations of net income per diluted share due to their anti-dilutive effect were as follows: 50,000 shares in 2021 and 57,000 shares in 2020.


NOTE 9  OTHER FINANCIAL STATEMENT DATA

Inventories consist of the following:

 

 

 

 

 

 

 

 

 

 

 

December 31,

(In thousands)

 

2021

 

2020

Raw materials and purchased parts

 

$

18,013

 

 

$

11,903

 

Work in process

 

1,655

 

 

2,459

 

Finished goods

 

6,859

 

 

4,208

 

Demonstration inventories, net
1,075

1,701

Total inventories

 

$

27,602

 

 

$

20,271

 


Demonstration inventories are stated at cost less accumulated amortization, generally based on a 36 month useful life. Accumulated amortization for demonstration inventories totaled $2.8 million at December 31, 2021 and $2.7 million at December 31, 2020. Amortization expense related to demonstration inventories was $709,000 in 2021 and $770,000 in 2020.


Equipment and leasehold improvements consist of the following: 

 

 

 

 

 

 

 

 

 

 

 

December 31,

(In thousands)

 

2021

 

2020

Equipment

 

$

16,051

 

 

$

15,070

 

Leasehold improvements

 

3,070

 

 

3,072

 

 

 

19,121

 

 

18,142

 

Accumulated depreciation and amortization

 

(15,947

)

 

(14,907

)

 

 

$

3,174

 

 

$

3,235

 


Depreciation and amortization expense related to equipment and leasehold improvements was $1.6 million in 2021 and $1.7 million in 2020.



Intangible assets consist of the following:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

December 31, 2021

 

December 31, 2020

(In thousands)

 

Gross Carrying
Amount

 

Accumulated Amortization

 

Net

 

Gross Carrying
Amount

 

Accumulated Amortization

 

Net

Patents

 

$

1,972


 

$

(1,614

)

 

$

358

 

 

$

1,832

 

 

$

(1,542

)

 

$

290

 

Software

 


206


 

(206

)

 

 

 

206

 

 

(200

)

 

6

 

Marketing assets and customer relationships

 


86


 

(69

)

 

17

 

 

101

 

 

(72

)

 

29

 

 

 

$

2,264


 

$

(1,889

)

 

$

375

 

 

$

2,139

 

 

$

(1,814

)

 

$

325

  


Amortization expense in 2021 and 2020 was as follows:

 

 

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

 

Weighted Avg. Remaining Life-Years at December 31, 2021

(In thousands)

 

2021

 

2020

 

Patents

 

$

187

 

 

$

153

 

 

1.6

Software

 

6

 

 

29

 

 

Marketing assets and customer relationships

 

8

 

 

9

 

 

2.2

 

 

$

201

 

 

$

191

 

 

  


Estimated aggregate amortization expense based on current intangible assets for the next three years is expected to be as follows: $190,000 in 2022; $141,000 in 2023; and $44,000 in 2024. 


Accrued expenses consist of the following:

 

 

December 31,

(In thousands)

 

2021

 

2020

Wages and benefits

 

$

2,966

 

 

$

2,768

 

Warranty liability

 

949

 

 

793

 

Income taxes payable
341

269

Other

 

162

 

 

63

 

 

 

$

4,418

 

 

$

3,893

  


Other liabilities consist of the following:

 

 

 

 

 

 

 

 

 

 

 

December 31,

(In thousands)

 

2021

 

2020

Deferred warranty revenue

 

$

135

 

 

$

88

 

Warranty liability

 

42

 

 

46

 

 

 

$

177

 

 

$

134

 

 

See Note 3 for additional information related to contract liabilities.

    

Warranty costs:

    

We provide for the estimated cost of product warranties, which cover products for periods ranging from one to three years, at the time revenue is recognized. While we engage in extensive product quality programs and processes, including actively monitoring and evaluating the quality of components provided by suppliers, warranty obligations do arise. These obligations are affected by product failure rates, the costs of materials used in correcting product failures and service delivery expenses incurred to make these corrections. If actual product failure rates and material or service delivery costs differ from our estimates, revisions to the estimated warranty liability are required and could be material. At the end of each reporting period, we revise our estimated warranty liability based on these factors. The current portion of our warranty liability is included as a component of accrued expenses. The long-term portion of our warranty liability is included as a component of other liabilities.



A reconciliation of the changes in our estimated warranty liability is as follows:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,  

(In thousands)

 

2021

 

2020 

 

Balance at beginning of period

 

$

839

 

 

$

798

 

Accrual for warranties

 

1,024

 

 

836

 

Warranty revision


(53

)

 

43

Settlements made during the period

 

(819

)

 

(838

)

Balance at end of period

 

991

 

 

839

 

Current portion of estimated warranty liability

 

(949

)

 

(793

)

Long-term estimated warranty liability

 

$

42

 

 

$

46

 


Deferred warranty revenue:


The current portion of our deferred warranty revenue is included as a component of advance customer payments. The long-term portion of our deferred warranty revenue is included as a component of other liabilities. A reconciliation of the changes in our deferred warranty revenue is as follows:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31, 

(In thousands)

 

2021

 

2020 

 

Balance at beginning of period

 

$

344

 

 

$

275

 

Revenue deferrals

 

575

 

 

434

 

Amortization of deferred revenue

 

(474

)

 

(365

)

Total deferred warranty revenue

 

445

 

 

344

 

Current portion of deferred warranty revenue

 

(310

)

 

(256

)

Long-term deferred warranty revenue

 

$

135

 

 

$

88

  


NOTE 10  INCOME TAXES

 

Income before income taxes consists of the following:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Sources of income before income taxes:

 

 

 

 

 

 

 

United States

 

$

12,741

 

$

4,876

Foreign

 


1,754


 

1,478

 

Total income before income taxes

 

14,495


 

$

6,354

 



The provision for income taxes consists of the following:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Current:

 


 

 

 

 

Federal

 

$

417

 

$

26

State

 

46

 

 

19

 

Foreign

 

298

 

201

Total current

 

761

 

$

246

Deferred:

 


 

 

 

 

Federal

 

$

960

 

$

361

State

 

(1

)

 

 

Foreign

 

24

 

5

Total deferred

 

$

983

 

$

366

Total provision for income taxes

 

$

1,744

 

$

612



A reconciliation of the statutory rate to the effective income tax rate is as follows:

 

 

 

 

 

 

 

 

 

Year Ended December 31,

 

 

2021

 

 

2020

Federal statutory rate

 

21.0

%


21.0

%

State income taxes, net of federal benefit

 

0.3

 

 

0.2

 

Global Intangible Low-Taxed Income (GILTI)/Foreign Derived Intangible Income (FDII)

 

(2.9

)

 

2.1

 

Share-based compensation

 

(3.8

)

 

(7.4

)

Research and experimentation (R&D) credit

 

(2.3

)

 

(3.2

)

Foreign tax credit
(1.0 )
(2.2 )

Foreign rate difference

 

(0.4

)

 

(1.1

)

Valuation allowance

 

0.5

 

(4.2

)
Expiring and unrecognized deferred tax attributes 


3.7

Other, net

 

0.6

 

 

0.7

 

Effective tax rate

 

12.0

%


9.6

%


Our effective tax rate in 2021 was favorably impacted by GILTI, FDII, $605,000 of excess tax benefits from employee share-based compensation and favorable benefits from U.S. federal R&D tax credits and foreign tax credits. Our effective tax rate in 2020 was favorably impacted by $497,000 of excess tax benefits from employee share-based compensation and favorable benefits from U.S. federal R&D tax credits and foreign tax credits, offset in part by GILTI. All of our remaining federal net operating loss carry forwards were fully utilized in 2020.


A reconciliation of the beginning and ending amount of gross unrecognized tax benefits (“UTB”) is as follows:

 

 


 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Gross UTB balance at beginning of year

 

$

1,789

 

 

$

1,761

 

Additions based on tax positions related to the current year

 

231

 

 

137

 

Additions for tax positions of prior years

 

1

 

 

60

 

Reductions for tax positions of prior years

 

(39

)

 

(169

)

Gross UTB balance at end of year

 

$

1,982

 

 

$

1,789

 

Net UTB balance at end of year

 

$

214

 

 

$

197

 



The difference between the gross and net ending UTB and the difference between the changes in the gross and net UTB during the year are related to the required netting of UTB balances against positions that have an established deferred tax asset, such as our federal and state R&D tax credits. The increase in our gross UTB balance as of December 31, 2021 was primarily related to federal and state R&D tax credits. The increase in our net UTB at December 31, 2021 is primarily related to various inconsequential state tax matters. The net UTB is a long-term income tax reserve within our consolidated balance sheets. We recognize interest and penalties related to unrecognized tax benefits in tax expense. Accrued interest and penalties on a gross basis and estimated gross interest and penalties included in the above amounts for all years were inconsequential. The gross UTB at December 31, 2021 and 2020, if recognized, would favorably impact our effective tax rate.


We file income tax returns in the United States and various state and foreign jurisdictions. Our federal income tax returns for years after 2017 are still subject to examination by the Internal Revenue Service. We are no longer subject to state and local income tax examinations for years prior to 2017. 


The Inland Revenue Authority of Singapore has initiated a routine compliance review of our 2018 income tax return. We presently anticipate that the outcome of this audit will not have a significant impact on our financial position or results of operations. 

 

Deferred tax assets and liabilities consist of the following:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

December 31, 2021

 

December 31, 2020

(In thousands)

 

Assets

 

Liabilities

 

Assets

 

Liabilities

Equipment, leaseholds and intangible amortization, net

 

$

185

 

 

$

230

 

 

$

176

 

 

$

251

 

Operating lease liabilities

672







839



Right-of-use assets (operating leases)




369







478

Inventory allowances

 

550

 

 

20

 

 

549

 

 

5

 

Accrued expenses

 

130

 

 

 

 

129

 

 

 

Warranty accrual

 

214

 

 

 

 

182

 

 

 

Deferred revenue

 

312

 

 


 

 

214

 

 

 

Federal and state tax credits

 

2,992

 

 


 

 

3,960

 

 

 

State net operating loss carry forwards

 

233

 

 

 

 

275

 

 

 

Share-based compensation

 

361

 

 


 

 

358

 

 

 

Other, net

 

131

 

 

 

 

113

 

 

50

 

Subtotal

 

5,780

 

 

619

 

 

6,795

 

 

784

 

Valuation allowance

 

(1,493

)

 


 

 

(1,414

)

 

 

Total deferred tax assets and liabilities

 

$

4,287

 

 

$

619

 

 

$

5,381

 

 

$

784

  


We have significant deferred tax assets as a result of temporary differences between the taxable income on our tax returns and U.S. GAAP income, R&D tax credit carry forwards and state net operating loss carry forwards. A deferred tax asset generally represents future tax benefits to be received when temporary differences previously reported in our consolidated financial statements become deductible for income tax purposes, when net operating loss carry forwards could be applied against future taxable income, or when tax credit carry forwards are utilized on our tax returns. We assess the realizability of our deferred tax assets and the need for a valuation allowance based on the guidance provided in current financial accounting standards.  

 

Significant judgment is required in determining the realizability of our deferred tax assets. The assessment of whether valuation allowances are required considers, among other matters, the nature, frequency and severity of any current and cumulative losses, forecasts of future profitability, the duration of statutory carry forward periods, our experience with loss carry forwards not expiring unused and tax planning alternatives. In analyzing the need for valuation allowances, we first considered our history of cumulative operating results for income tax purposes over the past three years in each of the tax jurisdictions in which we operate, our financial performance in recent quarters, statutory carry forward periods and tax planning alternatives. In addition, we considered both our near-term and long-term financial outlook. After considering all available evidence (both positive and negative), we concluded that recognition of valuation allowances for substantially all of our U.S. and Singapore based deferred tax assets was not required at December 31, 2021 or December 31, 2020. Our valuation allowances at December 31, 2021 and December 31, 2020 mainly relate to state R&D tax credits and net operating loss carry forwards. The valuation allowance recorded against our deferred tax assets at December 31, 2021 was increased by $79,000, mainly for state R&D tax credits that we do not expect to use. The valuation allowance recorded against our deferred tax assets at December 31, 2020 was reduced by $265,000, mainly for U.S. federal R&D tax credits that were used or expired. At December 31, 2021, we have federal R&D tax credit carry forwards of approximately $3.0 million that will begin to expire in 2027, if unused.



We determine on a regular basis the amount of undistributed earnings that will be reinvested in our non-U.S. operations. This assessment is based on our fiscal objectives and the working capital requirements for each of our foreign subsidiaries. The Tax Cuts and Jobs Act provides for a 100% dividends-received-deduction for foreign-source dividends received from 10% or more owned foreign corporations. Additionally, our foreign income is subject to Subpart F, GILTI and is eligible for foreign tax credits. The tax jurisdictions for the vast majority of our foreign operations do not impose a withholding tax. For these reasons, we have not recognized a deferred tax liability for the unremitted earnings of any of our foreign subsidiaries. Determination of the amount of any deferred income or withholding tax liability is not practicable because of the complexities of the hypothetical calculation.


Cash payments for income taxes, net of refunds received, were $628,000 in 2021 and $59,000 in 2020.

 

NOTE 11  OPERATING LEASES


We lease a 61,208 square foot mixed office and warehouse facility in Golden Valley, Minnesota. The lease has a term of 91 months and expires on July 31, 2026. The lease contains a rent escalation clause, one three year renewal option and incentives. Rental expense, including the effects of lease incentives, is recognized on a straight-line basis over the term of the lease. We did not include the renewal option in our accounting for the lease because it is not reasonably certain that we will exercise the option. We are also required to pay insurance, property taxes and other operating expenses related to the leased facility, which are not fixed or tied to an index.


In February 2020, we finalized a new lease for our existing 19,805 square foot mixed office and warehouse facility in Singapore, which serves as a sales, development and final assembly and integration facility for our inspection and metrology system products. The new lease does not contain any incentives or renewal options and runs through July 2023. We also have operating leases for small facilities in Taiwan, the United Kingdom and China which expire in June 2023, May 2023 and November 2022, respectively. Effective January 2022, we have an operating lease for a small facility in Malaysia which expires in December 2023.


The components of our costs for operating leases are as follows:



Year Ended

 Year Ended

Component (in thousands)

December 31, 2021
December 31, 2020

  Operating lease cost

$

742


$ 723

  Variable lease cost

269


272

  Short-term lease cost

39
38

  Total

$

1,050


$ 1,033


Variable lease costs generally consists of real estate taxes and insurance for leased facilities, which are paid based on actual costs incurred by the lessor.  


At December 31, 2021, the future maturities of lease liabilities are as follows:

 

 

 

 

Twelve months ending December 31,

(In thousands)

2022

$

1,016

 

2023

873

 

2024

658

 

2025 674

2026

403

 

Total lease payments

 

3,624

  

Less: amount representing interest
391
Present value of operating lease liabilities $ 3,233

 

At December 31, 2021, the weighted average remaining term of our operating leases was 4.02 years, and the weighted average discount rate applied to our operating leases was 5.31%. At December 31, 2020, the weighted average remaining term of our operating leases was 4.85 years, and the weighted average discount rate applied to our operating leases was 5.2%.


Cash paid for amounts included in the measurement of operating lease liabilities was $1.0 million in 2021 and $975,000 in 2020. Operating lease liabilities and right-of-use assets were increased for new non-cash leases by $941,000 in 2020. 


 

NOTE 12  401(K) AND OTHER DEFINED CONTRIBUTION PLANS

We have a retirement savings plan pursuant to Section 401(k) of the Internal Revenue Code (Code), under which eligible employees may contribute a portion of their earnings, not to exceed annual amounts allowed under the Code. In addition, we may also make contributions at the discretion of the Board of Directors. We provided matching contributions to employees totaling $323,000 in 2021 and $303,000 in 2020.

We also contribute to defined contribution retirement savings plans on behalf of our employees in the United Kingdom and Taiwan. We made contributions to these plans totaling $50,000 in 2021 and $39,000 in 2020.

 

NOTE 13  REVENUE CONCENTRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS

The following summarizes our revenue by product line: 


 

 

  Year Ended December 31,

(In thousands)

 

2021

 

2020

High precision 3D and 2D sensors

 

$

25,941

 

 

$

17,522

 

Inspection and metrology systems

 

 

42,958

 

 

37,547

 

Semiconductor sensors

 

 

23,875

 

 

15,048

 

Total

 

$

92,774

 

 

$

70,117

 


Revenue from sales of high precision 3D and 2D sensors based on our 3D Multi-Reflection Suppression™ (MRS™) technology was $17.2 million in 2021 and $11.6 million in 2020. Revenue from sales of inspection and metrology systems based on our 3D MRS sensor technology was $31.0 million in 2021 and $20.2 million in 2020.


In 2021, sales to significant customer A accounted for 17% of our total revenues. In 2020, sales to significant customer A accounted for 14% of our total revenues, and sales to significant customer B accounted for 13% of our total revenues. As of December 31, 2021, accounts receivable from significant customer A were $2.0 million, accounts receivable from significant customer C were $3.6 million and accounts receivable from significant customer D were $2.7 million


Export revenues as a percentage of total revenues were 83% in 2021 and 80% in 2020. Export revenues are attributed to the country where the product is shipped. Substantially all of our export revenues are negotiated, invoiced and paid in U.S. dollars.   


Revenues by geographic area is summarized as follows: 

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

 2021

 

2020

United States

 

$

15,327

 

 

$

14,134

 

Netherlands

 

 

2,700

 

 

2,237

 

Other Europe

 

 

9,649

 

 

7,017

 

China

 

 

30,698

 

 

18,903

 

Singapore

 

 

4,097

 

 

3,797

 

South Korea

 

 

14,809

 

 

6,376

 

Japan

 

 

5,145

 

 

3,172

 

Other Asia

 

 

7,255

 

 

11,702

 

Other

 

 

3,094

 

 

2,779

 

Total revenues

 

$

92,774

 

 

$

70,117

 



Long-lived assets include equipment and leasehold improvements and intangible and other assets attributable to each geographic area’s operations. Long-lived assets at December 31, 2021 and 2020 are as follows:

 

 

 

 

 

 

 

 

 

(In thousands)

 

2021

 

2020

Long-lived assets:

 

 

 

 

 

 

United States

 

$

2,526

 

 

$

2,814

 

Europe

 

13

 

 

6

 

Asia and other

 

1,010

 

 

740

 

Total long-lived assets

 

$

3,549

 

 

$

3,560

  


NOTE 14  CONTINGENCIES


We are periodically a defendant in miscellaneous lawsuits, claims and disputes in the ordinary course of business. While the outcome of these matters cannot be predicted with certainty, management presently believes the disposition of these matters will not have a material effect on our financial position, results of operations or cash flows.

In the normal course of business to facilitate sales of our products and services, we at times indemnify other parties, including customers, with respect to certain matters. In these instances, we have agreed to hold the other parties harmless against losses arising out of intellectual property infringement or other types of claims. These agreements may limit the time within which an indemnification claim can be made, and almost always limits the amount of the claim. It is not possible to determine the maximum potential amount of exposure under these indemnification agreements due to the limited history of prior indemnification claims and the unique facts and circumstances involved in each particular agreement. Historically, payments made, if any, under these agreements have not had a material impact on our operating results, financial position or cash flows.

 


Report of Independent Registered Public Accounting Firm 

Shareholders and Board of Directors

CyberOptics Corporation

Minneapolis, Minnesota

Opinion on the Consolidated Financial Statements


We have audited the accompanying consolidated balance sheets of CyberOptics Corporation and subsidiaries (the “Company”) as of December 31, 2021 and 2020, the related consolidated statements of operations, comprehensive income, stockholders’ equity, and cash flows for each of the two years in the period ended December 31, 2021, and the related notes (collectively referred to as the “consolidated financial statements”). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company at December 31, 2021 and 2020, and the results of its operations and its cash flows for each of the two years in the period ended December 31, 2021, in conformity with accounting principles generally accepted in the United States of America.

Basis for Opinion


These consolidated financial statements are the responsibility of the Company’s management. Our responsibility is to express an opinion on the Company’s consolidated financial statements based on our audits. We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States) (“PCAOB”) and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.


We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. The Company is not required to have, nor were we engaged to perform, an audit of its internal control over financial reporting. As part of our audits we are required to obtain an understanding of internal control over financial reporting but not for the purpose of expressing an opinion on the effectiveness of the Company’s internal control over financial reporting. Accordingly, we express no such opinion.

Our audits included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audits provide a reasonable basis for our opinion.

Critical Audit Matter


The critical audit matter communicated below is a matter arising from the current period audit of the consolidated financial statements that was communicated or required to be communicated to the audit committee and that: (1) relates to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of critical audit matters does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing separate opinions on the critical audit matter or on the accounts or disclosures to which it relates.

Accounting for Income Taxes

 

The Company is a U.S. based multinational entity subject to taxes in the U.S. and multiple foreign jurisdictions which affect the Company’s provision for income taxes. The tax provision is an estimate based on management’s understanding of current enacted tax laws and tax rates of each tax jurisdiction. We identified the accounting for income taxes as a critical audit matter. The Company’s tax provision included the following areas of complexity: (i) the calculation methods and the global legal structure and (ii) evaluation of current tax laws and regulations. Auditing these elements involved especially challenging auditor judgment due to the nature and extent of audit effort required to address these matters, including the extent of specialized skillsets and knowledge needed.

 

 

The primary procedures we performed to address this critical audit matter included:



· Tested the completeness and accuracy of the underlying data used to prepare the income tax provision.

·
With the assistance of U.S. and international income tax experts, we evaluated management’s application of relevant tax laws to its legal entity structure and the effect on the Company’s income tax provision, including the Company’s calculations of current period income tax expense and deductions associated with current tax laws and regulations by reviewing and evaluating management’s income tax calculations and assessing the Company’s compliance with tax laws.

·
With the assistance of U.S. and international income tax experts, we evaluated management’s income reporting to the various tax jurisdictions in which the Company operates based on its global corporate structure.


/s/ BDO USA, LLP

We have served as the Company's auditor since 2019.

Minneapolis, Minnesota


March 11, 2022


 


None.



Disclosure Controls and Procedures


Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, we evaluated the effectiveness of the design and operation of our disclosure controls and procedures (as defined in Rule 13a-15(e) under the Securities Exchange Act of 1934 (the “Exchange Act”)). Based upon that evaluation, the Chief Executive Officer and Chief Financial Officer concluded that, as of the end of the period covered by this report, our disclosure controls and procedures were effective in ensuring that information required to be disclosed by us in the reports that we file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in applicable rules and forms and that such information is accumulated and communicated to management, including our Chief Executive Officer and Chief Financial Officer, in a manner that allows timely decisions regarding required disclosure.


During the quarter ended December 31, 2021, there has been no change in our internal control over financial reporting (as defined in Rules 13a-15(f) and 15d-15(f) under the Exchange Act) that has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting.


Management's Report on Internal Control Over Financial Reporting


Management is responsible for establishing and maintaining adequate internal control over financial reporting, as defined in Rule 13a-15(f) under the Exchange Act, for CyberOptics Corporation and its subsidiaries (collectively, the Company). Our internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with U.S. generally accepted accounting principles (GAAP).


Our internal control over financial reporting includes those policies and procedures that (i) pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the Company; (ii) provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with GAAP, and that receipts and expenditures of the Company are being made only in accordance with authorizations of management and directors of the Company; and (iii) provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of our assets that could have a material effect on the financial statements.


Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements, and even when determined to be effective, can only provide reasonable assurance with respect to financial statement preparation and presentation. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.


Management, including our Chief Executive Officer and Chief Financial Officer, evaluated the effectiveness of our internal control over financial reporting as of December 31, 2021. In making this evaluation, our management used the criteria for effective internal control over financial reporting described in the 2013 “Internal Control—Integrated Framework” issued by the Committee of Sponsoring Organizations of the Treadway Commission. Based on this assessment, management concluded that our internal control over financial reporting was effective as of December 31, 2021.



None. 



Not applicable.


 

 

 


The information contained under the headings “Proposal I–Election of Directors,” “Information About our Board of Directors and its Committees and Other Corporate Governance Matters” and "Executive Compensation-Information about Our Executive Officers" of the Company’s definitive proxy statement for its annual meeting of shareholders to be held May 12, 2022 (Proxy Statement), is hereby incorporated by reference.



The information under the headings “Information About our Board of Directors and its Committees and Other Corporate Governance Matters–Compensation of Independent Directors,” and “Executive Compensation” of the Proxy Statement is hereby incorporated by reference.



The information contained under the headings “Beneficial Ownership” of the Proxy Statement is hereby incorporated by reference.


The following table describes shares of our common stock that are available as of December 31, 2021 for purchase under outstanding stock-based awards, or reserved for issuance under stock-based awards or other rights that may be granted in the future, under our equity compensation plans:


Equity compensation plans approved by security holders

 

(a)
Number of securities to be issued upon exercise of outstanding options, warrants and rights

 

(b)
Weighted-average exercise price of outstanding options, warrants and rights

 

(c)
Number of securities remaining available for future issuance under equity compensation plans (excluding those reflected in column (a))

Employee Stock Incentive Plan1

 

397,726

 

    $    18.14

 

87,507

Non-Employee Director Stock Plan

 

8,000

 

           16.97

 

36,000

Employee Stock Purchase Plan2

 

N/A

 

            N/A

 

129,411

Total

 

405,726

 

    $    18.11

 

252,918


(1) - In addition to stock options, shares of Common Stock may be received by employees pursuant to stock appreciation rights, restricted stock and restricted stock unit awards, performance awards and dividend equivalents.
(2) - Shares are issued based on an employee's election to participate in the Employee Stock Purchase Plan.



The information under the headings “Information About our Board of Directors and its Committees and Other Corporate Governance Matters–Committees of Our Board–Audit Committee” of the Proxy Statement is hereby incorporated by reference.



The information under the heading “Independent Accountants and Payment of Fees” and “Information About our Board of Directors and its Committees and Other Corporate Governance Matters–Committees of Our Board–Audit Committee” of the Proxy Statement is hereby incorporated by reference.

 

 

 



(a)(1)      Financial Statements: The Consolidated Financial Statements included in Item 8 to this Form 10-K consist of the following:

 

 

 

 


Report of Independent Registered Public Accounting Firm (BDO USA, LLP; Minneapolis, MN; PCAOB ID#243)

 

Consolidated Balance Sheets as of December 31, 2021 and 2020.

 

Consolidated Statements of Operations for the years ended December 31, 2021 and 2020.

 

Consolidated Statements of Comprehensive Income for the years ended December 31, 2021 and 2020.

 

Consolidated Statements of Cash Flows for the years ended December 31, 2021 and 2020.

 

Consolidated Statements of Stockholders’ Equity for the years ended December 31, 2021 and 2020.

 

Notes to the Consolidated Financial Statements.

 

 

  

 

(b)

 

LIST OF EXHIBITS

Exhibit Number

 

Description

 

3.1

 

Articles of Incorporation of the Company, as amended (incorporated by reference to Exhibit 3.1 to the Company’s annual report on Form 10-K for the year ended December 31, 1997).

 

3.2

 

Bylaws of the Company (incorporated by reference to Exhibit 3.1 to the current report on Form 8-K dated September 8, 2008).

 

*4.1

 

CyberOptics Corporation 1998 Stock Incentive Plan, as amended (incorporated by reference to Exhibit 10.1 to the current report on Form 8-K dated May 20, 2016)

 

*4.2

 

CyberOptics Corporation Employee Stock Purchase Plan, as amended and restated (incorporated by reference to Exhibit 4.1 to the current report on Form 8-K dated May 10, 2018).

 

*4.3

 

CyberOptics Corporation Non-Employee Director Stock Plan (incorporated by reference to Exhibit 10.2 to the current report on Form 8-K dated May 20, 2016)

 

*4.4

 

CyberOptics Corporation Amended Non-Employee Director Stock Plan (incorporated by reference to Exhibit 4.1 to the Company's quarterly report on Form 10-Q for the quarter ended June 30, 2017)


4.5
Description of Securities (incorporated by reference to Exhibit 4.5 to the Company's annual report on Form 10-K for the year ended December 31, 2020).

 

10.1

 

Lease Agreement between FirstCal Industrial 2 Acquisitions LLC and the Company dated March 27, 2006 (incorporated by reference to Exhibit 10.1 to the Company’s quarterly report on Form 10-Q for the quarter ended March 31, 2006).

 

10.2

 

First Amendment to Lease effective as of March 14, 2011, by and between Hines REIT Minneapolis Industrial, LLC and CyberOptics Corporation (incorporated by reference to Exhibit 10.1 to the Company’s quarterly report on Form 10-Q for the quarter ended March 31, 2011).

 

*10.3

 

Severance Pay Agreement with Jeffrey A. Bertelsen (incorporated by reference to Exhibit 10.3 to the current report on Form 8-K dated May 19, 2008).

 

*10.4

 

Amendment to Severance Pay Agreement with Jeffrey A. Bertelsen (incorporated by reference to Exhibit 10.1 to the current report on Form 8-K dated May 18, 2009).

 

*10.5

 

Clarification to Severance Pay Agreement with Jeffrey A. Bertelsen (incorporated by reference to Exhibit 10.9 to the Company’s annual report on Form 10-K for the year ended December 31, 2011).

 

*10.6

 

Employment agreement with Subodh Kulkarni dated January 13, 2014 (incorporated by reference to Exhibit 10.12 to the Company's annual report on Form 10-K for the year ended December 31, 2013)


10.7


Third Amendment to Lease (“Amendment”) effective as of May 17, 2018, by and between GOLDEN HILLS PARK I PROPERTY OWNER, LLC and CYBEROPTICS CORPORATION (incorporated by reference to Exhibit 10.2 to the Company's quarterly report on Form 10-Q for the quarter ended June 30, 2018).

 

10.8

 

Tenancy agreement between RBC Investor Services Trust Singapore Limited and CyberOptics Singapore Private Limited dated December 8, 2016 (incorporated by reference to Exhibit 10.9 to the Company’s annual report on Form 10-K for the year ended December 31, 2016).


10.9
Tenancy agreement between RBC Investor Services Trust Singapore Limited (in its capacity as trustee of ESR-REIT) and CyberOptics Singapore Private Limited dated February 25, 2020 (incorporated by reference to Exhibit 10.9 to the Company's annual report on Form 10-K for the year ended December 31, 2019)

 

*10.10

 

Form of stock option agreement used for option grants to employees (incorporated by reference to Exhibit 10.9 to the Company's annual report on Form 10-K for the year ended December 31, 2014).

 

*10.11

 

Form of restricted stock award agreement used for awards to employees (incorporated by reference to Exhibit 10.10 to the Company's annual report on Form 10-K for the year ended December 31, 2014).

 

21

 

Subsidiaries of the Company.


23.1
Consent of Independent Registered Public Accounting Firm

 

31.1

 

Certification of Chief Executive Officer Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.

 

31.2

 

Certification of Chief Financial Officer Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.

 

32

 

Certification of Chief Executive Officer and Chief Financial Officer Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.

 

101

 

Financial statements formatted in Inline Extensible Business Reporting Language: (i) the Consolidated Balance Sheets, (ii) the Consolidated Statement of Operations, (iii) the Consolidated Statements of Comprehensive Income, (iv) the Consolidated Statements of Cash Flows, (v) the Consolidated Statements of Stockholders' Equity, and (vi) the Notes to the Consolidated Financial Statements. 


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

 

* Management Contract or Compensatory Plan or Arrangement 


Pursuant to the requirements of Section 13 or 15(d) 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.

 

 

 

 

CYBEROPTICS CORPORATION

 

 

 

/s/ SUBODH KULKARNI

 

By Subodh Kulkarni, President and CEO

Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the registrant and in the capacities and on the dates indicated.

 

 

 

 

 

 

Name

 

Title

 

Date

 

 

 

 

 

/s/ SUBODH KULKARNI

 

President and CEO

 

March 11, 2022

Subodh Kulkarni

 

(Principal Executive Officer)

 

 

 

 

 

 

 

 

 

 

 

 

/s/ VIVEK MOHINDRA

 

Director

 

March 11, 2022

Vivek Mohindra

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/s/ MICHAEL M. SELZER JR.

 

Director

 

March 11, 2022

Michael M. Selzer, Jr.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/s/ CHERYL BERANEK

 

Director

 

March 11, 2022

Cheryl Beranek

 

 

 

 











/s/ CORDELL HARDY
Director
March 11, 2022

Cordell Hardy

 

 

 

 






 

 

 

 

 

/s/ CRAIG D. GATES

 

Chairman, Director

 

March 11, 2022

Craig D. Gates

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/s/ JEFFREY A. BERTELSEN

 

Vice President, CFO and COO

 

March 11, 2022

Jeffrey A. Bertelsen

 

(Principal Financial Officer

 

 

 

 

and Principal Accounting Officer)

 

 

 

 

61

EX-101.DEF 2 cybe-20211231_def.xml DEFINITION EX-101.PRE 3 cybe-20211231_pre.xml PRESENTATION EX-101.CAL 4 cybe-20211231_cal.xml CALCULATION EX-101.LAB 5 cybe-20211231_lab.xml LABEL Options Outstanding, Outstanding, End of period, shares Shares of common stock reserved for stock based benefits, shares Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table] BUSINESS DESCRIPTION AND SIGNICANT ACCOUNTING POLICIES Vesting period (in years) Accumulated Other Comprehensive Income (Loss), Net of Tax [Abstract] SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward] Foreign currency transaction gains The amount of order backlog not yet recognized as revenue. Order Backlog Yet to be Recognized as Revenue Order backlog not yet recognized Operating Leases Lessee, Leases [Policy Text Block] ICFR Auditor Attestation Flag Effective Income Tax Rate Reconciliation Singapore Jobs Support Program Singapore jobs support program Deferred Income Tax Assets, Net Deferred tax assets Revision of Prior Period [Domain] Increase (Decrease) in Contract with Customer, Liability Advance customer payments and other Contract with Customer, Liability, Current Advance customer payments Amortization of Deferred Revenue Amortization of deferred revenue The amount of amortization of deferred revenue during the period. Foreign tax credit (as a percent) Effective Income Tax Rate Reconciliation, Tax Credit, Foreign, Percent Sale of marketable securities Proceeds from Sale and Maturity of Marketable Securities Backlog amount Order or Production Backlog [Member] Cumulative purchases Related Party Transaction, Purchases from Related Party Accounts Receivable [Member] Accounts receivable, net Accounts Receivable [Member] Revision of Prior Period [Axis] Title of 12(g) Security Security Exchange Name Trading Symbol Net pre-tax unrealized losses Current operating lease liabilities Revenue from External Customers by Geographic Areas [Table Text Block] Global Intangible Low-Taxed Income (GILTI)/Foreign Derived Intangible Income (as a percent) Effective Income Tax Rate Reconciliation Global Intangible Low Tax Income Inspection and Metrology Systems [Member]. Inspection and Metrology Systems [Member] Inspection and Metrology Systems [Member] Asset impairment charges Asset Impairment Charges ASU 2016-02 [Member] Accounting Standards Update 2016-02 [Member] Lease liability Operating Lease, Right-of-Use Asset Operating Lease, Liability Right-of-use asset Amount of receivable from lessor. Receivable from lessor Receivable from Lessor Maximum period in which accounts receivable become due Represents the maximum period in which account receivable become due under normal trade terms. Proceeds from Sale of Available-for-sale Securities Unrealized gains or losses on marketable securities Marketable securities classified as cash equivalents Marketable Securities, Unrealized Gain (Loss) The number of shares repurchased by an entity's Board of Directors under a stock repurchase plan. Stock Repurchase Program Number of Shares Repurchased Stock Repurchase Program, Number of Shares Repurchased Represent the information partaining to MRS based systems. MRS based systems [Member] Mrs Based Systems [Member] Long-lived Assets by Geographic Areas [Table Text Block] Schedule Of Long-lived Assets Attributable To Each Geographic Area's Operations Represent the information pertaining to MRS based sensors. MRS based sensors [Member] Mrs Based Sensors [Member] Amount of net unrecognized tax benefits. Net UTB balance at end of year Unrecognized Tax Benefits, Net Amount of net unrecognized tax benefits classsified as current liability. Net UTB classsified as current liability Unrecognized Tax Benefits Net Classified as Current Liability Contract with Customer, Liability, Noncurrent Contract liabilities Income taxes payable Accrued Income Taxes, Current Number of shares vested Restatement Adjustment [Member] New Accounting Pronouncements or Change in Accounting Principle [Line Items] High Precision 3D and 2D Sensors [Member] High Precision 3D and 2D Sensors [Member]. Product Warranties Time Frame. Warranty period Schedule Of Revenue By Geographic Area High Precision 3D and 2D Sensors [Member] Product Warranties Time Frame ASU 2014-09 [Member] ASU 2016-01 [Member] Accounting Standards Update 2016-01 [Member] Available-for-sale Securities, Gross Realized Gain (Loss) Operating Leases, Future Minimum Payments, Due Thereafter Operating Leases, Future Minimum Payments, Due in Five Years 2025 & Thereafter 2024 Period for the value of unsatisfied performance obligations which are not disclosed Period for Value of Unsatisfied Performance Obligations Which Not Disclosed Amortization period of incremental costs of obtaining a contract Amortization Period of Incremental Costs of Obtaining Contract Contract with Customer, Liability Contract assets, included in other current assets Performance Obligations Revenue recognized at a point in time [Member] Revenue recognized over time [Member] Contract liabilities - advance customer payments Contract with Customer, Asset, Net Percentage of the revenue performance obligations. Percent of Revenues Percentage of Revenue Performance Obligations Disaggregation of Revenue [Line Items] Transferred at Point in Time [Member] Transferred over Time [Member] Timing of Transfer of Good or Service [Domain] Timing of Transfer of Good or Service [Axis] Disaggregation of Revenue [Table] Revenue, Initial Application Period Cumulative Effect Transition [Line Items] Impairment losses for contract assets Amounts reclassified from beginning contract liabilities to revenue Accounting Standards Update 2014-09 [Member] Capitalized Contract Cost, Impairment Loss Contract with Customer, Liability, Revenue Recognized Earnings Per Share, Basic and Diluted REVENUE RECOGNITION - TOPIC 606 Accounting Standards Update 2014-09 [Member] Effect of adoption of Topic 606 [Member] Initial Application Period Cumulative Effect Transition [Domain] Initial Application Period Cumulative Effect Transition [Axis] Summary of contract assets and contract liabilities Summary of revenue performance obligations Contract with Customer, Asset and Liability [Table Text Block] Disaggregation of Revenue [Table Text Block] Revenue from Contract with Customer [Text Block] Period for deferred warranty revenue expected to be recognized REVENUE RECOGNITION REVENUE RECOGNITION Income per share Other Long-term Investments [Member] Financial Instrument [Axis] Entity Shell Company Allowance for doubtful accounts Financial Instruments [Domain] Allowance established for amounts due that are unlikely to be received. Accounts Receivable Allowance for Doubtful Accounts [Member] Lessor, Operating Lease, Renewal Term Period for recognizing rental expense (in months) Lessee, Operating Lease, Term of Contract Lessee, Operating Lease, Renewal Term Renewal options, term (in years) Lease extension period (in years) Short-term Investments [Member] Investments [Domain] Asia And Other [Member] Long-Lived Assets Total long-lived assets Europe [Member] Asia And Other [Member] Asia And Other [Member] Europe [Member] Other Geographic Location [Member] Other Geographic Location [Member] Other [Member] Other Asia [Member] Other Asia [Member] Other Asia [Member] JAPAN Japan [Member] KOREA, REPUBLIC OF South Korea [Member] CHINA China [Member] Other Europe [Member] Other Europe [Member] Other Europe [Member] NETHERLANDS Netherlands [Member] UNITED STATES United States [Member] Concentration Risk, Percentage Percentage of Revenues Customer [Domain] Name of Major Customer [Domain] Customer [Axis] Customer [Axis] Sales Revenue, Net [Member] Revenues [Member] Concentration Risk Benchmark [Domain] Concentration Risk Benchmark [Domain] Concentration Risk Benchmark [Axis] Concentration Risk Benchmark [Axis] Customer Concentration Risk [Member] Customer Concentration Risk [Member] Concentration Risk Type [Domain] Concentration Risk Type [Domain] Concentration Risk Type [Axis] Concentration Risk Type [Axis] 3D Scanning Solutions and Services [Member] Three Dimensional Scanning Systems and Services [Member] Three Dimensional Scanning Systems and Services [Member] Inspection systems [Member] Inspection systems [Member] Represents information pertaining to inspection systems. Semiconductor Sensors [Member] Semiconductor Sensors [Member] Semiconductor Sensors [Member] High Precision 3D and 2D Sensors [Member] Oem Alignment Sensors [Member] OEM Alignment Sensors [Member] Products and Services [Domain] Products and Services [Domain] Products and Services [Axis] Products and Services [Axis] Defined Contribution Plan, Employer Discretionary Contribution Amount Matching contributions to employees Total lease payments Operating Leases, Future Minimum Payments Due 2023 Operating Leases, Future Minimum Payments, Due in Four Years 2022 Operating Leases, Future Minimum Payments, Due in Three Years 2021 Operating Leases, Future Minimum Payments, Due in Two Years 2020 Operating Leases, Future Minimum Payments Due, Next Twelve Months Operating Leases, Rent Expense Rent expense Renewal Options, Number Renewal Options, Number Renewal options, number Operating Leased Assets [Line Items] Operating Leased Assets [Line Items] Singapore [Member] SINGAPORE MINNESOTA MINNESOTA Geographical [Domain] Segment, Geographical [Domain] Geographical [Axis] Geographical [Axis] Bloomington [Member] Bloomington [Member] Bloomington [Member] Golden Valley [Member] Golden Valley [Member] Golden Valley [Member] Name of Property [Domain] Name of Property [Domain] Name of Property [Axis] Name of Property [Axis] Schedule of Operating Leased Assets [Table] Schedule of Operating Leased Assets [Table] Deferred Tax Liabilities, Net Total deferred tax liabilities Deferred Tax Liabilities, Gross Subtotal Deferred Tax Liabilities, Other Comprehensive Income Unrealized gains and losses Deferred Tax Liabilities, Inventory Inventory allowances Equipment, leaseholds and intangible amortization, net Deferred Tax Liabilities, Fixed Asset And Intangible Amortization, Net Deferred Tax Liabilities, Fixed Asset And Intangible Amortization, Net. Deferred Tax Liabilities, Gross [Abstract] Liabilities Deferred Tax Assets, Net of Valuation Allowance Total deferred tax assets Deferred Tax Assets, Gross Subtotal Deferred Tax Assets, Other Other, net Deferred Tax Assets, Other Comprehensive Loss Unrealized gains and losses State net operating loss carry forwards Deferred Tax Assets, Operating Loss Carryforwards Deferred Tax Assets, Federal And State Tax Credits Deferred Tax Assets, Federal And State Tax Credits Federal and state tax credits Deferred Tax Assets, Deferred Income Deferred revenue Warranty accrual Accrued expenses Deferred Tax Assets, Inventory Inventory allowances Deferred Tax Assets, Fixed Asset And Intangible Amortization, Net Deferred Tax Assets, Fixed Asset And Intangible Amortization, Net Equipment, leaseholds and intangible amortization, net Deferred Tax Assets, Gross [Abstract] Assets Reductions for tax positions of prior years Additions for tax positions of prior years Unrecognized Tax Benefits Gross UTB balance at end of year Gross UTB balance at beginning of year Deferred Tax Liabilities, Undistributed Foreign Earnings Earnings of foreign subsidiary Deferred tax liability for subsidiary's undistributed earnings Foreign Earnings Repatriated Amount Previously Taxed Foreign Earnings Repatriated Amount Previously Taxed Amount of foreign earnings repatriated previously taxed Foreign Earnings Repatriated Foreign earnings repatriated Income Taxes Paid, Net Cash payments for income taxes, net of refunds received Deferred Tax Assets, Operating Loss Carryforwards, Foreign Foreign net operating loss carry forwards Deferred tax assets, operating loss carryforwards, foreign Deferred Tax Assets, Operating Loss Carryforwards, Domestic Deferred tax assets, operating loss carryforwards, domestic Deferred Tax Assets, Tax Credit Carryforwards, Research Research & Development tax credits Increase (decrease) in valuation allowance Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount Deferred Tax Assets, Valuation Allowance Valuation allowance Valuation allowance Need For Valuation Allowance Based On History Of Cumulative Losses Need For Valuation Allowance Based On History Of Cumulative Losses Need for valuation allowance based on history of cumulative losses Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense Estimated gross penalties and interest Unrecognized Tax Benefits, Period Increase (Decrease) Change in liability for uncertain tax positions Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued Accrued interest and penalties Income Tax [Line Items] Income Tax [Line Items] Income Tax [Line Items] ASU 2016-09 [Member] Accounting Standards Update 2016-09 [Member] Type of Adoption [Domain] Type of Adoption [Domain] Adjustments for New Accounting Pronouncements [Axis] Adjustments for New Accounting Pronouncements [Axis] Income Tax [Table] Income Tax [Table] Income Tax [Table] Effective Income Tax Rate Reconciliation, Percent Effective tax rate (as a percent) Effective Income Tax Rate Reconciliation, Other Adjustments, Percent Other, net (as a percent) Research and experimentation (R&D) credit (as a percent) Effective Income Tax Rate Reconciliation, Tax Credit, Research, Percent Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment, shares Restricted Shares and Restricted Stock Units [Member] Restricted Shares and Restricted Stock Units [Member] Stock Issued During Period Shares Stock Options Exercised And Vesting Of Restricted Units, Net Of Shares Exchanged As Payment Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table] Effective Income Tax Rate Reconciliation US Subpart F Income Effective Income Tax Rate Reconciliation US Subpart F Income U.S. Subpart F income (as a percent) State income taxes, net of federal benefit (as a percent) Federal statutory rate (as a percent) Stock Issued During Period Shares Stock Options Exercised And Vesting Of Restricted Units, Net Of Shares Exchanged As Payment Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment Deferred Foreign Income Tax Expense (Benefit) Foreign Deferred State and Local Income Tax Expense (Benefit) State Deferred Federal Income Tax Expense (Benefit) Federal Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract] Deferred: Current Income Tax Expense (Benefit) Total current Current Foreign Tax Expense (Benefit) Foreign Current State and Local Tax Expense (Benefit) State Current Federal Tax Expense (Benefit) Federal Current Income Tax Expense (Benefit), Continuing Operations [Abstract] Current: Income (Loss) from Continuing Operations before Income Taxes, Foreign Sources of income (loss) before income taxes: Foreign Income (Loss) from Continuing Operations before Income Taxes, Domestic Sources of income (loss) before income taxes: United States Extended Product Warranty Accrual, Current Current portion of deferred warranty revenue Extended Product Warranty Accrual Total deferred warranty revenue Balance at beginning of period Movement in Extended Product Warranty Accrual [Roll Forward] Movement in Extended Product Warranty Accrual [Roll Forward] Standard Product Warranty Accrual, Decrease for Payments Settlements made during the period Warranty revision Standard and Extended Product Warranty Accrual Balance at end of period Balance at beginning of period Movement in Standard Product Warranty Accrual [Roll Forward] Movement in Standard Product Warranty Accrual [Roll Forward] Extended Product Warranty Accrual, Noncurrent Long-term deferred warranty revenue Deferred warranty revenue Product Warranty Accrual, Noncurrent Warranty liability Long-term estimated warranty liability Deferred Rent Credit, Noncurrent Deferred rent Other Accrued Liabilities, Current Other Product Warranty Accrual, Current Current portion of estimated warranty liability Warranty liability Employee-related Liabilities, Current Wages and benefits Acquired Finite-lived Intangible Assets, Weighted Average Useful Life Intangible assets acquired, Weighted Average Life (in years) Amortization of Intangible Assets Amortization of intangibles Net Finite-Lived Intangible Assets, Net Finite-Lived Intangible Assets, Accumulated Amortization Accumulated Amortization Finite-Lived Intangible Assets, Gross Gross Carrying Amount Finite-Lived Intangible Assets [Line Items] Finite-Lived Intangible Assets [Line Items] Non-compete Agreements [Member] Noncompete Agreements [Member] Customer-Related Intangible Assets [Member] Marketing Assets and Customer Relationships [Member] Computer Software, Intangible Asset [Member] Software [Member] Patents [Member] Patents [Member] Schedule of Finite-Lived Intangible Assets [Table] Schedule of Finite-Lived Intangible Assets [Table] Amortization expense, 2026 Finite-Lived Intangible Assets, Amortization Expense, Year Five Amortization expense, 2025 Finite-Lived Intangible Assets, Amortization Expense, Year Four Amortization expense, 2024 Finite-Lived Intangible Assets, Amortization Expense, Year Three Amortization expense, 2023 Finite-Lived Intangible Assets, Amortization Expense, Year Two Amortization expense, 2022 Finite-Lived Intangible Assets, Amortization Expense, Next Twelve Months Depreciation Depreciation expense Product Liability Contingency [Line Items] Product Liability Contingency [Line Items] Product Liability Contingency [Table] Product Liability Contingency [Table] Property, Plant and Equipment, Gross Equipment and leasehold improvements, gross Property, Plant and Equipment [Line Items] Property, Plant and Equipment [Line Items] Equipment [Member] Equipment [Member] Property, Plant and Equipment [Table] Property, Plant and Equipment [Table] Inventory, Finished Goods, Gross Finished goods Inventory, Work in Process, Gross Work in process Inventory, Raw Materials and Purchased Parts, Net of Reserves Raw materials and purchased parts Earnings Per Share Dilutive Adjustment Earnings Per Share Dilutive Adjustment Per Share Amount, Dilutive effect of common equivalent shares (in usd per share) Weighted Average Number Diluted Shares Outstanding Adjustment Weighted Average Shares Outstanding, Dilutive effect of common equivalent shares, shares Tax benefit from the exercise of stock options and vesting of share based payments Employee Service Share-based Compensation, Tax Benefit from Compensation Expense Options Outstanding, Exercised, shares Non Employee Director Stock Plan [Member] Maximum Contribution Per Plan Year Maximum Contribution Per Plan Year Maximum contribution per plan year Payroll Deduction For Employee Stock Purchase Plan Percentage Payroll Deduction For Employee Stock Purchase Plan Percentage Payroll deduction for employee stock purchase plan percentage Stock Granted, Value, Share-based Compensation, Gross Share-based Compensation Arrangement by Share-based Payment Award [Line Items] Stock granted, value Number Of Shares Granted For Non-Employee Directors Upon Re-Election Share-based Compensation Arrangement by Share-based Payment Award [Line Items] Stock Issued During Period Value Stock Options Exercised And Vesting Of Restricted Units, Net Of Shares Exchanged As Payment Stock Issued During Period Value Stock Options Exercised And Vesting Of Restricted Units, Net Of Shares Exchanged As Payment Number Of Shares Granted For Non-Employee Directors Upon Re-Election Number of shares granted for non-employee directors upon re-election, shares Restricted Stock Units to Common Stock Ratio Restricted Stock Units to Common Stock Ratio Restricted stock units to common stock ratio, shares entitled, shares Number of Stock-Based Compensation Plans Number Of Stock-Based Compensation Plans Number of stock-based compensation plans Restricted Stock Units (RSUs) [Member] Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number Restricted Stock Units (RSUs) [Member] Employee Stock [Member] Employee Stock Purchase Plan [Member] Stock Options And Restricted Stock Units (RSUs) [Member] Stock Options And Restricted Stock Units Rsus [Member] Stock Options And Restricted Stock Units (RSUs) [Member] Employee Stock Option [Member] Stock Options [Member] Equity Award [Domain] Award Type [Domain] Award Type [Axis] Award Type [Axis] Stock Grant Plan For Non-Employee Directors [Member] Stock Grant Plan For Non Employee Directors [Member] Stock Grant Plan For Non-Employee Directors [Member] New Non-Employee Director Stock Plan [Member] New Non-Employee Director Stock Plan [Member] New Non-Employee Director Stock Plan [Member] Stock Incentive Plan [Member] Stock Incentive Plan [Member] Stock Incentive Plan [Member] Plan Name [Domain] Plan Name [Domain] Plan Name [Axis] Plan Name [Axis] Investments, Fair Value Disclosure Marketable securities Fair Value, Inputs, Level 3 [Member] Significant Unobservable Inputs (Level 3) [Member] Fair Value, Inputs, Level 2 [Member] Significant Other Observable Inputs (Level 2) [Member] Fair Value, Inputs, Level 1 [Member] Quoted Prices In Active Markets For Identical Assets (Level 1) [Member] Fair Value Hierarchy [Domain] Fair Value, Measurements, Fair Value Hierarchy [Domain] Fair Value, Hierarchy [Axis] Fair Value, Hierarchy [Axis] Fair Value Measurements, Recurring and Nonrecurring [Table] Fair Value Measurements, Recurring and Nonrecurring [Table] Unrealized Gains (Losses) On Available-for-sale Securities [Member] Accumulated Net Investment Gain (Loss) Attributable to Parent [Member] Accumulated Foreign Currency Adjustment Attributable to Parent [Member] Foreign Currency Translation Adjustments [Member] Accumulated Other Comprehensive Income (Loss) [Line Items] Accumulated Other Comprehensive Income (Loss) [Line Items] Accumulated Other Comprehensive Income (Loss) [Table] Accumulated Other Comprehensive Loss [Table] Derivative Instruments, Gain (Loss) [Line Items] Derivative Instruments, Gain (Loss) [Line Items] Selling, General and Administrative Expenses [Member] Selling, General and Administrative [Member] Selling, General and Administrative Expenses [Member] Research and Development Expense [Member] Research and Development [Member] Research and Development Expense [Member] Cost of Sales [Member] Cost of Revenues [Member] Income Statement Location [Domain] Income Statement Location [Domain] Income Statement Location [Axis] Income Statement Location [Axis] Derivative instruments-liabilities: Foreign exchange forward contracts Foreign exchange forward contracts, liability Foreign Currency Contracts, Liability, Fair Value Disclosure Average Remaining Maturity of Foreign Currency Derivatives Average remaining maturity of foreign currency derivatives (in years) Maximum Remaining Maturity of Foreign Currency Derivatives Maximum length of time to hedge (in months) Marketable Securities Classified As Cash Equivalents, Unrealized Losses Unrealized Losses Marketable Securities Classified As Cash Equivalents, Unrealized Gains Unrealized Gains Cost Marketable Securities Classified As Cash Equivalents, Cost Marketable Securities Classified As Cash Equivalents, Cost Marketable Securities Classified As Cash Equivalents, Recorded Basis Marketable Securities Classified As Cash Equivalents, Recorded Basis Marketable securities classified as cash equivalents, recorded basis Recorded Basis Available-for-sale securities, gross realized gain (loss) Realized gain on available for sale marketable securities Proceeds from Sale and Maturity of Available-for-sale Securities Proceeds from sale of marketable securities Available-for-sale securities, number of equity securities Available-For-Sale Securities, Number Of Equity Securities Available-for-sale Securities, Number of Equity Securities Maximum Time For Loss Position Maximum Time For Loss Position Maximum time for loss position (in months) Maximum Maturity Of Debt Securities Maximum Maturity Of Debt Securities Maximum maturity of debt securities (less than 5 years) Available-for-sale Securities, Accumulated Gross Unrealized Loss, before Tax Available-for-sale Securities, Accumulated Gross Unrealized Gain, before Tax Options Outstanding, Outstanding, Beginning of period, shares Schedule Of Marketable Securities Classified As Cash Equivalents [Table Text Block] Debt Securities Unrealized Loss Position [Member] Debt Securities Unrealized Loss Position [Member] Debt Securities Unrealized Loss Position [Member] Debt Securities Unrealized Gain Position [Member] Debt Securities Unrealized Gain Position [Member] Debt Securities Unrealized Gain Position [Member] Available-for-sale Securities Fair Value Fair value Unrealized Losses Unrealized loss Unrealized Gains Derivative Instruments, Gain (Loss) [Table] Unrealized gain Available-for-sale Securities, Amortized Cost Basis Cost Equity Securities [Member] Equity Security [Member] Asset Backed Securities [Member] Schedule Of Marketable Securities Classified As Cash Equivalents [Table Text Block] Derivative Instruments, Gain (Loss) [Table] Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition Asset-backed Securities [Member] Corporate Debt Securities And Certificates Of Deposit [Member] Corporate Debt Securities And Certificates Of Deposit [Member] Corporate Debt Securities And Certificates Of Deposit [Member] Metrology Products and Services [Member] Income tax benefits related to share-based compensation Change in accounting for employee share-based payment forfeitures [Member] Number of equity securities available-for-sale Restatement Adjustment [Member] Foreign currency translation adjustments, Before Tax CASH FLOWS FROM OPERATING ACTIVITIES: SHARE REPURCHASES [Abstract] Net Cash Provided by (Used in) Operating Activities, Continuing Operations CASH FLOWS FROM INVESTING ACTIVITIES: CASH FLOWS FROM FINANCING ACTIVITIES: Payments to Acquire Available-for-sale Securities Standard and Extended Product Warranty Accrual, Increase for Warranties Issued Purchases of available-for-sale marketable securities Marketable Securities - Long-Term [Member] Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block] Accrual for warranties Defined Contribution Plan [Table] Net UTB balance at end of year Product Information [Line Items] Defined Contribution Plan Disclosure [Line Items] Concentration Risk [Line Items] Concentration Risk [Table] Revenues from External Customers and Long-Lived Assets [Line Items] Revenue, Major Customer [Line Items] Expiration of stock options from date of grant (in years) Revenue, Major Customer [Line Items] OTHER FINANCIAL STATEMENT DATA Additional Financial Information Disclosure [Text Block] Schedule of Amortization Expense for Intangible Assets Schedule of Changes in Deferred Warranty Revenue Foreign currency translation adjustments, Before Tax Finite-lived Intangible Assets Amortization Expense [Table Text Block] Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, before Tax, Portion Attributable to Parent Deferred Revenue, by Arrangement, Disclosure [Table Text Block] Area of Real Estate Property Mixed office and warehouse facility, square footage Concentration Risk Disclosure [Text Block] Entity Emerging Growth Company REVENUE CONCENETRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS Goodwill impairment Entity Small Business Long-Term [Member] Number of open foreign exchange forward contracts Goodwill, Impairment Loss Marketable Securities - Short-Term [Member] Short-Term [Member] Number of Foreign Currency Derivatives Held Summary Of Revenue By Product Line Schedule of Product Information [Table Text Block] Summary Of Certain Significant Customer Information Schedules of Concentration of Risk, by Risk Factor [Table Text Block] Operating Lease, Expense Increase (Decrease) in Other Operating Liabilities Operating lease liabilities Non-cash operating lease expense Trade notes receivable, long-term Accounts Receivable, after Allowance for Credit Loss, Noncurrent Entity Incorporation, State or Country Code Entity File Number Unrealized gains on available-for-sale securities, Before Tax Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Net of Forfeitures Unrecognized compensation cost related to non-vested equity based compensation Entity Address, Address Line One Entity Tax Identification Number Weighted average grant date fair value (in usd per share) Schedule of Gain (Loss) on Investments [Table] Shares granted, shares Schedule of Gain (Loss) on Investments [Table] Revenue from Related Parties Shares, Granted Entity Address, State or Province Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment Entity Address, City or Town City Area Code Entity Address, Postal Zip Code Entity Interactive Data Current Aggregate intrinsic value of exercisable options Local Phone Number Document Transition Report Document Annual Report Aggregate intrinsic value for all options outstanding Number of customers The number of customers. Right-of-use assets (operating leases) Number of Customers Sales to related party Operating Lease, Liability, Noncurrent Operating Lease, Liability, Current Long-term operating lease liabilities Contract with Customer Liability Deferred Warranty Revenue Deferred Revenue, Revenue Recognized Contract liabilities - deferred warranty revenue Total Contract with Customer Liability and Deferred Revenue Revenue Recognized Lease, Cost [Table Text Block] Amounts reclassified from deferred warranty revenue Operating Lease, Cost Schedule of components of our costs for operating leases Short-term Lease, Cost Variable Lease, Cost Operating lease cost Lease, Cost Short-term lease cost Variable lease cost Amount necessary to reduce minimum lease payments to present value for operating leases. Total Recognition of the deferred tax assets for previously unrecognized excess tax benefits [Member] Number of additional shares authorized for issuance Interest Portion of Operating Leases Less: amount representing interest Accumulated amortization for demonstration inventories Represents information pertaining to recognition of the deferred tax assets for previously unrecognized excess tax benefits. Present value of operating lease liabilities Present Value of Operating Leases Future Minimum Payments Accumulated depreciation and amortization Number of shares available for future issuance, shares Product Warranty, Period Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized Product Warranty, Period Warranty period (in years) Operating Leases, Future Minimum Payments, Next Rolling Twelve Months Present value of minimum lease payments for operating leases. Advertising Expense Operating Leases, Future Minimum Payments, Due in Rolling Year Three Operating Leases, Future Minimum Payments, Due in Rolling Year Two Operating Leases, Future Minimum Payments, Due in Rolling Year Five Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items] Operating Leases, Future Minimum Payments, Due in Rolling Year Four Advertising expense Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items] Foreign Currency Transaction Gain (Loss), Realized Recognized foreign currency transactions gain (loss) Number of Reporting Units Number of reporting units Property, Plant and Equipment, Useful Life Estimated useful lives of the equipment and leasehold improvements (in years) Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value Effective Income Tax Rate Reconciliation Earning and Dividends of Foreign Corporations Percent Demonstration Inventory Useful Life 2027 & Thereafter Operating Leases, Future Minimum Payments, Due in Rolling after Year Five Demonstration Inventory Useful Life Demonstration inventory useful life (in months) Percentage of effective income tax rate reconciliation, earning and dividends of foreign corporations. Effective Income Tax Rate Reconciliatio of Corporate Income Tax Rate Write Down of Deferred Tax Assets Cash Held In Foreign Accounts Cash Held In Foreign Accounts Cash held in foreign accounts Business Description And Significant Accounting Policies [Line Items] Business Description And Significant Accounting Policies [Line Items] Business Description And Significant Accounting Policies [Line Items] Maximum [Member] Percentage of change in corporate income tax rate due to write-down of deferred tax assets Maximum [Member] Minimum [Member] Minimum [Member] Range [Domain] Range [Domain] Range [Axis] Range [Axis] Demonstration Inventories [Member] Demonstration Inventories [Member] Demonstration Inventories [Member] Finite-Lived Intangible Assets, Major Class Name [Domain] Finite-Lived Intangible Assets, Major Class Name [Domain] Finite-Lived Intangible Assets by Major Class [Axis] Finite-Lived Intangible Assets by Major Class [Axis] Leasehold Improvements [Member] Leasehold Improvements [Member] Property, Plant and Equipment, Type [Domain] Property, Plant and Equipment, Type [Domain] Property, Plant and Equipment, Type [Axis] Property, Plant and Equipment, Type [Axis] Affiliated Entity [Member] Affiliated Entity [Member] Related Party [Domain] Related Party [Domain] Related Party [Axis] 2023 2022 2025 2024 Operating Lease, Payments 2026 Cash paid for amounts included in the measurement of operating lease liabilities Incentives from landlord recorded as leasehold improvements Operating Lease, Weighted Average Remaining Lease Term Incentive to Lessee Related Party [Axis] Weighted average remaining term for operating leases Operating Lease, Weighted Average Discount Rate, Percent Key Tronic Corporation [Member] Key Tronic Corporation [Member] Key Tronic Corporation [Member] Counterparty Name [Domain] Counterparty Name [Domain] Counterparty Name [Axis] Counterparty Name [Axis] Business Description And Significant Accounting Policies [Table] Business Description And Significant Accounting Policies [Table] Business Description And Significant Accounting Policies [Table] Quarterly Financial Information [Table Text Block] Quarterly Financial Information Represents information pertaining to restricted shares and restricted stock units. Operating Leases of Lessee Disclosure [Table Text Block] Schedule Of Future Minimum Lease Payments Required Under Non-cancelable Operating Lease Agreements Prepaid Expense, Current Weighted average discount rate applied to operating leases Schedule of Deferred Tax Assets and Liabilities [Table Text Block] Schedule Of Deferred Tax Assets And Liabilities Deferred Tax Liabilities, Other Prepaid expenses Increase (Decrease) in Prepaid Expense and Other Assets Other, net Prepaid expenses and other assets Trade Notes Receivable Interest Rate Stated Percentage Represents an annual effective interest rate of trade notes receivable. Trade notes receivable interest rate stated percentage Trade notes receivable repayment period Trade Notes Receivable Repayment Period Unrecognized Tax Benefits Current Represents the repayment period of trade notes receivable. Current portion of the unrecognized tax benefits Unrecognized tax benefits current Schedule of Effective Income Tax Rate Reconciliation [Table Text Block] Schedule Of Provision (Benefit) For Income Taxes Increase in operating lease liabilities for right of use assets Increase in Operating Lease Liabilities for Right of Use Assets Unrecognized tax benefit (as a percent) Amount of increase in operating lease liabilities for right of use assets. Effective Income Tax Rate Reconciliation Unrecognized Tax Benefit Inventory write down Inventory Write-down Demonstration inventories, net Other Inventory, Demo, Gross Accumulated amortization for demonstration inventories Accumulated Amortization Inventories Deferred Tax Assets Operating Lease Liabilities Amount of accumulated amortization for demonstration inventories. Schedule Of Income Before Income Taxes Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from operating lease liabilities. Operating lease liabilities Schedule of Changes in Estimated Warranty Liability Schedule of Product Warranty Liability [Table Text Block] Right-of-use assets (operating leases) Deferred Tax Liabilities Right of Use Assets Other Noncurrent Liabilities [Table Text Block] Amount of deferred tax consequences attributable to taxable temporary differences derived from Right-of-use assets. Effective Income Tax Rate Reconciliation, Earning and Dividends of Foreign Affiliate, Percent Other Noncurrent Liabilities Schedule of Accrued Liabilities [Table Text Block] Schedule of Accrued Expenses Effective Income Tax Rate Reconciliation, Earning and Dividends of Foreign Affiliate, Percent Schedule of Intangible Assets Schedule of Finite-Lived Intangible Assets [Table Text Block] Schedule of Equipment and Leasehold Improvements Property, Plant and Equipment [Table Text Block] Schedule of Inventory Components Schedule of Inventory, Current [Table Text Block] Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] Schedule of Net Income Per Basic and Diluted Shares Summary Of Pre-tax Equity Based Compensation Expense [Table Text Block] Summary Of Pre-tax Equity Based Compensation Expense [Table Text Block] Summary Of Pre-tax Equity Based Compensation Expense Schedule Of Stock Option Activity Fair Value Measurements for Marketable Securities and Foreign Exchange Forward Contracts Fair Value, Assets Measured on Recurring Basis [Table Text Block] Maximum Period in Which Accounts Receivable Become Due Schedule of Accumulated Other Comprehensive Loss Schedule of Marketable Securities Available-for-sale Securities [Table Text Block] Investment Type [Axis] New Accounting Pronouncements, Policy [Policy Text Block] Recent Accounting Developments Share-Based Compensation Share-based Compensation, Option and Incentive Plans Policy [Policy Text Block] Fair Value of Financial Instruments, Policy [Policy Text Block] Fair Value of Financial Instruments Net Income Per Share Earnings Per Share, Policy [Policy Text Block] Regulatory Income Taxes, Policy [Policy Text Block] Income Taxes Standard Product Warranty, Policy [Policy Text Block] Warranty Costs Advertising Costs, Policy [Policy Text Block] Advertising Costs Derivatives, Policy [Policy Text Block] Derivatives and Hedging Research, Development, and Computer Software, Policy [Policy Text Block] Research and Development Foreign Currency Transactions and Translations Policy [Policy Text Block] Foreign Currency Translation And Transactions Revenue Recognition, Policy [Policy Text Block] Revenue Recognition Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block] Long Lived Assets Patents Policy [Policy Text Block] Patents Policy [Policy Text Block] Patents Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block] Goodwill Business Combinations Policy [Policy Text Block] Business Combinations Schedule of Marketable Securities Classified As Cash Equivalents Property, Plant and Equipment, Policy [Policy Text Block] Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax, Portion Attributable to Parent Employees can purchase stock at the percentage rate of the lower of the market price on the first or last day of the offering period (as a percent) Equipment and Leasehold Improvements Inventory, Policy [Policy Text Block] Inventories Marketable Securities, Policy [Policy Text Block] Marketable Securities Cash and Cash Equivalents, Policy [Policy Text Block] Cash and Cash Equivalents Use of Estimates, Policy [Policy Text Block] Use of Estimates Segment Reporting, Policy [Policy Text Block] Percentage of dividends-received-deduction for foreign-source dividends received from 10%-or-more owned foreign corporations Segment Reporting Consolidation, Policy [Policy Text Block] Principles of Consolidation The percentage of dividends-received-deduction for foreign-source dividends received from 10%-or-more owned foreign corporations. Quarterly Financial Information [Text Block] QUARTERLY FINANCIAL INFORMATION (UNAUTDITED) QUARTERLY FINANCIAL INFORMATION (UNAUDITED) [Abstract] Commitments and Contingencies Disclosure [Text Block] CONTINGENCIES CONTINGENCIES [Abstract] REVENUE CONCENTRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS [Abstract] Compensation and Employee Benefit Plans [Text Block] 401(K) AND OTHER DEFINED CONTRIBUTION PLANS 401(K) AND OTHER DEFINED CONTRIBUTION PLANS [Abstract] Leases of Lessee Disclosure [Text Block] OPERATING LEASES OPERATING LEASES [Abstract] Income Tax Disclosure [Text Block] Available-for-sale Securities [Member] U.S. Government And Agency Obligations [Member] INCOME TAXES INCOME TAXES [Abstract] Goodwill Disclosure [Text Block] GOODWILL Percentage of Dividends Received Deduction for Foreign Source Dividends Received from 10 Percent or More Owned Foreign Corporations Benefit from Eliminating Previously Recorded Deferred Tax Liability for Undistributed Earnings GOODWILL [Abstract] Other Financial Statement Data [Abstract] NET INCOME PER SHARE Earnings Per Share [Text Block] NET INCOME PER SHARE [Abstract] SHARE-BASED COMPENSATION Disclosure of Compensation Related Costs, Share-based Payments [Text Block] SHARE-BASED COMPENSATION [Abstract] Fair Value Disclosures [Text Block] FAIR VALUE MEASUREMENTS FAIR VALUE MEASUREMENTS [Abstract] Amount of benefit from eliminating the previously recorded deferred tax liability for the undistributed earnings of the Singapore subsidiary. Benefit from eliminating previously recorded deferred tax liability for undistributed earnings OTHER COMPREHENSIVE INCOME (LOSS) Comprehensive Income (Loss) Note [Text Block] OTHER COMPREHENSIVE INCOME (LOSS) Derivative Instruments and Hedging Activities Disclosure [Text Block] DERIVATIVES DERIVATIVES [Abstract] Cash, Cash Equivalents, and Marketable Securities [Text Block] MARKETABLE SECURITIES MARKETABLE SECURITIES [Abstract] BUSINESS DESCRIPTION AND SIGNIFICANT ACCOUNTING POLICIES [Abstract] Represents the amount of tax payments related to shares withheld for share-based compensation plans. Minimum ownership percentage in foreign corporations for foreign-source dividends deduction Represents the minimum ownership percentage in foreign corporations for foreign-source dividends deduction. Number of shares related to tax payments of shares withheld for share-based compensation plans. Recognition of Deferred Tax Assets for Previously Unrecognized Excess Tax Benefits [Member] Represents information pertaining to change in accounting for employee share-based payment forfeitures. Stock Issued During Period, Shares, Employee Stock Purchase Plans Issuance of common stock under Employee Stock Purchase Plan, shares Earnings and dividends of foreign corporations (as a percent) Net Cash Provided by (Used in) Investing Activities, Continuing Operations [Abstract] Stock Issued During Period, Value, Employee Stock Purchase Plan Net Cash Provided by (Used in) Financing Activities, Continuing Operations [Abstract] Schedule of Revenues from External Customers and Long-Lived Assets [Table] Schedule Of A Reconciliation Of The Statutory Rate To The Effective Income Tax Rate Issuance of common stock under Employee Stock Purchase Plan Share issuances for director compensation, shares Stock Issued During Period, Shares, Share-based Compensation, Net of Forfeitures Share issuances for director compensation Stock Issued During Period, Value, Share-based Compensation, Net of Forfeitures Shares, Issued BALANCE, shares BALANCE, shares Increase (Decrease) in Stockholders' Equity [Roll Forward] Increase (Decrease) in Stockholders' Equity [Roll Forward] Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period Accounts Receivable and Allowance for Doubtful Accounts Statement [Line Items] Statement [Line Items] Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block] Schedule Of Stock Option Valuation Assumptions Retained Earnings [Member] Retained Earnings [Member] AOCI Attributable to Parent [Member] Stock issued during period, shares Accumulated Other Comprehensive Loss [Member] Common Stock [Member] Effective Income Tax Rate Reconciliation Expiring and Unrecognized Deferred Tax Attributes Common Stock [Member] Equity Component [Domain] Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, attributable to deferred warranty revenue. Equity Component [Domain] Schedule of Amounts Reclassified from Beginning Contract Liabilities to Revenue [Table Text Block] Equity Components [Axis] Summary of the amounts reclassified from beginning contract liabilities to revenue Tabular disclosure of the amounts reclassified from beginning contract liabilities to revenue. Equity Components [Axis] Statement [Table] Statement [Table] CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY [Abstract] Net increase in cash and cash equivalents Cash and Cash Equivalents, Period Increase (Decrease) Effect of Exchange Rate on Cash and Cash Equivalents Amounts reclassified from beginning contract liabilities and deferred warranty revenue to revenue. Schedule of Share-based Compensation, Stock Options, Activity [Table Text Block] Effects of exchange rate changes on cash and cash equivalents Net Cash Provided by (Used in) Financing Activities Net cash used in financing activities Proceeds from Stock Options Exercised Proceeds from exercise of stock options Net cash used in investing activities Net Cash Provided by (Used in) Investing Activities Payments to Acquire Intangible Assets Additions to patents Payments to Acquire Property, Plant, and Equipment Additions to equipment and leasehold improvements Proceeds from sale of available-for-sale marketable securities Proceeds from sales of marketable securities Net cash provided by operating activities Increase (Decrease) in Accrued Liabilities Accrued expenses Increase (Decrease) in Customer Advances Advance customer payments Increase (Decrease) in Accounts Payable Accounts payable Schedule of Components of Income Tax Expense (Benefit) [Table Text Block] Valuation Allowance Change in Amount Due to Non Utilization of Research and Development Tax Credits Increase (Decrease) in Inventories Valuation allowance change in amount due to non utilization of research and development tax credits Amount of increase (decrease) in the valuation allowance due to non-utilization of research and development tax credits. Inventories Accounts and trade notes receivable Increase (Decrease) in Accounts Receivable Increase (Decrease) in Operating Capital [Abstract] Changes in operating assets and liabilities: Share-based Compensation Share-based compensation Expiring and unrecognized deferred tax attributes (as a percent) Pre-tax share-based compensation expense Equity based compensation expense Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to expiring and unrecognized deferred tax attributes. Share-based Compensation Arrangement by Share-based Payment Award, Options, Expirations in Period Deferred Income Tax Expense (Benefit) Deferred taxes Total deferred Provision for Doubtful Accounts Provision (recovery) for doubtful accounts Depreciation, Depletion and Amortization Depreciation and amortization Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to unrecognized tax benefit. Options Outstanding, Expired, shares CONSOLIDATED STATEMENTS OF CASH FLOWS [Abstract] Total comprehensive income Comprehensive Income (Loss), Net of Tax, Attributable to Parent Other Comprehensive Income (Loss), Net of Tax Other comprehensive income, net of tax Total other comprehensive income (loss) after income taxes Other Comprehensive Income (Loss), Tax Income tax provision Other comprehensive income (loss), Tax Other Comprehensive Income (Loss), before Tax, Portion Attributable to Parent Total other comprehensive income (loss) before income taxes OTHER FINANCIAL STATEMENT DATA [Abstract] Schedule of Share-based Compensation, Restricted Stock Units Award Activity [Table Text Block] Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block] Schedule Of Cash Flow Hedges Schedule of Accumulated Other Comprehensive Income (Loss) [Table Text Block] Other Comprehensive Income (Loss), before Tax [Abstract] Other comprehensive income (loss), before tax: CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME [Abstract] Weighted Average Number of Shares Outstanding, Diluted Share-based compensation Weighted average shares outstanding – Diluted, shares Weighted Average Shares Outstanding, Dilutive, shares Weighted Average Number of Shares Outstanding, Basic Weighted average shares outstanding – Basic, shares Weighted Average Shares Outstanding, Basic, shares Earnings Per Share, Diluted Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract] Adjustments to reconcile net income to net cash provided by operating activities: Net income per share - Diluted (in usd per share) Per Share Amount, Dilutive (in usd per share) Net income (loss) per share - Diluted (in usd per share) Earnings Per Share, Basic Net income per share - Basic (in usd per share) Per Share Amount, Basic (in usd per share) Net income (loss) per share - Basic (in usd per share) Net income Net income (loss) Net income Net income Net Income (Loss) Attributable to Parent Income tax provision Total provision for income taxes Income Tax Expense (Benefit) Interest income and other, net Nonoperating Income (Expense) Operating Income (Loss) Income from operations Income (loss) from operations Selling, General and Administrative Expense Selling, general and administrative expenses Research and Development Expense Unrealized gains (losses) Research and development expenses Gross Profit Gross margin Gross margin Cost of Revenue Cost of revenues Net changes related to foreign exchange forward contracts: Unrealized gains (losses), Before Tax Schedule Of Non-Vested Restricted Stock Activity Revenues Revenues CONSOLIDATED STATEMENTS OF OPERATIONS [Abstract] Common Stock, Shares, Outstanding Common stock, shares outstanding, shares Common Stock, Shares, Issued Common stock, shares issued, shares Common Stock, Shares Authorized Common stock, shares authorized, shares Common Stock, No Par Value Common stock, par value (in usd per share) Preferred Stock, Shares Outstanding Preferred stock, shares outstanding, shares Preferred Stock, Shares Authorized Preferred stock, shares authorized, shares Preferred Stock, No Par Value Preferred stock, par value (in usd per share) Allowance for Doubtful Accounts Receivable, Current Accounts receivable, allowance for doubtful accounts Liabilities and Equity Total liabilities and stockholders’ equity Stockholders' Equity Attributable to Parent Total stockholders’ equity BALANCE Proceeds from Maturities, Prepayments and Calls of Available-for-sale Securities Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, before Tax BALANCE Retained Earnings (Accumulated Deficit) Retained earnings Accumulated Other Comprehensive Income (Loss), Net of Tax Balance at the end of period Balance at the beginning of period Total income before income taxes Accumulated other comprehensive loss Common Stock, Value, Issued Common stock, no par value, 25,000,000 shares authorized, 7,391,906 shares issued and outstanding at December 31, 2021 and 7,294,617 shares issued and outstanding at December 31, 2020 Preferred stock, no par value, 5,000,000 shares authorized, none outstanding Preferred Stock, Value, Issued Stockholders' Equity Attributable to Parent [Abstract] Stockholders’ equity: Commitments and Contingencies Commitments and contingencies Liabilities Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost Total liabilities Reserve for income taxes Accrued Income Taxes, Noncurrent Other Liabilities, Noncurrent Other liabilities Other liabilities Liabilities, Current Total current liabilities Accrued Liabilities, Current Accrued expenses Accrued expenses Retirement Plan Name [Domain] Retirement Plan Name [Axis] Accounts Payable, Current Accounts payable Retirement savings plan pursuant to Section 401(k) [Member] Represents information pertaining to retirement savings plan pursuant to Section 401(k) of the Internal Revenue Code (the Code). Liabilities and Equity [Abstract] LIABILITIES AND STOCKHOLDERS’ EQUITY Assets Represents information pertaining to defined contribution retirement savings plans in the United Kingdom. Retirement Savings Plan Section 401k [Member] Total assets Defined Contribution Retirement Savings Plans [Member] Defined contribution retirement savings plans in the United Kingdom [Member] Other Assets, Noncurrent Other assets Goodwill Goodwill Goodwill Intangible Assets, Net (Excluding Goodwill) Intangibles, net Property, Plant and Equipment, Net Proceeds from maturities of available-for-sale marketable securities Equipment and leasehold improvements, net Equipment and leasehold improvements, net Available-for-sale Securities, Continuous Unrealized Loss Position, Less than Twelve Months, Fair Value Marketable Securities, Noncurrent Revenue deferrals Extended Product Warranty Accrual, Increase for Warranties Issued Number of quarterly installments in which awards will vest Number of Quarterly Installments In Which Awards Will Vest Marketable securities, long-term Assets, Current Total current assets Other Assets, Current Other current assets Inventory, Net Total inventories Inventories Accounts Receivable, Net, Current Accounts receivable Accounts receivable, less allowance for doubtful accounts of $355 at December 31, 2021 and $302 at December 31, 2020 Marketable Securities, Current Marketable securities Cash and Cash Equivalents, at Carrying Value Cash and cash equivalents – end of period Cash and cash equivalents – beginning of period Cash and cash equivalents Assets [Abstract] ASSETS CONSOLIDATED BALANCE SHEETS [Abstract] Entity Voluntary Filers Entity Voluntary Filers Entity Well-known Seasoned Issuer Entity Well-known Seasoned Issuer Entity Public Float Available-for-sale Securities, Continuous Unrealized Loss Position, Twelve Months or Longer, Fair Value Entity Public Float Entity Current Reporting Status Entity Current Reporting Status Entity Common Stock, Shares Outstanding Entity Common Stock, Shares Outstanding Entity Filer Category Entity Filer Category Available-for-sale Securities, Continuous Unrealized Loss Position, Accumulated Loss [Abstract] In Unrealized Loss Position For Less Than 12 Months In Unrealized Loss Position For Greater Than 12 Months In Unrealized Loss Position For Greater Than 12 Months Current Fiscal Year End Date Current Fiscal Year End Date Entity Central Index Key Available-for-sale Securities, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss Entity Central Index Key Entity Registrant Name US Treasury and Government [Member] The number of quarterly installments in which awards will vest. Entity Registrant Name Document Fiscal Year Focus Document Fiscal Year Focus Document Fiscal Period Focus Document Fiscal Period Focus Document Period End Date Document Period End Date Amendment Flag Amendment Flag Document Type Document Type Document and Entity Information [Abstract] Foreign Currency Cash Flow Hedge Gain (Loss) Reclassified to Earnings, Net Document And Entity Information [Abstract] Customer One [Member]. Customer One [Member] Significant Customer B [Member] Customer Two [Member]. Recognized foreign currency transactions gain (loss) Foreign Currency Transaction Gain (Loss), before Tax Tax Payments Related to Shares with held for Share Based Compensation Plans Tax payments related to shares withheld for share-based compensation plans Effects on Future Earnings and Cash Flows Resulting from Exit Plan [Line Items] Accounts Receivable, after Allowance for Credit Loss Unusual or Infrequent Items, or Both, Disclosure [Text Block] Program [Axis] Jobs Support Program [Member] Program [Domain] Jobs Support Program [Member] Represents the information pertaining to jobs support program that is intended to support businesses and encourage retention of employees during the period of economic uncertainty caused by the Covid-19 pandemic. Reduced Employee Expenses [Member] Effects on Future Earnings and Cash Flows, by Type of Effect [Domain] Reduced Employee Expenses [Member] Operating Expenses Operating expenses Effects on Future Earnings and Cash Flows Resulting from Exit Plan [Line Items] COVID-19 PANDEMIC COVID-19 PANDEMIC Comprehensive Income Comprehensive Income, Policy [Policy Text Block] Net pre-tax unrealized gains Metrology Products and Services [Member]. Metrology Products and Services [Member] Disclosure of accounting policy for related party transactions. Related Party Transactions Related Party Transactions [Policy Text Block] Non Employee Director Stock Plan [Member]. Non Employee Director Stock Plan [Member] Repurchase of common stock, shares Repurchase of common stock Authorized share repurchase amount Available-for-sale Securities, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss Available-for-sale Securities, Continuous Unrealized Loss Position, Fair Value [Table Text Block] Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number Stock Repurchased and Retired During Period, Shares Stock Repurchase Program, Authorized Amount Share Repurchase [Text Block] Grant date fair value (in dollars per share) Aggregate intrinsic value of stock options exercised SHARE REPURCHASES Tax payments related to shares withheld for share-based compensation plans Foreign currency translation adjustments, Tax Effect Payments Related to Tax Withholding for Share-based Compensation Gross Unrealized Losses Fair Value Schedule of Available-for-sale Securities [Line Items] Unrealized Loss Position [Line Items] Schedule of Available-for-sale Securities [Table] Common stock Accounting Standards Update 2016-09 [Member] Excess tax benefit from the exercise of stock options New Accounting Pronouncements or Change in Accounting Principle [Line Items] Represents information pertaining to change in accounting for stock option forfeitures. Change in accounting for stock option forfeitures [Member] Change in Accounting for Stock Option Forfeitures [Member] Adjustments for Change in Accounting Principle [Domain] Adjustments for Change in Accounting Principle [Axis] Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block] Cumulative effect adjustment of accumulated other comprehensive income [Member] SINGAPORE Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Percent Common stock repurchases Payments for Repurchase of Common Stock Other Increases (Decreases) Charged to Costs and Expenses Balance at end of Period Valuation Allowances and Reserves, Balance Schedule of valuation and qualifying Allowance for deferred taxes Allowance for obsolete inventory Debt Securities, Available-for-sale, Accumulated Gross Unrealized Gain, before Tax Valuation Allowances and Reserves, Deductions Effects on Future Earnings and Cash Flows Resulting from Exit Plan [Axis] Reclassification from Accumulated Other Comprehensive Income, Current Period, before Tax Schedule of Effects on Future Earnings and Cash Flows Resulting from Exit Plan [Table] Net Cash Provided by (Used in) Operating Activities, Continuing Operations [Abstract] Common stock reserved for issuance pursuant to outstanding awards In Unrealized Loss Position For Less Than 12 Months Available-for-sale Securities, Continuous Unrealized Loss Position, Fair Value [Abstract] Valuation Allowances and Reserves, Additions for Charges to Cost and Expense Balance at Beginning of Period Valuation and Qualifying Accounts Disclosure [Line Items] Valuation Allowance of Deferred Tax Assets [Member] Inventory Valuation Reserve [Member] Valuation Allowances and Reserves [Domain] Valuation Allowances and Reserves Type [Axis] Valuation and Qualifying Accounts Disclosure [Table] Schedule of valuation and qualifying Schedule of Valuation and Qualifying Accounts Disclosure [Text Block] SCHEDULE OF VALUATION AND QUALIFYING ACCOUNTS [Abstract] New Accounting Pronouncements or Change in Accounting Principle [Table] After tax net unrealized loss recorded in accumulated other comprehensive loss reclassified to earnings Change In Accounting For Employee Share Based Payment Forfeitures [Member] Significant Customer C [Member] Customer Three [Member]. Customer Three [Member] Significant Customer A [Member] Customer Two [Member] Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period Organization, Consolidation and Presentation of Financial Statements Disclosure and Significant Accounting Policies [Text Block] Earnings per share, potentially dilutive shares (in shares) Schedule of Cash Flow Hedging Instruments, Statements of Financial Performance and Financial Position, Location [Table Text Block] Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount Gain (Loss) on Investments [Line Items] Gain (Loss) on Investments [Line Items] Unrealized loss on effective portion of foreign exchange forward contracts, net Accumulated Other Comprehensive Income (Loss), Cumulative Changes in Net Gain (Loss) from Cash Flow Hedges, Effect Net of Tax Pretax Loss Recognized in Earnings on Effective Portion of Derivative as a Result of Reclassification from Accumulated Other Comprehensive Loss Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net Share-based Compensation Arrangement by Share-based Payment Award, Number of Additional Shares Authorized Foreign currency translation adjustments, Tax Risk-free interest rates Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent Foreign currency translation adjustments, Net of Tax Amount Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent Valuation allowance (as a percent) Additions based on tax positions related to the current year Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions Fair value of shares vested Accounts receivable allowance Options Outstanding, Granted, shares Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant Options Outstanding, Forfeited, shares Options Outstanding, Exercisable, End of period, shares Expected life in years Dividend yield Expected volatility Weighted average fair value on grant date Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent Share-Based Compensation Arrangement By Share-Based Payment Award, Options, Granted To Non-Employee Directors Upon Re-election, Per Director Share-Based Compensation Arrangement By Share-Based Payment Award, Options, Granted To Non-Employee Directors Upon Re-election, Per Director Number of shares granted for non-employee directors upon re-election, per director Weighted average remaining contractual term (in years) Shares, Vested Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term Share-Based Compensation Arrangement By Share-Based Payment Award, Options, Granted To Non-Employee Directors Upon Re-election Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-based Compensation Cost, Percent Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent Foreign rate difference (as a percent) Shares, Forfeited Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions Reductions due to lapse of applicable statute of limitations Share-Based Compensation Arrangement By Share-Based Payment Award, Options, Granted To Non-Employee Directors Upon Re-election Options granted to non-employee directors upon re-election Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Fair Value Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Fair Value Weighted-Average Exercise Price Per Share, Granted (in usd per share) Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value Weighted average remaining contractual term for exercisable options (in years) Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Intrinsic Value Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercised Intrinsic Value Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercised Intrinsic Value Shares, Non-vested at December 31, 2020 Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period Weighted Average Grant Date Fair Value, Granted (in usd per share) Weighted average grant date fair value, granted (in usd per share) Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Exercise Price Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized Unrecognized equity based compensation weighted average period (in years) Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, Period for Recognition Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward] Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward] Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract] Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract] Weighted-Average Exercise Price Per Share, Outstanding, Beginning of period (in usd per share) Weighted-Average Exercise Price Per Share, Outstanding, End of period (in usd per share) Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price Weighted-Average Exercise Price Per Share, Exercised (in usd per share) Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price Weighted-Average Exercise Price Per Share, Expired (in usd per share) Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Accrued Liabilities Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Warranty Reserves Share Based Compensation Arrangement By Share Based Payment Award Options Expired In Period Weighted Average Exercise Price Share Based Compensation Arrangement By Share Based Payment Award Options Expired In Period Weighted Average Exercise Price Weighted-Average Exercise Price Per Share, Forfeited (in usd per share) Share-based Compensation Arrangements by Share-based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price Marketable Securities Classified As Cash Equivalents, Unrealized Gains Marketable Securities Classified As Cash Equivalents, Unrealized Losses Options granted in period, fair value Weighted-Average Exercise Price Per Share, Exercisable, End of period (in usd per share) Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Exercise Price Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Risk Free Interest Rate Aggregate intrinsic value of exercised stock options Earnings and dividends of foreign affiliate (as a percent) Minimum Ownership Percentage in Foreign Corporations for Foreign Source Dividends Deduction Shares, Non-vested at December 31, 2019 Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Volatility Rate Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Dividend Rate Share-based compensation (as a percent) Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward] Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward] Unvested shares Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Allowance for Doubtful Accounts Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract] Pretax Gain (Loss) Recognized in Other Comprehensive Income (Loss) on Effective Portion of Derivative Revenue, Initial Application Period Cumulative Effect Transition [Table] Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract] Weighted Average Grant Date Fair Value, Non-vested at December 31, 2019 (in usd per share) Weighted Average Grant Date Fair Value, Non-vested at December 31, 2020 (in usd per share) Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period Weighted Average Grant Date Fair Value, Vested (in usd per share) Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value Weighted Average Grant Date Fair Value, Forfeited (in usd per share) Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Number of Shares Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward] The Effect of the Reclassification from Other Comprehensive Income (Loss) to Earnings Schedule of Amounts Recognized in Other Comprehensive Income (Loss) [Table Text Block] Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward] Amortization period of incremental costs of obtaining a contract, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Represents period for the value of unsatisfied performance obligations which are not disclosed. Period Between When Entity Transfer Promised Good or Service to Customer and When Customer Pays for That Good or Service Period between when entity transfer a promised good or service to a customer and when the customer pays for that good or service, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Period between when entity transfer a promised good or service to a customer and when the customer pays for that good or service Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to Global Intangible Low Tax Income. Tax Payments Related to Shares Withheld for Share Based Compensation Plans Shares Difference between Revenue Guidance in Effect before and after Topic 606 [Member] Share-based compensation Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Employee Service Share-based Compensation, Tax Benefit from Exercise of Stock Options Schedule of Unrealized Loss Position Summary Of A Reconciliation Of The Beginning And Ending Amount Of Gross Unrecognized Tax Benefits ("UTB") Available-for-sale Equity Securities, Accumulated Gross Unrealized Loss, before Tax Tax payments related to shares withheld for share-based compensation plans, shares Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number Reclassifications adjustments from other comprehensive income Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-based Payment Arrangement, Amount Effective tax rate reconciliation, Excess tax expenses (benefits) from employee stock option exercises and vesting of restricted stock units and restricted shares, Amount Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period Share-based Compensation Arrangement by Share-based Payment Award, Non-Option Equity Instruments, Forfeitures and Expirations Number of stock options expired or were forfeited Number of restricted shares or restricted stock units expired or were forfeited Unrealized gains (losses) on available-for-sale securities Other Comprehensive Income (Loss), Unrealized Holding Gain (Loss) on Securities Arising During Period, before Tax Proceeds, Issuance of Shares, Share-based Payment Arrangement, Excluding Option Exercised Proceeds from issuance of common stock under employee stock purchase plan Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to singapore jobs support program. Customer Four [Member] Customer Four [Member]. Significant Customer D [Member] Auditor Name Auditor Firm ID Auditor Location Amortization Expense Related to Demonstration Inventories Amortization expense related to demonstration inventories The amount of amortization expense on defective merchandise arising from demonstration inventories. Other Comprehensive Income (Loss), Available-for-sale Securities Adjustment, before Tax, Portion Attributable to Parent Other Comprehensive Income (Loss), Available-for-sale Securities, Tax, Portion Attributable to Parent Other Comprehensive Income (Loss), Available-for-sale Securities Adjustment, Net of Tax, Portion Attributable to Parent Other comprehensive income (loss), Tax Effect Other comprehensive income (loss), Net of Tax Amount Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent Unrealized gains on available-for-sale securities, Before Tax Unrealized gains on available-for-sale securities, Tax Effect Unrealized gains on available-for-sale securities, Net of Tax Amount Other Comprehensive Income (Loss), Tax, Portion Attributable to Parent Other comprehensive loss for the period Unrealized (gain) loss on available for sale equity security Equity Securities, FV-NI, Unrealized Gain (Loss) Geographic Concentration Risk [Member] Non-US [Member] Accounts Receivable, Related Parties Accounts receivable due from related party sales EX-101.SCH 6 cybe-20211231.xsd SCHEMA 0001000 - Document - Document And Entity Information link:presentationLink link:definitionLink link:calculationLink 1001000 - Statement - Consolidated Balance Sheets link:presentationLink link:definitionLink link:calculationLink 1001501 - Statement - Consolidated Balance Sheets (Parenthetical) link:presentationLink link:definitionLink link:calculationLink 1002000 - Statement - Consolidated Statements Of Operations link:presentationLink link:definitionLink link:calculationLink 1003000 - Statement - Consolidated Statements Of Comprehensive Income link:presentationLink link:definitionLink link:calculationLink 1004000 - Statement - Consolidated Statements Of Cash Flows link:presentationLink link:definitionLink link:calculationLink 1005000 - Statement - Consolidated Statements Of Stockholders' Equity link:presentationLink link:definitionLink link:calculationLink 2101100 - Disclosure - Business Description And Significant Accounting Policies link:presentationLink link:definitionLink link:calculationLink 2102100 - Disclosure - Covid-19 pandemic link:presentationLink link:definitionLink link:calculationLink 2103100 - Disclosure - Revenue Recognition link:presentationLink link:definitionLink link:calculationLink 2104100 - Disclosure - Marketable Securities link:presentationLink link:definitionLink link:calculationLink 2105100 - Disclosure - Derivatives link:presentationLink link:definitionLink link:calculationLink 2106100 - Disclosure - Other Comprehensive Income (Loss) link:presentationLink link:definitionLink link:calculationLink 2107100 - Disclosure - Fair Value Measurements link:presentationLink link:definitionLink link:calculationLink 2108100 - Disclosure - Share-Based Compensation link:presentationLink link:definitionLink link:calculationLink 2109100 - Disclosure - Net Income Per Share link:presentationLink link:definitionLink link:calculationLink 2110100 - Disclosure - Other Financial Statement Data link:presentationLink link:definitionLink link:calculationLink 2111100 - Disclosure - Goodwill link:presentationLink link:definitionLink link:calculationLink 2112100 - Disclosure - Income Taxes link:presentationLink link:definitionLink link:calculationLink 2113100 - Disclosure - Operating Leases link:presentationLink link:definitionLink link:calculationLink 2114100 - Disclosure - 401(K) and Other Defined Contribution Plans link:presentationLink link:definitionLink link:calculationLink 2115100 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas link:presentationLink link:definitionLink link:calculationLink 2116100 - Disclosure - Share Repurchases link:presentationLink link:definitionLink link:calculationLink 2117100 - Disclosure - Contingencies link:presentationLink link:definitionLink link:calculationLink 2118100 - Disclosure - Quarterly Financial Information (Unaudited) link:presentationLink link:definitionLink link:calculationLink 2120100 - Disclosure - Schedule of valuation and qualifying link:presentationLink link:definitionLink link:calculationLink 2201201 - Disclosure - Business Description And Significant Accounting Policies (Policies) link:presentationLink link:definitionLink link:calculationLink 2303301 - Disclosure - Revenue Recognition (Tables) link:presentationLink link:definitionLink link:calculationLink 2304301 - Disclosure - Marketable Securities (Tables) link:presentationLink link:definitionLink link:calculationLink 2305301 - Disclosure - Other Comprehensive Income (Loss) (Tables) link:presentationLink link:definitionLink link:calculationLink 2306301 - Disclosure - Fair Value Measurements (Tables) link:presentationLink link:definitionLink link:calculationLink 2307301 - Disclosure - Share-Based Compensation (Tables) link:presentationLink link:definitionLink link:calculationLink 2308301 - Disclosure - Net Income Per Share (Tables) link:presentationLink link:definitionLink link:calculationLink 2309301 - Disclosure - Other Financial Statement Data (Tables) link:presentationLink link:definitionLink link:calculationLink 2310301 - Disclosure - Income Taxes (Tables) link:presentationLink link:definitionLink link:calculationLink 2311301 - Disclosure - Operating Leases (Tables) link:presentationLink link:definitionLink link:calculationLink 2313301 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Tables) link:presentationLink link:definitionLink link:calculationLink 2316301 - Disclosure - Quarterly Financial Information (Unaudited) (Tables) link:presentationLink link:definitionLink link:calculationLink 2318301 - Disclosure - Derivatives (Tables) link:presentationLink link:definitionLink link:calculationLink 2401402 - Disclosure - Business Description And Significant Accounting Policies (Details) link:presentationLink link:definitionLink link:calculationLink 2401403 - Disclosure - Business Description And Significant Accounting Policies (Details 2) link:presentationLink link:definitionLink link:calculationLink 2402401 - Disclosure - Covid-19 Pandemic (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2403402 - Disclosure - Revenue Recognition (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2403403 - Disclosure - Revenue Recognition (Summary Of Revenue Performance Obligations) (Details) link:presentationLink link:definitionLink link:calculationLink 2403404 - Disclosure - Revenue Recognition (Summary Of Contract Assets And Contract Liabilities) (Details) link:presentationLink link:definitionLink link:calculationLink 2403405 - Disclosure - Revenue Recognition (Summary of the amounts reclassified from beginning contract liabilities to revenue) (Details) link:presentationLink link:definitionLink link:calculationLink 2404401 - Disclosure - Marketable Securities (Schedule Of Marketable Securities) (Details) link:presentationLink link:definitionLink link:calculationLink 2404402 - Disclosure - Marketable Securities (Schedule Of Unrealized Loss Position) (Details) link:presentationLink link:definitionLink link:calculationLink 2404403 - Disclosure - Marketable Securities (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2404405 - Disclosure - Marketable Securities (Schedule Of Marketable Securities Classified As Cash Equivalents) (Details) link:presentationLink link:definitionLink link:calculationLink 2405401 - Disclosure - Other Comprehensive Income (Loss) (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2405402 - Disclosure - Other Comprehensive Income (Loss) (Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss)) (Details) link:presentationLink link:definitionLink link:calculationLink 2405403 - Disclosure - Other Comprehensive Income (Loss) (Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss)) (Details) (Calc 2) link:presentationLink link:definitionLink link:calculationLink 2405404 - Disclosure - Other Comprehensive Income (Loss) (Schedule of Accumulated Comprehensive Income (Loss)) (Details) link:presentationLink link:definitionLink link:calculationLink 2406402 - Disclosure - Fair Value Measurements (Fair Value Measurements For Marketable Securities And Foreign Exchange Forward Contracts) (Details) link:presentationLink link:definitionLink link:calculationLink 2406403 - Disclosure - Fair Value Measurements (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2407402 - Disclosure - Share-Based Compensation (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2407403 - Disclosure - Share-Based Compensation (Schedule Of Stock Option Activity) (Details) link:presentationLink link:definitionLink link:calculationLink 2407404 - Disclosure - Share-Based Compensation (Schedule Of Stock Option Valuation Assumptions) (Details) link:presentationLink link:definitionLink link:calculationLink 2407405 - Disclosure - Share-Based Compensation (Schedule Of Non-Vested Restricted Stock Activity) (Details) link:presentationLink link:definitionLink link:calculationLink 2407406 - Disclosure - Share-Based Compensation (Summary Of Pre-tax Equity Based Compensation Expense) (Details) link:presentationLink link:definitionLink link:calculationLink 2408402 - Disclosure - Net Income Per Share (Schedule Of Net Income Per Basic And Diluted Shares) (Details) link:presentationLink link:definitionLink link:calculationLink 2408403 - Disclosure - Net Income Per Share (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2409402 - Disclosure - Other Financial Statement Data (Schedule Of Inventory Components) (Details) link:presentationLink link:definitionLink link:calculationLink 2409403 - Disclosure - Other Financial Statement Data (Schedule Of Equipment And Leasehold Improvements) (Details) link:presentationLink link:definitionLink link:calculationLink 2409404 - Disclosure - Other Financial Statement Data (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2409405 - Disclosure - Other Financial Statement Data (Schedule Of Intangible Assets) (Details) link:presentationLink link:definitionLink link:calculationLink 2409406 - Disclosure - Other Financial Statement Data (Schedule Of Amortization Expense For Intangible Assets) (Details) link:presentationLink link:definitionLink link:calculationLink 2409407 - Disclosure - Other Financial Statement Data (Schedule of Accrued Expenses) (Details) link:presentationLink link:definitionLink link:calculationLink 2409408 - Disclosure - Other Financial Statement Data (Schedule of Other Liabilities) (Details) link:presentationLink link:definitionLink link:calculationLink 2409409 - Disclosure - Other Financial Statement Data (Schedule Of Changes In Estimated Warranty Liability) (Details) link:presentationLink link:definitionLink link:calculationLink 2409410 - Disclosure - Other Financial Statement Data (Schedule Of Changes In Deferred Warranty Revenue) (Details) link:presentationLink link:definitionLink link:calculationLink 2410401 - Disclosure - Goodwill (Details) link:presentationLink link:definitionLink link:calculationLink 2410402 - Disclosure - Income Taxes (Schedule Of Income Before Income Taxes) (Details) link:presentationLink link:definitionLink link:calculationLink 2410403 - Disclosure - Income Taxes (Schedule Of Provision (Benefit) For Income Taxes) (Details) link:presentationLink link:definitionLink link:calculationLink 2410404 - Disclosure - Income Taxes (Schedule Of A Reconciliation Of The Statutory Rate To The Effective Income Tax Rate) (Details) link:presentationLink link:definitionLink link:calculationLink 2410405 - Disclosure - Income Taxes (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2410406 - Disclosure - Income Taxes (Summary Of A Reconciliation Of The Beginning And Ending Amount Of Gross Unrecognized Tax Benefits ("UTB")) (Details) link:presentationLink link:definitionLink link:calculationLink 2410407 - Disclosure - Income Taxes (Schedule Of Deferred Tax Assets And Liabilities) (Details) link:presentationLink link:definitionLink link:calculationLink 2411400 - Disclosure - Operating Leases (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2411401 - Disclosure - Operating Leases (Schedule of components of our costs for operating leases) (Details) link:presentationLink link:definitionLink link:calculationLink 2411402 - Disclosure - Operating Leases (Schedule of the future maturities of lease liabilities) (Details) link:presentationLink link:definitionLink link:calculationLink 2411408 - Disclosure - Operating Leases (Schedule Of Future Minimum Lease Payments Required Under Non-cancelable Operating Lease Agreements) (Details) link:presentationLink link:definitionLink link:calculationLink 2412401 - Disclosure - 401(K) and Other Defined Contribution Plans (Details) link:presentationLink link:definitionLink link:calculationLink 2413402 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Summary Of Revenue By Product Line) (Details) link:presentationLink link:definitionLink link:calculationLink 2413404 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2413405 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Revenue By Geographic Area) (Details) link:presentationLink link:definitionLink link:calculationLink 2413406 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Long-lived Assets Attributable To Each Geographic Area's Operations) (Details) link:presentationLink link:definitionLink link:calculationLink 2414401 - Disclosure - Share Repurchases (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2418401 - Disclosure - Schedule of valuation and qualifying (Details) link:presentationLink link:definitionLink link:calculationLink 2419402 - Disclosure - Derivatives (Narrative) (Details) link:presentationLink link:definitionLink link:calculationLink 2419403 - Disclosure - Derivatives (Schedule Of Cash Flow Hedges) (Details) link:presentationLink link:definitionLink link:calculationLink EX-21 7 ex21_1.htm EXHIBIT 21
Exhibit 21
SUBSIDIARIES
Name
 
Jurisdiction of Formation
 
 
 
CyberOptics Ltd.
 
United Kingdom
 
 
 
CyberOptics Holdings Ltd.
 
United Kingdom
 
 
 
CyberOptics (Singapore) Pte. Ltd
 
Singapore
 
 
 
CyberOptics (China) Co., Ltd.
 
People’s Republic of China
 
 
 
CyberOptics Taiwan Branch

Taiwan



Cybe Malaysia Sdn. Bhd.

Malaysia







EX-23.1 8 ex231_2.htm EXHIBIT 23.1
Exhibit 23.1

Consent of Independent Registered Public Accounting Firm

 

CyberOptics Corporation

Minneapolis, Minnesota

We hereby consent to the incorporation by reference in the Registration Statements on Forms S-8 (File No. 333-230209, File No. 333-211553, File No. 333-183296, File No. 333-176196, and File No. 333-103310) of CyberOptics Corporation of our report dated March 11, 2022, relating to the consolidated financial statements of CyberOptics Corporation which appears in this Form 10-K.


/s/ BDO USA, LLP


Minneapolis, Minnesota

March 11, 2022





EX-31.1 9 ex311_3.htm EXHIBIT 31.1
Exhibit 31.1
I, Subodh Kulkarni, certify that:

1.
I have reviewed this Annual Report on Form 10-K of CyberOptics Corporation.
   
2.
Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;
    
3.
Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;

4.
The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:
   
(a)
Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;
   
(b)
Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;
   
(c)
Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and
 
(d)
Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and
 
5.
The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions):
 
(a)
All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and
 
(b)
Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

Date: March 11, 2022
 
/s/ Subodh Kulkarni
 
Signature
 
Name: Subodh Kulkarni
 
Title:   President and CEO

EX-31.2 10 ex312_4.htm EXHIBIT 31.2
Exhibit 31.2
I, Jeffrey A. Bertelsen, certify that:

1.
I have reviewed this Annual Report on Form 10-K of CyberOptics Corporation.
   
2.
Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;
   
3.
Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;
   
4.
The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:
   
(a)
Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;
   
(b)
Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;
   
(c)
Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and
 
(d)
Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and
 
5.
The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions):
   
(a)
All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and
   
(b)
Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.
 
Date: March 11, 2022
 
/s/ Jeffrey A. Bertelsen
 
Signature
 
Name: Jeffrey A. Bertelsen
 
Title:   Vice President, CFO and COO

EX-32 11 ex32_5.htm EXHIBIT 32
Exhibit 32
CERTIFICATION PURSUANT TO
18 U.S.C. §1350,
AS ADOPTED PURSUANT TO
SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002
In connection with the Annual Report of CyberOptics Corporation (the “Company”) on Form 10-K for the year ended December 31, 2021 as filed with the Securities and Exchange Commission on or about the date hereof (the “Report”), the undersigned, Subodh Kulkarni, Chief Executive Officer, and Jeffrey A. Bertelsen, Chief Financial Officer of the Company, each certify, pursuant to 18 U.S.C. §1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that:
   
1.
The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and
   
2.
The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.
 
/s/ Subodh Kulkarni
 
Subodh Kulkarni
 
President and CEO
 
March 11, 2022
 
 
 
/s/ Jeffrey A. Bertelsen
 
Jeffrey A. Bertelsen
 
Vice President, CFO and COO
 
March 11, 2022
END OF FILING



XML 12 R1.htm IDEA: XBRL DOCUMENT v3.22.0.1
Document And Entity Information - USD ($)
12 Months Ended
Dec. 31, 2021
Feb. 28, 2022
Jun. 30, 2021
Document And Entity Information [Abstract]      
Document Type 10-K    
Amendment Flag false    
Document Period End Date Dec. 31, 2021    
Document Fiscal Period Focus FY    
Document Fiscal Year Focus 2021    
Entity Registrant Name CYBEROPTICS CORP    
Entity Central Index Key 0000768411    
Current Fiscal Year End Date --12-31    
Entity Filer Category Non-accelerated Filer    
ICFR Auditor Attestation Flag false    
Entity Common Stock, Shares Outstanding   7,402,683  
Entity Current Reporting Status Yes    
Entity Public Float     $ 288,262,267
Entity Well-known Seasoned Issuer No    
Entity Voluntary Filers No    
Entity Small Business true    
Entity Emerging Growth Company false    
Entity Shell Company false    
Entity File Number 0-16577    
Entity Incorporation, State or Country Code MN    
Entity Tax Identification Number 41-1472057    
Entity Address, Address Line One 5900 Golden Hills Drive    
Entity Address, City or Town MINNEAPOLIS    
Entity Address, State or Province MN    
Entity Address, Postal Zip Code 55416    
City Area Code (763)    
Local Phone Number 542-5000    
Entity Interactive Data Current Yes    
Title of 12(g) Security Common Stock, no par value    
Trading Symbol CYBE    
Security Exchange Name NASDAQ    
Document Annual Report true    
Document Transition Report false    
Auditor Name BDO USA, LLP    
Auditor Firm ID 243    
Auditor Location Minneapolis, Minnesota    
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.22.0.1
Consolidated Balance Sheets - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
ASSETS    
Cash and cash equivalents $ 13,684 $ 8,399
Marketable securities 7,327 8,121
Accounts receivable, less allowance for doubtful accounts of $355 at December 31, 2021 and $302 at December 31, 2020 19,821 14,735
Inventories 27,602 20,271
Prepaid expenses 808 686
Other current assets 864 890
Total current assets 70,106 53,102
Marketable securities, long-term 17,281 14,052
Equipment and leasehold improvements, net 3,174 3,235
Intangibles, net 375 325
Goodwill 1,366 1,366
Right-of-use assets (operating leases) 2,052 2,621
Trade notes receivable, long-term 0 418
Deferred tax assets 3,668 4,597
Total assets 98,022 79,716
LIABILITIES AND STOCKHOLDERS’ EQUITY    
Accounts payable 10,275 5,118
Advance customer payments 599 823
Accrued expenses 4,418 3,893
Current operating lease liabilities 864 819
Total current liabilities 16,156 10,653
Other liabilities 177 134
Long-term operating lease liabilities 2,369 3,244
Reserve for income taxes 214 157
Total liabilities 18,916 14,188
Commitments and contingencies
Stockholders’ equity:    
Preferred stock, no par value, 5,000,000 shares authorized, none outstanding 0 0
Common stock, no par value, 25,000,000 shares authorized, 7,391,906 shares issued and outstanding at December 31, 2021 and 7,294,617 shares issued and outstanding at December 31, 2020 39,052 37,817
Accumulated other comprehensive loss (1,510) (1,102)
Retained earnings 41,564 28,813
Total stockholders’ equity 79,106 65,528
Total liabilities and stockholders’ equity $ 98,022 $ 79,716
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.22.0.1
Consolidated Balance Sheets (Parenthetical) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
CONSOLIDATED BALANCE SHEETS [Abstract]    
Accounts receivable, allowance for doubtful accounts $ 355 $ 302
Preferred stock, par value (in usd per share)
Preferred stock, shares authorized, shares 5,000,000 5,000,000
Preferred stock, shares outstanding, shares 0 0
Common stock, par value (in usd per share)
Common stock, shares authorized, shares 25,000,000 25,000,000
Common stock, shares issued, shares 7,391,906 7,294,617
Common stock, shares outstanding, shares 7,391,906 7,294,617
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.22.0.1
Consolidated Statements Of Operations - USD ($)
shares in Thousands, $ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
CONSOLIDATED STATEMENTS OF OPERATIONS [Abstract]    
Revenues $ 92,774 $ 70,117
Cost of revenues 49,608 38,900
Gross margin 43,166 31,217
Research and development expenses 10,857 9,572
Selling, general and administrative expenses 17,973 15,648
Income from operations 14,336 5,997
Interest income and other, net 159 357
Total income before income taxes 14,495 6,354
Income tax provision 1,744 612
Net income $ 12,751 $ 5,742
Net income per share - Basic (in usd per share) $ 1.74 $ 0.8
Net income per share - Diluted (in usd per share) $ 1.69 $ 0.77
Weighted average shares outstanding – Basic, shares 7,320 7,215
Weighted average shares outstanding – Diluted, shares 7,537 7,454
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.22.0.1
Consolidated Statements Of Comprehensive Income - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME [Abstract]    
Net income $ 12,751 $ 5,742
Other comprehensive income (loss), before tax:    
Foreign currency translation adjustments, Before Tax (193) 190
Unrealized gains (losses) on available-for-sale securities (272) 145
Total other comprehensive income (loss) before income taxes (465) 335
Income tax provision (57) 31
Total other comprehensive income (loss) after income taxes (408) 304
Total comprehensive income $ 12,343 $ 6,046
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.22.0.1
Consolidated Statements Of Cash Flows - USD ($)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
CASH FLOWS FROM OPERATING ACTIVITIES:    
Net income $ 12,751,000 $ 5,742,000
Adjustments to reconcile net income to net cash provided by operating activities:    
Depreciation and amortization 2,560,000 2,629,000
Non-cash operating lease expense 569,000 521,000
Provision (recovery) for doubtful accounts 124,000 (20,000)
Deferred taxes 983,000 366,000
Foreign currency transaction gains (8,000) (97,000)
Share-based compensation 1,347,000 1,181,000
Unrealized (gain) loss on available for sale equity security (13,000) 18,000
Changes in operating assets and liabilities:    
Accounts and trade notes receivable (4,792,000) 1,888,000
Inventories (8,221,000) (5,212,000)
Prepaid expenses and other assets 9,000 49,000
Accounts payable 5,198,000 (1,903,000)
Advance customer payments and other (177,000) 247,000
Accrued expenses 589,000 1,321,000
Operating lease liabilities (830,000) (772,000)
Net cash provided by operating activities 10,089,000 5,958,000
CASH FLOWS FROM INVESTING ACTIVITIES:    
Proceeds from maturities of available-for-sale marketable securities 10,601,000 11,576,000
Proceeds from sale of available-for-sale marketable securities 225,000 0
Purchases of available-for-sale marketable securities (13,639,000) (13,186,000)
Additions to equipment and leasehold improvements (1,627,000) (1,527,000)
Additions to patents (254,000) (212,000)
Net cash used in investing activities (4,694,000) (3,349,000)
CASH FLOWS FROM FINANCING ACTIVITIES:    
Proceeds from exercise of stock options 428,000 358,000
Tax payments related to shares withheld for share-based compensation plans (787,000) (605,000)
Proceeds from issuance of common stock under employee stock purchase plan 247,000 224,000
Net cash used in financing activities (112,000) (23,000)
Effects of exchange rate changes on cash and cash equivalents 2,000 (23,000)
Net increase in cash and cash equivalents 5,285,000 2,563,000
Cash and cash equivalents – beginning of period 8,399,000 5,836,000
Cash and cash equivalents – end of period $ 13,684,000 $ 8,399,000
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.22.0.1
Consolidated Statements Of Stockholders' Equity - USD ($)
shares in Thousands, $ in Thousands
Total
Common Stock [Member]
Accumulated Other Comprehensive Loss [Member]
Retained Earnings [Member]
BALANCE at Dec. 31, 2019 $ 58,324 $ 36,659 $ (1,406) $ 23,071
BALANCE, shares at Dec. 31, 2019   7,155    
Increase (Decrease) in Stockholders' Equity [Roll Forward]        
Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment 358 $ 358   0
Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment, shares   135    
Tax payments related to shares withheld for share-based compensation plans (605) $ (605)    
Tax payments related to shares withheld for share-based compensation plans, shares   (23)    
Share issuances for director compensation 0 $ 0    
Share issuances for director compensation, shares   8    
Share-based compensation 1,181 $ 1,181    
Issuance of common stock under Employee Stock Purchase Plan 224 $ 224    
Issuance of common stock under Employee Stock Purchase Plan, shares   20    
Other comprehensive income, net of tax 304   304  
Net income 5,742     5,742
BALANCE at Dec. 31, 2020 65,528 $ 37,817 (1,102) 28,813
BALANCE, shares at Dec. 31, 2020   7,295    
Increase (Decrease) in Stockholders' Equity [Roll Forward]        
Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment 428 $ 428   0
Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment, shares   100    
Tax payments related to shares withheld for share-based compensation plans (787) $ (787)    
Tax payments related to shares withheld for share-based compensation plans, shares   (18)    
Share issuances for director compensation 0 $ 0    
Share issuances for director compensation, shares   8    
Share-based compensation 1,347 $ 1,347    
Issuance of common stock under Employee Stock Purchase Plan 247 $ 247    
Issuance of common stock under Employee Stock Purchase Plan, shares   7    
Other comprehensive income, net of tax (408)   (408)  
Net income 12,751     12,751
BALANCE at Dec. 31, 2021 $ 79,106 $ 39,052 $ (1,510) $ 41,564
BALANCE, shares at Dec. 31, 2021   7,392    
XML 19 R8.htm IDEA: XBRL DOCUMENT v3.22.0.1
Business Description And Significant Accounting Policies
12 Months Ended
Dec. 31, 2021
BUSINESS DESCRIPTION AND SIGNIFICANT ACCOUNTING POLICIES [Abstract]  
BUSINESS DESCRIPTION AND SIGNICANT ACCOUNTING POLICIES

NOTE 1 BUSINESS DESCRIPTION AND SIGNIFICANT ACCOUNTING POLICIES

Description of Business

We are a leading global developer and manufacturer of high precision 3D sensors and systems for inspection and metrology. We also develop and manufacture our WaferSense® products, a family of wireless, wafer-shaped sensors that provide measurements of critical factors in the semiconductor fabrication process. Our sensors and system products are used in surface mount technology (SMT) and semiconductor markets to significantly improve yields and productivity.

Principles of Consolidation

The consolidated financial statements include the accounts of CyberOptics Corporation and its wholly-owned subsidiaries. In these notes to the consolidated financial statements, these companies are collectively referred to as “CyberOptics,” “we,” “us,” or “our.” All significant inter-company accounts and transactions have been eliminated in consolidation.


Segment Reporting

We operate in a single reportable segment that includes the design, development and manufacture of high precision sensing, inspection and metrology solutions for the SMT and semiconductor markets.


Use of Estimates

The preparation of consolidated financial statements in conformity with generally accepted accounting principles requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ significantly from those estimates.


Cash and Cash Equivalents

We consider all highly liquid investments purchased with an original maturity of 90 days or less to be cash equivalents. Cash and cash equivalents consist of funds maintained in demand deposit accounts, money market accounts, certificate of deposits, corporate debt instruments and U.S. government backed obligations. Cash and cash equivalent balances, at times, may exceed federally insured limits.


Marketable Securities


We determine the classification of investment securities at the time of purchase. Marketable securities are classified as short-term or long-term in the consolidated balance sheets based on their maturity date and expectations regarding sales. All marketable securities are classified as available-for-sale and are a part of our asset/liability management strategy and may be sold in response to changes in interest rates, prepayment risk or other market factors.


Cash and marketable securities held by foreign subsidiaries totaled $588,000 at December 31, 2021 and $672,000 at December 31, 2020.


Debt Securities


Debt securities consist of U.S. government and agency backed obligations, certificates of deposit, corporate debt instruments, or asset backed securities.

 

Available-for-sale securities are carried at estimated fair value. Unrealized gains and losses for debt securities are reported as a separate component of stockholders’ equity in accumulated other comprehensive income (loss), net of applicable income taxes, until realized. Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The amortized cost and fair value of debt securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of debt securities sold and the resulting realized gains or losses are also determined by specific identification. Interest income and dividends are recognized in interest income on an accrual basis. Premiums and discounts on debt securities are amortized as an adjustment to interest income over the period to maturity of the related security using the effective interest method.

We monitor the carrying value of our debt securities compared to their fair value to determine whether an other-than-temporary impairment (“OTTI”) has occurred. Factors considered in determining whether a loss is other-than-temporary include the length of time and extent to which fair value has been less than the amortized cost basis, credit quality (considering factors such as adverse conditions specific to the issuer and the security and ratings agency actions) and our ability and intent to hold the investment for a period of time sufficient to allow for any anticipated recovery in market value. If a decline in fair value of our debt securities is determined to be other-than-temporary, the amount by which amortized cost exceeds the fair value of a debt security is separated into a component representing the credit loss, which is recognized in earnings, and a component related to all other factors, which is recognized in other comprehensive income (loss). The measurement of the credit loss component is equal to the difference between the debt security’s amortized cost basis and the present value of its expected future cash flows discounted at the security’s effective yield. If we intend to sell the security, or if it is more likely than not we will be required to sell the security before recovery, an OTTI write-down is recognized in earnings equal to the entire difference between the amortized cost basis and fair value of the security.

Equity Securities


Equity securities have readily determinable fair values. Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The fair value of equity securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of equity securities sold and resulting realized gains or losses are also determined by specific identification. Dividends are recognized in interest income on an accrual basis. Unrealized gains and losses for equity securities are reported in net income.


Inventories

 

Inventories are stated at the lower of cost or net realizable value, with cost determined using the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business less cost to sell and considers our current assessment of general market and economic conditions, slow-moving inventory and future demand. Appropriate consideration is given to deterioration, obsolescence, and other factors in evaluating net realizable value.  

 

Accounts and Trade Notes Receivable


We extend unsecured credit to our customers in the normal course of business. We periodically provide financing to customers for the purchase of SQ3000 Multi-Function system products. Trade notes receivable bear interest at annual effective rates ranging from approximately 5% to 7%, and are repayable over periods ranging from 18 to 36 months. The current portion of the trade notes are classified as accounts receivable in the accompanying balance sheets.


Interest income will be discontinued for any trade notes receivable with a specific reserve established if it is likely that we will be unable to collect all amounts due according to the original terms of the trade notes. For these trade notes receivable, cash collection will first be applied as a reduction to principal outstanding. Any cash received in excess of the outstanding principal payments will be recognized as interest income. Trade notes receivable may be removed from non-accrual status with respect to interest income based upon changes in customer circumstances, including a sustained history of payments. At December 31, 2021 and December 31, 2020, none of our trade notes receivable were in a non-accrual status with respect to interest income.


Allowance for Doubtful Accounts and Trade Notes 

 

Allowances for doubtful accounts are maintained for estimated losses resulting from the inability of our customers to make required payments. In making the determination of the appropriate allowance for doubtful accounts, we consider specific accounts, historical write-offs, changes in customer relationships and credit worthiness and concentrations of credit risk. Specific accounts and trade notes receivable are written-off once a determination is made that the account is uncollectible.

 

Equipment and Leasehold Improvements

 

Equipment and leasehold improvements are stated at cost. Significant additions or improvements extending asset lives are capitalized, while repairs and maintenance are charged to expense as incurred. In-progress costs are capitalized with depreciation beginning when assets are placed in service. Depreciation is recorded using the straight-line method over the estimated useful lives of the equipment, ranging from one to seven years. Leasehold improvements are amortized using the straight-line method over the shorter of the asset useful life or the underlying lease term, ranging from one to eight years. Gains or losses on dispositions are included in current operations.

 

Goodwill

 

Goodwill represents the excess of purchase price over the fair value of net assets acquired in a business combination. We have determined that we have one reporting unit. We evaluate the carrying value of goodwill annually on December 31st and more frequently if management believes indicators of impairment exist. Such indicators could include, but are not limited to (1) a significant adverse change in legal factors or in business climate, (2) unanticipated competition, or (3) an adverse action or assessment by a regulator. We first assess qualitative factors to determine whether it is more likely than not that our fair value is greater than carrying value (i.e. net book value). If we conclude that it is more likely than not that our fair value is greater than carrying value, no further testing is required. If we conclude that it is more likely than not that our fair value is less than carrying value, we estimate our fair value using the income approach. The income approach is a valuation technique under which we estimate future cash flows using financial forecasts. Future estimated cash flows are discounted to their present value to calculate fair value. When considering fair value, we also give consideration to the control premium in excess of our current market capitalization that might be obtained from a third party acquirer. Goodwill impairment is measured as the amount by which our carrying value exceeds our fair value, but not in an amount in excess of the carrying value of goodwill.

 

On December 31, 2021 and 2020, we performed a qualitative assessment to determine if there was any indication that our goodwill might be impaired. After considering all available evidence, including our financial performance, financial outlook and current market capitalization, we concluded that it is more likely than not that our fair value is greater than carrying value. As a result, no further testing was deemed necessary, and we determined that our goodwill was not impaired. Therefore, no amounts were recorded for goodwill impairment in 2021 or 2020.


Patents

 

Patents consist of legal and patent registration costs for protection of our proprietary technology. We amortize patent costs on a straight-line basis, based upon their estimated life.


Long Lived Assets

 

Intangible assets subject to amortization and other long-lived assets are reviewed for impairment when events or changes in circumstances indicate that the carrying amount of the assets may not be recoverable. An impairment loss would be recognized when future undiscounted cash flows expected to result from use of the asset and eventual disposition are less than the carrying amount. 


Operating Leases


We determine if an arrangement is a lease at inception. Operating leases are recorded in operating lease right-of-use (ROU) assets, current operating lease liabilities, and long-term operating lease liabilities in our consolidated balance sheets. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Operating lease ROU assets and liabilities are recognized based on the present value of lease payments over the lease term. The operating lease ROU assets exclude lease incentives. As our leases do not provide an implicit rate, we use our incremental borrowing rate to determine the present value of lease payments. Our leases may include renewal options to extend the lease term, the exercise of which are at our sole discretion. In our accounting treatment of leases, the lease terms used do not include any option to extend the lease, because it is not reasonably certain that we will exercise the option. Lease expense is recognized on a straight-line basis over the lease term. We have lease agreements with lease and non-lease components (e.g., common-area or other maintenance costs) which are generally accounted for separately and expensed monthly. We do not recognize a ROU asset and lease liability for leases having a term of 12 months or less at the effective date.


Revenue Recognition

 

Revenue is measured based on consideration specified in the contract with a customer. A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account for purposes of revenue recognition. Revenue from all customers, including distributors, is recognized when a performance obligation is satisfied by transferring control of a product or service to a customer. Amounts billed to customers for shipping and handling are included in revenue. All shipping and handling costs associated with outbound freight are accounted for as fulfillment costs and are included in cost of sales. Taxes collected from customers and remitted to governmental authorities are excluded from revenue on the net basis of accounting. Accounts receivable are due under normal trade terms, typically 150 days or less.


Our performance obligations are mostly satisfied at a point in time and to a lesser extent over time as work progresses. Revenue for products and services transferred to customers at a point in time is recognized when obligations under the terms of the contract with our customer are satisfied; generally with the transfer of control upon shipment. Sales of some products may require customer acceptance due to performance or other acceptance criteria that is considered more than a formality. For these product sales, revenue is recognized upon notification of customer acceptance.


Sales involving multiple performance obligations typically include the sale of an inspection or metrology systems product, installation and training, and in some cases, an extended warranty. When a sale involves multiple performance obligations, we account for individual products and services separately if the customer can benefit from the product or service on its own or with other resources that are readily available to the customer and the product or service are separately identifiable from other promises in the arrangement. Undelivered performance obligations in an arrangement are typically minimal, consisting of undelivered installation and training services. The consideration is allocated between separate performance obligations in proportion to their estimated stand-alone selling price. If the stand-alone selling price is not directly observable, we use the cost plus margin approach to estimate stand-alone selling price. Costs related to products delivered are recognized in the period revenue is recognized; including product warranties for periods ranging from 1 to 3 years (see Note 9).

 

Periodically, sensor product arrangements with our original equipment manufacturers (OEM's) will create an asset with no alternative use and include an enforceable right to payment. For these arrangements, control is transferred over the manufacturing process; therefore, revenue is recognized over time utilizing an input method based on actual costs incurred in the manufacturing process to date relative to total expected production costs. For certain longer duration 3D scanning service projects, we progress bill as the services are performed. These arrangements create an asset with no alternative use and include an enforceable right to payment. For these arrangements, control is transferred over the hours incurred to complete the scanning project; therefore, revenue is recognized over time utilizing an input method based on actual hours incurred relative to total projected project hours. For maintenance and extended warranty contracts, revenue is recognized over time on a straight-line basis over the term of the contract as the customer simultaneously receives and consumes the benefits of the coverage.

  

Practical Expedients 


We generally expense the incremental costs of obtaining a contract when incurred because the amortization period for these costs would be less than one year. These costs primarily relate to sales commissions and are recorded in selling, general and administrative expense in our consolidated statements of operations. 


We do not disclose the value of unsatisfied performance obligations for contracts with an original expected length of one year or less, primarily consisting of product installation and training. We do not adjust the promised amount of consideration for the effects of a significant financing component if we expect, at contract inception, that the period between when we transfer a promised good or service to a customer and when the customer pays for that good or service will be one year or less.  


Foreign Currency Translation

Financial position and results of operations of our international subsidiaries are measured using local currency as their functional currency. Assets and liabilities of these operations are translated at the exchange rates in effect at each fiscal year-end. Statements of operations accounts are translated at the average rates of exchange prevailing during the year. Translation adjustments arising from the use of differing exchange rates from period to period are included as a cumulative translation adjustment in stockholders’ equity.

Foreign Currency Transactions

Foreign currency transaction gains and losses are included in interest income and other, net in the statement of operations. We recognized foreign currency transaction losses of $11,000 in 2021. We recognized foreign transaction gains of $27,000 in 2020.


Research and Development

Research and development (R&D) costs, including product software development, are expensed when incurred. Product software development costs are required to be expensed until the point that technological feasibility and proven marketability of the product are established; costs otherwise capitalizable after such point also are expensed because they are insignificant. All other R&D costs are expensed as incurred. R&D expenses consist primarily of salaries, project materials, contract labor and other costs associated with ongoing product development and enhancement efforts.

 

Advertising Costs

We expense all advertising costs as incurred. Advertising expenses were $252,000 in 2021 and $371,000 in 2020.

 

Warranty Costs

 

We provide for the estimated cost of product warranties, which cover products for periods ranging from one to three years at the time revenue is recognized.

See Note 9 to the consolidated financial statements for additional information related to warranty costs. 

Income Taxes

We evaluate uncertain tax positions using the “more likely than not” threshold (i.e., a likelihood of occurrence greater than fifty percent). The recognition threshold is met when an entity concludes that a tax position, based solely on its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are classified as a gross unrecognized tax benefit until the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statute of limitations. De-recognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained. Our net unrecognized tax benefit ("UTB") is a long-term income tax reserve within our consolidated balance sheets.

 

Only the portion of the UTB that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statute of limitations) or are not expected to be paid within one year are not classified as current. It is our policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.

Deferred income taxes are recorded to reflect the tax consequences in future years of differences between the financial reporting and tax bases of assets and liabilities. We have made an accounting policy election to record the U.S. income tax effect of future global intangible low-taxed income ("GILTI") inclusions in the period in which they arise, rather than establishing deferred taxes with respect to the expected future tax liabilities associated with future GILTI inclusion. Income tax expense is the sum of the tax currently payable and the change in the deferred tax assets and liabilities during the period, excluding changes in deferred tax assets recorded to goodwill or accumulated other comprehensive loss. Valuation allowances are established when, in the opinion of management, it is more likely than not that some portion or all of the deferred tax assets will not be realized. We assess the realizability of our deferred tax assets and the need for a valuation allowance based on all positive and negative evidence.


Net Income Per Share


Basic net income per basic share is computed by dividing net income by the weighted average number of common shares outstanding during the period. Net income per diluted share is computed by dividing net income by the weighted average number of common and common equivalent shares outstanding during the period. Common equivalent shares consist of common shares to be issued upon exercise of stock options, vesting of restricted stock units, vesting of restricted shares and from purchases of shares under our employee stock purchase plan, as calculated using the treasury stock method. Common equivalent shares are excluded from the calculation of net income per diluted share if their effect is anti-dilutive.


Comprehensive Income


Total comprehensive income and the components of accumulated other comprehensive loss are presented in the Consolidated Statements of Comprehensive Income and the Consolidated Statements of Stockholders' Equity. Accumulated other comprehensive loss is composed of foreign currency translation effects and unrealized gains and losses on available-for-sale marketable debt securities. We use the individual item approach for releasing income tax effects from accumulated other comprehensive loss. 


Fair Value of Financial Instruments 


The carrying amounts of financial instruments such as cash equivalents, accounts receivable, other assets, accounts payable, advance customer payments, accrued expenses and other liabilities approximate their related fair values due to the short-term maturities of these instruments. The fair value for trade notes receivable is based on discounted future cash flows using current interest rates that would be offered for a similar transaction to a similarly situated customer. The difference between the carrying amount and estimated fair value for trade notes receivable is immaterial.


See Note 6 for information related to fair value of marketable securities. 


Share-Based Compensation


All share-based payments to employees, including grants of stock options, are required to be recognized as an expense in our consolidated statements of operations based on the grant date fair value of the award. We utilize the straight-line method of expense recognition over the award’s service period for our graded vesting options. The fair value of stock options has been determined using the Black-Scholes model. We account for the impact of forfeitures related to employee share-based payment arrangements when the forfeitures occur. We have classified employee share-based compensation within our consolidated statements of operations in the same manner as our cash based employee compensation costs.

See Note 7 to the consolidated financial statements for additional information related to employee share-based compensation. 


Related Party Transactions


We periodically sell or purchase products from companies for which our board members serve in an executive capacity and in some cases on the board of directors. These transactions occur in the normal course of business. Our cumulative sales to these companies were $387,000 in 2021 and $40,000 in 2020Accounts receivable due from related party sales were $185,000 as of December 31, 2021 and $3,000 as of December 31, 2020. Our cumulative purchases from these companies were $61,000 in 2021 and $59,000 in 2020. 


Recent Accounting Developments


In June 2016, the FASB issued ASU No. 2016-13, Measurement of Credit Losses on Financial Instruments, which revises guidance for the accounting for credit losses on financial instruments within its scope, and in November 2018, issued ASU No. 2018-19, which amended the standard. The new standard introduces an approach to estimating credit losses that is based on expected losses (referred to as the current expected credit losses model), and applies to most financial assets measured at amortized cost and certain other instruments, including available-for-sale marketable debt securities, trade and other receivables. The new standard is effective for us on January 1, 2023, with early adoption permitted. We are required to apply the standard’s provisions as a cumulative-effect adjustment to retained earnings as of the beginning of the first reporting period in which the guidance is adopted. We presently do not believe the new standard will have a material impact on our consolidated financial statements.


No other new accounting pronouncements are expected to have a significant impact on our consolidated financial statements.

XML 20 R9.htm IDEA: XBRL DOCUMENT v3.22.0.1
Covid-19 pandemic
12 Months Ended
Dec. 31, 2021
COVID-19 PANDEMIC  
COVID-19 PANDEMIC

NOTE 2 - COVID-19 PANDEMIC


Effect of Covid-19 Outbreak on Business Operations 

Covid-19 was first identified in December 2019, and in March 2020, the World Health Organization categorized Covid-19 as a pandemic. The Covid-19 pandemic is affecting our customers, suppliers, service providers and employees to varying degrees, and the ultimate impacts of Covid-19, including the potential impact of known and future variants, on our business, results of operations, liquidity and prospects are not fully known at this time. Overall, the Covid-19 outbreak has not had a significant impact on our business to date. However, the following factors have affected and may continue to affect our business: 
  • Our key factories are located in Minnesota and Singapore. Both of these locations have been subject to government mandated shelter-in-place orders. Because our operations have been deemed essential, we were able to keep our factories up and running while the shelter-in-place mandates were in effect. If the pandemic worsens, it is possible that our operations may not be deemed essential under future government mandated shelter-in-place orders, and we may be required to shut-down factory operations. We have periodically implemented split-shifts for our factory operations to minimize the number of employees in our facilities at any given time, but these measures have not affected our production capacity. Since the start of the pandemic, many of our non-factory employees have spent the majority of their time working remotely. To date, the shelter-in-place mandates and remote work arrangements have had a minimal impact on operations, but material negative effects on our business could result if the pandemic worsens and continues for an extended period of time.
  • Sales of some products, mainly our SQ3000 Multi-Function systems and MX memory module inspection products, require customer acceptance due to performance or other criteria that is considered more than a formality. Most of our customer’s factories have remained open during the Covid-19 pandemic because they are deemed to be essential under government shelter-in-place mandates. However, global travel restrictions and quarantine measures have hindered our ability to obtain some customer acceptances of certain products at various times during the Covid-19 pandemic. Continuing or new global travel restrictions and quarantine measures could hinder our ability to obtain customer acceptances in a timely manner in the future, and therefore impact the timing of revenue recognition.
  • The Covid-19 pandemic has caused disruptions in the global supply chain, including shortages of raw materials, parts and labor, and shipping and logistics issues, including delays in ocean freight and port congestion. Key supply chain disruptions impacting our business have been resolved to date. On-hand inventories have been sufficient to enable us to mitigate any supply disruptions with minimal impact on our sales or ability to service customers. However, it has become increasingly difficult to obtain adequate supplies of certain key components and labor for product assembly. Port congestion and tight booking for global sea freight have caused delays in product deliveries. The inability to obtain adequate supply of components or labor could result in the inability to meet customer demands and deliver one or more of our products for a period of several months or longer. Supply chain disruptions are expected to continue for the foreseeable future and may increase if the pandemic worsens or continues for an extended period of time.

Although we cannot estimate the continuing impact of the Covid-19 outbreak at this time, it may have an adverse effect on our results of future operations, financial position and liquidity in 2022 and beyond. 


Singapore Jobs Support Program

 

The Singapore Government implemented a jobs support program in 2020 that was intended to support businesses and encourage retention of employees during the period of economic uncertainty caused by the Covid-19 pandemic. Under the jobs support program, the Singapore Government co-funded a portion of the gross monthly wages paid to local employees, which reduced our operating expense by $410,000 in 2020. We did not receive any material benefit from the Singapore jobs support program in 2021.

XML 21 R10.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Recognition
12 Months Ended
Dec. 31, 2021
REVENUE RECOGNITION  
REVENUE RECOGNITION
NOTE 3 – REVENUE RECOGNITION

Performance Obligations  


Our revenue performance obligations are primarily satisfied at a point in time and limited revenue streams are satisfied over time as work progresses.


The following is a summary of our revenue performance obligations:

 



For the Year Ended December 31,


2021
2020

(In thousands)


Revenues


Percent of Revenues


Revenues

Percent of Revenues

Revenue recognized over time
$ 2,253
2.4 %
$ 1,715
2.4 %
Revenue recognized at a point in time

90,521
97.6 %

68,402
97.6 %


$ 92,774
100.0 %
$ 70,117
100.0 %


See Note 13 for additional information regarding disaggregation of revenue. 


Contract Balances 


Contract assets consist of unbilled amounts from sales where we recognize the revenue over time and the revenue recognized exceeds the amount billed to the customer at a point in time. Accounts and trade notes receivable are recorded when the right to payment becomes unconditional. Contract liabilities consist of payments received in advance of performance under the contract. Contract liabilities are recognized as revenue when we perform under the contract.


The following summarizes our contract assets and contract liabilities: 


(In thousands)

 

December 31, 2021

December 31, 2020

Contract assets, included in other current assets

 

$

7

 

 

$

 2

 

Contract liabilities - advance customer payments

 

$

289

 

 

$

567

 

Contract liabilities - deferred warranty revenue
$ 445

$ 344

Changes in contract assets in 2021 and 2020 resulted from unbilled amounts under sensor product arrangements and longer duration 3D scanning service projects in which revenue is recognized over time. Changes in contract liabilities primarily resulted from reclassification of beginning contract liabilities to revenue as performance obligations were satisfied or from cash received in advance and not recognized as revenue. See Note 9 for changes in contractual obligations related to deferred warranty revenue. Unsatisfied performance obligations for deferred warranty revenue are generally expected to be recognized as revenue over the next one to three years. There were no impairment losses for contract assets in 2021 or 2020.


The following summarizes the amounts reclassified from beginning contract liabilities to revenue:

Year Ended December 31,

(In thousands)

 

2021

2020

Amounts reclassified from beginning contract liabilities to revenue

 

$

393

 

 

$

 171

 

Amounts reclassified from deferred warranty revenue

263

193

Total

$

656

$

364

XML 22 R11.htm IDEA: XBRL DOCUMENT v3.22.0.1
Marketable Securities
12 Months Ended
Dec. 31, 2021
MARKETABLE SECURITIES [Abstract]  
MARKETABLE SECURITIES


NOTE 4  MARKETABLE SECURITIES


Our investments in marketable securities are classified as available-for-sale and consist of the following: 

 

 

December 31, 2021

(In thousands)

 

Amortized Cost

 

Unrealized
Gains

 

Unrealized
Losses

 

Fair Value

Short-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

3,005

 

 

$

13

 

 

$

 

$

3,018

 

Corporate debt securities and certificates of deposit

 

4,177

 

 

8

 

 

(2

)

 

4,183

 

Asset backed securities

 

125

 

 

1

 

 

 

126

 

Marketable securities – short-term

 

$

7,307

 

 

$

22

 

 

$

(2

)

 

$

7,327

 

Long-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

9,921

 

 

$

5

 

 

$

(57

)

 

$

9,869

 

Corporate debt securities and certificates of deposit

 

4,869

 

 

9

 

 

(18

)

 

4,860

 

Asset backed securities

 

2,511

 

 

9

 

 

(11

)

 

2,509

 

Equity security

 

42

 

 

1

 

 

 

43

 

Marketable securities – long-term

 

$

17,343

 

 

$

24

 

 

$

(86

)

 

$

17,281

 



 

December 31, 2020

(In thousands)

 

Amortized Cost

 

Unrealized
Gains

 

Unrealized
Losses

 

Fair Value

Short-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

4,817

 

 

$

36

 

 

$

 

$

4,853

 

Corporate debt securities and certificates of deposit

 

3,113

 

 

21

 

 

 

3,134

 

Asset backed securities

 

133

 

 

1

 

 

 

134

 

Marketable securities – short-term

 

$

8,063

 

 

$

58

 

 

$

 

$

8,121

 

Long-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

7,529

 

 

$

66

 

 

$

 

$

7,595

 

Corporate debt securities and certificates of deposit

 

3,975

 

 

61

 

 

(1

)

 

4,035

 

Asset backed securities

 

2,347

 

 

45

 

 

 

2,392

 

Equity security

 

42

 

 

 

 

(12

)

 

30

 

Marketable securities – long-term 

 

$

13,893

 

 

$

172

 

 

$

(13

)

 

$

14,052

  



In Unrealized Loss Position For
Less Than 12 Months
 
 In Unrealized Loss Position For
Greater Than 12 Months
(In thousands)  
 
Fair Value
 
Gross Unrealized
Losses
 
Fair Value
 
Gross Unrealized
Losses
December 31, 2021
 
 

 
 

 
 

 
 

U.S. government and agency obligations
 
$
9,250

 
$
(57
)
 
$
 
$
Corporate debt securities and certificates of deposit
 
5,188

 
(18
)
 
355
 
(2
)
Asset backed securities


1,278



(11
)






Marketable securities
 
$
15,716

 
$
(86
)
 
$
355
 
$
(2
)
December 31, 2020
 
 

 
 

 
 

 
 

U.S. government and agency obligations
 
$
330

 
$
 
$
 
$
Corporate debt securities and certificates of deposit
 
411

 
(1
)
 
 
Marketable securities
 
$
741

 
$
(1
)
 
$
 
$


Our long-term investments in marketable debt securities all have maturities of less than 5 years. Net pre-tax unrealized losses for marketable debt securities of $43,000 at December 31, 2021 and net pre-tax unrealized gains of $229,000 at December 31, 2020 have been recorded as a component of accumulated other comprehensive loss in stockholders’ equity. We only invest in highly rated investment grade securities. We have determined that the net pre-tax unrealized gains and losses for marketable debt securities at December 31, 2021 and December 31, 2020 were caused by fluctuations in interest rates and are temporary in nature. We review our marketable debt securities to identify and evaluate investments that have indications of possible impairment. Factors considered in determining whether a loss is other-than-temporary include the length of time and extent to which fair value has been less than the cost basis, the investment grade credit quality of our debt securities and our ability and intent to hold the investment for a period of time sufficient to allow for any anticipated recovery in market value. We received proceeds of $225,000 from the sale of marketable securities in 2021. The gain recognized on the sale was insignificant. No marketable securities were sold in 2020. See Note 6 for additional information regarding the fair value of our investments in marketable securities.


Investments in marketable debt securities classified as cash equivalents of $8.8 million at December 31, 2021 and $1.3 million at December 31, 2020, consist of corporate debt securities and certificates of deposit. There were no unrealized gains or losses associated with any of these securities at December 31, 2021 or December 31, 2020.  

XML 23 R12.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Comprehensive Income (Loss)
12 Months Ended
Dec. 31, 2021
OTHER COMPREHENSIVE INCOME (LOSS)  
OTHER COMPREHENSIVE INCOME (LOSS)

NOTE 5  OTHER COMPREHENSIVE INCOME (LOSS) 


There were no reclassification adjustments in 2021 or 2020. Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss) are as follows:

 


Year Ended December 31, 2021

 

Year Ended December 31, 2020

(In thousands)

 

Before Tax

 

Tax Effect

 

Net of Tax
Amount

 

Before Tax

 

Tax Effect

 

Net of Tax
Amount

Foreign currency translation adjustments

 

$

(193

)

 

$

 

$

(193

)

 

$

190

 

$

 

$

190

Unrealized gains (losses) on available-for-sale securities

 

(272

)

 

57

 

(215

)

 

145


 

(31

)

 

114

Other comprehensive income (loss)

 

$

(465

)

 

$

57

 

$

(408

)

 

$

335

 

$

(31

)

 

$

304


At December 31, 2021 and December 31, 2020 components of accumulated other comprehensive loss is as follows:

 

 

 

 

 

 

 

 

 

 

 

 

 

(In thousands)

 

Foreign
Currency
Translation
Adjustments

 

Available-
for-Sale
Securities

 

Accumulated
Other
Comprehensive
Loss

Balances at December 31, 2019

 

$

(1,475

)

 

$

69

 

$

(1,406

)

Other comprehensive income for the year ended December 31, 2020

 

190

 

114

 

304

Balances at December 31, 2020

 

$

(1,285

)

 

$

183

 

$

(1,102

Other comprehensive loss for the year ended December 31, 2021

 

 

(193

)

 

 

(215

)

 

 

(408

)

Balances at December 31, 2021

 

$

(1,478

 

$

(32

)

 

$

(1,510

)
XML 24 R13.htm IDEA: XBRL DOCUMENT v3.22.0.1
Fair Value Measurements
12 Months Ended
Dec. 31, 2021
FAIR VALUE MEASUREMENTS [Abstract]  
FAIR VALUE MEASUREMENTS

NOTE 6  FAIR VALUE MEASUREMENTS

We determine the fair value of our assets and liabilities based on the exchange price that would be received for an asset or paid to transfer a liability (exit price) in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Valuation techniques used to measure fair value maximize the use of observable inputs and minimize the use of unobservable inputs. We use a fair value hierarchy with three levels of inputs, of which the first two are considered observable and the last is considered unobservable, to measure fair value. The fair value hierarchy gives the highest priority to quoted prices in active markets for identical assets or liabilities (Level 1). The next highest priority is based on observable inputs other than Level 1 inputs including quoted prices for similar assets or liabilities in active markets or quoted prices for identical or similar assets or liabilities in less active markets or other observable inputs (Level 2). The lowest priority is given to unobservable inputs (Level 3). The following provides information regarding fair value measurements for our marketable securities as of December 31, 2021 and December 31, 2020 according to the three-level fair value hierarchy.


 

 

Fair Value Measurements at
December 31, 2021 Using

(In thousands)

 

Balance
December 31, 2021

 

Quoted Prices
in Active
Markets for
Identical
Assets
(Level 1)

 

Significant
Other Observable Inputs
(Level 2)

 

Significant
Unobservable Inputs
(Level 3)

Marketable securities:

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

12,887

 

 

$

 

 

$

12,887

 

 

$

 

Corporate debt securities and certificates of deposit

 

9,043

 

 

 

 

9,043

 

 

 

Asset backed securities

 

2,635

 

 

 

 

2,635

 

 

 

Equity security

 

43

 

 

43

 

 

 

 

 

Total marketable securities

 

$

24,608

 

 

$

43

 

 

$

24,565

 

 

$

  

 

 

 

Fair Value Measurements at
December 31, 2020 Using

(In thousands)

 

Balance
December 31, 2020

 

Quoted Prices
in Active
Markets for
Identical
Assets
(Level 1)

 

Significant
Other Observable Inputs
(Level 2)

 

Significant
Unobservable Inputs
(Level 3)

Marketable securities:

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

12,448

 

 

$

 

 

$

12,448

 

 

$

 

Corporate debt securities and certificates of deposit

 

7,169

 

 

 

 

7,169

 

 

 

Asset backed securities

 

2,526

 

 

 

 

2,526

 

 

 

Equity security

 

30

 

 

30

 

 

 

 

 

Total marketable securities

 

$

22,173

 

 

$

30

 

 

$

22,143

 

 

$

  

 

During 2021 and 2020, we owned no Level 3 securities and there were no transfers within the three level hierarchy. A significant transfer is recognized when the inputs used to value a security have been changed which merit a transfer between the levels of the valuation hierarchy.

The fair value for our U.S. government and agency obligations, corporate debt securities and certificates of deposit and asset backed securities are determined based on valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The fair value for our equity security is based on a quoted market price obtained from an active market. The carrying amounts of financial instruments included in cash equivalents approximate their related fair values due to the short-term maturities of those instruments. See Note 4 for additional information regarding our investments in marketable securities.


Non-financial assets such as equipment and leasehold improvements, goodwill and intangible assets and right-of-use assets for operating leases are subject to non-recurring fair value measurements if they are deemed impaired. We had no re-measurements of non-financial assets to fair value in 2021 or 2020.


The fair value for trade notes receivable is based on discounted future cash flows using current interest rates that would be offered for a similar transaction to a similarly situated customer. The difference between the carrying amount and estimated fair value for trade notes receivable is immaterial. If measured at fair value in the financial statements, these financial instruments would be classified as Level 3 in the fair value hierarchy.

XML 25 R14.htm IDEA: XBRL DOCUMENT v3.22.0.1
Share-Based Compensation
12 Months Ended
Dec. 31, 2021
SHARE-BASED COMPENSATION [Abstract]  
SHARE-BASED COMPENSATION

NOTE 7  SHARE-BASED COMPENSATION

We have three share-based compensation plans that are administered by the Compensation Committee of the Board of Directors. We have (a) an Employee Stock Incentive Plan for officers, other employees, consultants and independent contractors under which we have granted options and restricted stock units to officers and other employees, (b) an Employee Stock Purchase Plan under which shares of our common stock may be acquired by employees at discounted prices, and (c) a Non-Employee Director Stock Plan that provides for automatic grants of restricted shares of our common stock to non-employee directors. New shares of our common stock are issued upon stock option exercises, vesting of restricted stock units, issuances of shares to board members and issuances of shares under the Employee Stock Purchase Plan.


Employee Stock Incentive Plan


As of December 31, 2021, there are 87,507 shares of common stock reserved in the aggregate for issuance pursuant to future awards under our Employee Stock Incentive Plan and 397,726 shares of common stock reserved in the aggregate for issuance pursuant to outstanding awards under such plan. Although our Compensation Committee has authority to issue options, restricted stock, restricted stock units, share grants and other share-based benefits under our Employee Stock Incentive Plan, to date only restricted stock units and stock options have been granted under the plan. Options have been granted at an option price per share equal to the market value of our common stock on the date of grant, vest over a four year period and expire seven years after the date of grant. Restricted stock units vest over a four year period and entitle the holders to one share of our common stock for each restricted stock unit. Reserved shares underlying outstanding awards, including options and restricted stock units, that are forfeited are available under the Employee Stock Incentive Plan for future grant.

Non-Employee Director Stock Plan

As of December 31, 2021, there were 36,000 shares of common stock reserved in the aggregate for issuance pursuant to future restricted share grants under our Non-Employee Director Stock Plan and 8,000 shares of common stock reserved in the aggregate for issuance pursuant to outstanding stock option awards under our Non-Employee Director Stock Plan (which previously authorized the granting of stock options to non-employee directors). Under the terms of the plan, each non-employee director receives annual restricted share grants of 2,000 shares of our common stock on the date of each annual meeting at which such director is elected to serve on the board. The annual restricted share grants of common stock vest in four equal quarterly installments during the year after the grant date, provided the non-employee director is still serving as a director on the applicable vesting date. 


On the dates of our 2021 and 2020 annual meetings, we issued 8,000 shares of our common stock to our non-employee directors, which were restricted as specified in the Non-Employee Director Stock Plan. The shares granted at the 2021 annual meeting had an aggregate fair market value on the date of grant equal to $224,000 (grant date fair value of $27.96 per share). As of December 31, 2021, 4,000 of these shares were vested. The aggregate fair value of the 4,000 unvested shares based on the closing price of our common stock on December 31, 2021 was $186,000. The shares granted at the 2020 annual meeting had an aggregate fair market value on the date of grant equal to $227,000 (grant date fair value of $28.34 per share). As of December 31, 2021, all of the shares granted at the 2020 annual meeting were vested.


Stock Option Activity 


The following is a summary of activity in stock options for 2021:

 

 

 

 

 

 

 

 


 

Options Outstanding

 

Weighted Average Exercise
Price Per Share

Outstanding, December 31, 2020

 

419,100

 

 

$

15.22

 

Granted

 

24,000

 

 

42.90

 

Exercised

 

(89,500

)

 

11.26

 

Forfeited
(1,775 )
17.52

Outstanding, December 31, 2021

 

351,825

 

 

$

18.11

 

Exercisable, December 31, 2021

 

257,026

 

 

$

14.82

 


The intrinsic value of an option is the amount by which the market price of the underlying common stock exceeds the option's exercise price. For options outstanding at December 31, 2021, the weighted average remaining contractual term of all outstanding options was 3.41 years and their aggregate intrinsic value was $10.0 million. At December 31, 2021, the weighted average remaining contractual term of options that were exercisable was 2.6 years and their aggregate intrinsic value was $8.1 million. The aggregate intrinsic value of stock options exercised was $2.7 million in 2021 and $2.7 million in 2020We received proceeds from stock option exercises of $428,000 in 2021 and $358,000 in 2020. The aggregate fair value of options that vested was $491,000 in 2021 and $456,000 in 2020.  


The fair value of stock options granted to our employees was estimated on the date of grant using the Black-Scholes model. The Black-Scholes valuation model incorporates ranges of assumptions that are disclosed in the table below. The risk-free interest rate is based on the United States Treasury yield curve at the time of grant with a remaining term equal to the expected life of the awards. We used historical experience to estimate the expected term, representing the length of time in years, that the options are expected to be outstanding. Expected volatility was computed based on historical fluctuations in the daily price of our common stock.


For stock options granted in the two-year period ended December 31, 2021, we utilized the fair value of our common stock on the date of grant and employed the following key assumptions in computing fair value using the Black-Scholes option-pricing model:


 

 

 

 

 

 

 

 

2021

 

2020

Risk-free interest rates

1.15% - 1.18%

 

0.44% - 0.50%

Expected life in years

5.19 - 5.64 

 

5.12 - 5.55

Expected volatility

 58.02% - 58.44%

 

59.43% - 59.81%

Dividend yield

0.00%

 

0.00%

Weighted average fair value on grant date

$22.24

 

$14.58

 

Restricted Shares and Restricted Stock Units 

 

Restricted shares are granted under our Non-Employee Director Stock Plan. Restricted stock units are granted under our Employee Stock Incentive Plan. The fair value of restricted shares and restricted stock units is equal to the market value of our common stock on the date of grant. There were 24,100 restricted shares and restricted stock units granted in 2021 (weighted average grant date fair value of $37.94 each). There were 30,700 restricted shares and restricted stock units granted in 2020 (weighted average grant date fair value of $28.33 each). The aggregate fair value of outstanding restricted shares and restricted stock units based on the closing share price of our common stock as of December 31, 2021 was $2.7 million. The aggregate fair value of restricted shares and stock units that vested, based on the closing share price of our common stock on the vesting date, was $1.4 million in 2021 and $857,000 in 2020.

 

The following is a summary of activity in restricted shares and restricted stock units for 2021:

 

Non-vested restricted stock units

 

Shares

 

Weighted Average Grant Date
Fair Value

Non-vested at December 31, 2020

 

68,454

 

 

$

21.45

 

Granted

 

24,100

 

 

37.94

 

Vested

 

(33,322

)

 

21.56

 

Forfeited
(1,331 )
23.03

Non-vested at December 31, 2021

 

57,901

 

 

$

28.21

 


Employee Stock Purchase Plan


We have an Employee Stock Purchase Plan available to eligible U.S. employees. Under terms of the plan, eligible employees may designate from 1% to 10% of their compensation to be withheld through payroll deductions, up to a maximum of $6,500 in each plan year, for the purchase of common stock at 85% of the lower of the market price on the first or last day of the offering period. Purchases under this plan were 7,380 shares in 2021 and 19,897 shares in 2020. As of December 31, 2021, 129,411 shares remain available for future issuance under this plan.


Share-Based Compensation Information

Pre-tax share-based compensation expense for 2021 includes $993,000 for stock options and restricted stock units, $130,000 for our employee stock purchase plan, and $224,000 for restricted shares issued to board members. Pre-tax share-based compensation expense for 2020 includes $876,000 for stock options and restricted stock units, $111,000 for our employee stock purchase plan, and $194,000 for restricted shares issued to board members.


 

 

 

 


 

 

 

 

(In thousands)

 

 2021


 

2020

Pre-tax share-based compensation expense

 

$

1,347


 

$

1,181

 

Income tax benefits related to share-based compensation

 

$

833



$

712

 


At December 31, 2021, the total unrecognized compensation cost related to non-vested share-based compensation arrangements was $2.9 million and the related weighted average period over which such cost is expected to be recognized is 2.9 years. 


XML 26 R15.htm IDEA: XBRL DOCUMENT v3.22.0.1
Net Income Per Share
12 Months Ended
Dec. 31, 2021
NET INCOME PER SHARE [Abstract]  
NET INCOME PER SHARE

NOTE 8  NET INCOME PER SHARE

Net income per basic share is computed by dividing net income by the weighted average number of common shares outstanding during the period. Net income per diluted share is computed by dividing net income by the weighted average number of common and common equivalent shares outstanding during the period. Common equivalent shares consist of common shares to be issued upon exercise of stock options, vesting of restricted stock units, vesting of restricted shares and from purchases of shares under our Employee Stock Purchase Plan, as calculated using the treasury stock method. Common equivalent shares are excluded from the calculation of net income per diluted share if their effect is anti-dilutive. The components of net income per basic and diluted share were as follows:

   
(In thousands except per share amounts)
 
Net Income
 
Weighted Average Shares Outstanding
 
Per Share Amount
Year Ended 12/31/2021:
 
 
 

 
 
 
 
 

Basic
 
$
12,751

 
7,320
 
 
$
1.74

Dilutive effect of common equivalent shares
 

 
217
 
 
(0.05
)
Dilutive
 
$
12,751

 
7,537
 
 
$
1.69

 

 

 

 

 

 

 

 

 

 

 

 

(In thousands except per share amounts)

 

Net Income

 

Weighted Average Shares Outstanding

 

Per Share Amount

Year Ended 12/31/2020:

 

 

 

 

 

 

 

 

 

Basic

 

$

5,742

 

 

7,215

 

 

$

0.80

 

Dilutive effect of common equivalent shares

 

 

 

239

 

 

(0.03

)

Dilutive

 

$

5,742

 

 

7,454

 

 

$

0.77

 


Potentially dilutive shares consist of stock options, restricted stock units, restricted shares and purchases of shares under our Employee Stock Purchase Plan. Potentially dilutive shares excluded from the calculations of net income per diluted share due to their anti-dilutive effect were as follows: 50,000 shares in 2021 and 57,000 shares in 2020.

XML 27 R16.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data
12 Months Ended
Dec. 31, 2021
OTHER FINANCIAL STATEMENT DATA [Abstract]  
OTHER FINANCIAL STATEMENT DATA

NOTE 9  OTHER FINANCIAL STATEMENT DATA

Inventories consist of the following:

 

 

 

 

 

 

 

 

 

 

 

December 31,

(In thousands)

 

2021

 

2020

Raw materials and purchased parts

 

$

18,013

 

 

$

11,903

 

Work in process

 

1,655

 

 

2,459

 

Finished goods

 

6,859

 

 

4,208

 

Demonstration inventories, net
1,075

1,701

Total inventories

 

$

27,602

 

 

$

20,271

 

Demonstration inventories are stated at cost less accumulated amortization, generally based on a 36 month useful life. Accumulated amortization for demonstration inventories totaled $2.8 million at December 31, 2021 and $2.7 million at December 31, 2020. Amortization expense related to demonstration inventories was $709,000 in 2021 and $770,000 in 2020.


Equipment and leasehold improvements consist of the following: 

 

 

 

 

 

 

 

 

 

 

 

December 31,

(In thousands)

 

2021

 

2020

Equipment

 

$

16,051

 

 

$

15,070

 

Leasehold improvements

 

3,070

 

 

3,072

 

 

 

19,121

 

 

18,142

 

Accumulated depreciation and amortization

 

(15,947

)

 

(14,907

)

 

 

$

3,174

 

 

$

3,235

 


Depreciation and amortization expense related to equipment and leasehold improvements was $1.6 million in 2021 and $1.7 million in 2020.


Intangible assets consist of the following:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

December 31, 2021

 

December 31, 2020

(In thousands)

 

Gross Carrying
Amount

 

Accumulated Amortization

 

Net

 

Gross Carrying
Amount

 

Accumulated Amortization

 

Net

Patents

 

$

1,972


 

$

(1,614

)

 

$

358

 

 

$

1,832

 

 

$

(1,542

)

 

$

290

 

Software

 


206


 

(206

)

 

 

 

206

 

 

(200

)

 

6

 

Marketing assets and customer relationships

 


86


 

(69

)

 

17

 

 

101

 

 

(72

)

 

29

 

 

 

$

2,264


 

$

(1,889

)

 

$

375

 

 

$

2,139

 

 

$

(1,814

)

 

$

325

  


Amortization expense in 2021 and 2020 was as follows:

 

 

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

 

Weighted Avg. Remaining Life-Years at December 31, 2021

(In thousands)

 

2021

 

2020

 

Patents

 

$

187

 

 

$

153

 

 

1.6

Software

 

6

 

 

29

 

 

Marketing assets and customer relationships

 

8

 

 

9

 

 

2.2

 

 

$

201

 

 

$

191

 

 

  


Estimated aggregate amortization expense based on current intangible assets for the next three years is expected to be as follows: $190,000 in 2022; $141,000 in 2023; and $44,000 in 2024. 


Accrued expenses consist of the following:

 

 

December 31,

(In thousands)

 

2021

 

2020

Wages and benefits

 

$

2,966

 

 

$

2,768

 

Warranty liability

 

949

 

 

793

 

Income taxes payable
341

269

Other

 

162

 

 

63

 

 

 

$

4,418

 

 

$

3,893

  


Other liabilities consist of the following:

 

 

 

 

 

 

 

 

 

 

 

December 31,

(In thousands)

 

2021

 

2020

Deferred warranty revenue

 

$

135

 

 

$

88

 

Warranty liability

 

42

 

 

46

 

 

 

$

177

 

 

$

134

 

 

See Note 3 for additional information related to contract liabilities.

    

Warranty costs:

    

We provide for the estimated cost of product warranties, which cover products for periods ranging from one to three years, at the time revenue is recognized. While we engage in extensive product quality programs and processes, including actively monitoring and evaluating the quality of components provided by suppliers, warranty obligations do arise. These obligations are affected by product failure rates, the costs of materials used in correcting product failures and service delivery expenses incurred to make these corrections. If actual product failure rates and material or service delivery costs differ from our estimates, revisions to the estimated warranty liability are required and could be material. At the end of each reporting period, we revise our estimated warranty liability based on these factors. The current portion of our warranty liability is included as a component of accrued expenses. The long-term portion of our warranty liability is included as a component of other liabilities.


A reconciliation of the changes in our estimated warranty liability is as follows:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,  

(In thousands)

 

2021

 

2020 

 

Balance at beginning of period

 

$

839

 

 

$

798

 

Accrual for warranties

 

1,024

 

 

836

 

Warranty revision


(53

)

 

43

Settlements made during the period

 

(819

)

 

(838

)

Balance at end of period

 

991

 

 

839

 

Current portion of estimated warranty liability

 

(949

)

 

(793

)

Long-term estimated warranty liability

 

$

42

 

 

$

46

 


Deferred warranty revenue:


The current portion of our deferred warranty revenue is included as a component of advance customer payments. The long-term portion of our deferred warranty revenue is included as a component of other liabilities. A reconciliation of the changes in our deferred warranty revenue is as follows:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31, 

(In thousands)

 

2021

 

2020 

 

Balance at beginning of period

 

$

344

 

 

$

275

 

Revenue deferrals

 

575

 

 

434

 

Amortization of deferred revenue

 

(474

)

 

(365

)

Total deferred warranty revenue

 

445

 

 

344

 

Current portion of deferred warranty revenue

 

(310

)

 

(256

)

Long-term deferred warranty revenue

 

$

135

 

 

$

88

  

XML 28 R17.htm IDEA: XBRL DOCUMENT v3.22.0.1
Income Taxes
12 Months Ended
Dec. 31, 2021
INCOME TAXES [Abstract]  
INCOME TAXES

NOTE 10  INCOME TAXES

 

Income before income taxes consists of the following:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Sources of income before income taxes:

 

 

 

 

 

 

 

United States

 

$

12,741

 

$

4,876

Foreign

 


1,754


 

1,478

 

Total income before income taxes

 

14,495


 

$

6,354

 


The provision for income taxes consists of the following:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Current:

 


 

 

 

 

Federal

 

$

417

 

$

26

State

 

46

 

 

19

 

Foreign

 

298

 

201

Total current

 

761

 

$

246

Deferred:

 


 

 

 

 

Federal

 

$

960

 

$

361

State

 

(1

)

 

 

Foreign

 

24

 

5

Total deferred

 

$

983

 

$

366

Total provision for income taxes

 

$

1,744

 

$

612



A reconciliation of the statutory rate to the effective income tax rate is as follows:

 

 

 

 

 

 

 

 

 

Year Ended December 31,

 

 

2021

 

 

2020

Federal statutory rate

 

21.0

%


21.0

%

State income taxes, net of federal benefit

 

0.3

 

 

0.2

 

Global Intangible Low-Taxed Income (GILTI)/Foreign Derived Intangible Income (FDII)

 

(2.9

)

 

2.1

 

Share-based compensation

 

(3.8

)

 

(7.4

)

Research and experimentation (R&D) credit

 

(2.3

)

 

(3.2

)

Foreign tax credit
(1.0 )
(2.2 )

Foreign rate difference

 

(0.4

)

 

(1.1

)

Valuation allowance

 

0.5

 

(4.2

)
Expiring and unrecognized deferred tax attributes 


3.7

Other, net

 

0.6

 

 

0.7

 

Effective tax rate

 

12.0

%


9.6

%


Our effective tax rate in 2021 was favorably impacted by GILTI, FDII, $605,000 of excess tax benefits from employee share-based compensation and favorable benefits from U.S. federal R&D tax credits and foreign tax credits. Our effective tax rate in 2020 was favorably impacted by $497,000 of excess tax benefits from employee share-based compensation and favorable benefits from U.S. federal R&D tax credits and foreign tax credits, offset in part by GILTI. All of our remaining federal net operating loss carry forwards were fully utilized in 2020.


A reconciliation of the beginning and ending amount of gross unrecognized tax benefits (“UTB”) is as follows:

 

 


 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Gross UTB balance at beginning of year

 

$

1,789

 

 

$

1,761

 

Additions based on tax positions related to the current year

 

231

 

 

137

 

Additions for tax positions of prior years

 

1

 

 

60

 

Reductions for tax positions of prior years

 

(39

)

 

(169

)

Gross UTB balance at end of year

 

$

1,982

 

 

$

1,789

 

Net UTB balance at end of year

 

$

214

 

 

$

197

 


The difference between the gross and net ending UTB and the difference between the changes in the gross and net UTB during the year are related to the required netting of UTB balances against positions that have an established deferred tax asset, such as our federal and state R&D tax credits. The increase in our gross UTB balance as of December 31, 2021 was primarily related to federal and state R&D tax credits. The increase in our net UTB at December 31, 2021 is primarily related to various inconsequential state tax matters. The net UTB is a long-term income tax reserve within our consolidated balance sheets. We recognize interest and penalties related to unrecognized tax benefits in tax expense. Accrued interest and penalties on a gross basis and estimated gross interest and penalties included in the above amounts for all years were inconsequential. The gross UTB at December 31, 2021 and 2020, if recognized, would favorably impact our effective tax rate.


We file income tax returns in the United States and various state and foreign jurisdictions. Our federal income tax returns for years after 2017 are still subject to examination by the Internal Revenue Service. We are no longer subject to state and local income tax examinations for years prior to 2017. 


The Inland Revenue Authority of Singapore has initiated a routine compliance review of our 2018 income tax return. We presently anticipate that the outcome of this audit will not have a significant impact on our financial position or results of operations. 

 

Deferred tax assets and liabilities consist of the following:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

December 31, 2021

 

December 31, 2020

(In thousands)

 

Assets

 

Liabilities

 

Assets

 

Liabilities

Equipment, leaseholds and intangible amortization, net

 

$

185

 

 

$

230

 

 

$

176

 

 

$

251

 

Operating lease liabilities

672







839



Right-of-use assets (operating leases)




369







478

Inventory allowances

 

550

 

 

20

 

 

549

 

 

5

 

Accrued expenses

 

130

 

 

 

 

129

 

 

 

Warranty accrual

 

214

 

 

 

 

182

 

 

 

Deferred revenue

 

312

 

 


 

 

214

 

 

 

Federal and state tax credits

 

2,992

 

 


 

 

3,960

 

 

 

State net operating loss carry forwards

 

233

 

 

 

 

275

 

 

 

Share-based compensation

 

361

 

 


 

 

358

 

 

 

Other, net

 

131

 

 

 

 

113

 

 

50

 

Subtotal

 

5,780

 

 

619

 

 

6,795

 

 

784

 

Valuation allowance

 

(1,493

)

 


 

 

(1,414

)

 

 

Total deferred tax assets and liabilities

 

$

4,287

 

 

$

619

 

 

$

5,381

 

 

$

784

  


We have significant deferred tax assets as a result of temporary differences between the taxable income on our tax returns and U.S. GAAP income, R&D tax credit carry forwards and state net operating loss carry forwards. A deferred tax asset generally represents future tax benefits to be received when temporary differences previously reported in our consolidated financial statements become deductible for income tax purposes, when net operating loss carry forwards could be applied against future taxable income, or when tax credit carry forwards are utilized on our tax returns. We assess the realizability of our deferred tax assets and the need for a valuation allowance based on the guidance provided in current financial accounting standards.  

 

Significant judgment is required in determining the realizability of our deferred tax assets. The assessment of whether valuation allowances are required considers, among other matters, the nature, frequency and severity of any current and cumulative losses, forecasts of future profitability, the duration of statutory carry forward periods, our experience with loss carry forwards not expiring unused and tax planning alternatives. In analyzing the need for valuation allowances, we first considered our history of cumulative operating results for income tax purposes over the past three years in each of the tax jurisdictions in which we operate, our financial performance in recent quarters, statutory carry forward periods and tax planning alternatives. In addition, we considered both our near-term and long-term financial outlook. After considering all available evidence (both positive and negative), we concluded that recognition of valuation allowances for substantially all of our U.S. and Singapore based deferred tax assets was not required at December 31, 2021 or December 31, 2020. Our valuation allowances at December 31, 2021 and December 31, 2020 mainly relate to state R&D tax credits and net operating loss carry forwards. The valuation allowance recorded against our deferred tax assets at December 31, 2021 was increased by $79,000, mainly for state R&D tax credits that we do not expect to use. The valuation allowance recorded against our deferred tax assets at December 31, 2020 was reduced by $265,000, mainly for U.S. federal R&D tax credits that were used or expired. At December 31, 2021, we have federal R&D tax credit carry forwards of approximately $3.0 million that will begin to expire in 2027, if unused.


We determine on a regular basis the amount of undistributed earnings that will be reinvested in our non-U.S. operations. This assessment is based on our fiscal objectives and the working capital requirements for each of our foreign subsidiaries. The Tax Cuts and Jobs Act provides for a 100% dividends-received-deduction for foreign-source dividends received from 10% or more owned foreign corporations. Additionally, our foreign income is subject to Subpart F, GILTI and is eligible for foreign tax credits. The tax jurisdictions for the vast majority of our foreign operations do not impose a withholding tax. For these reasons, we have not recognized a deferred tax liability for the unremitted earnings of any of our foreign subsidiaries. Determination of the amount of any deferred income or withholding tax liability is not practicable because of the complexities of the hypothetical calculation.


Cash payments for income taxes, net of refunds received, were $628,000 in 2021 and $59,000 in 2020.

XML 29 R18.htm IDEA: XBRL DOCUMENT v3.22.0.1
Operating Leases
12 Months Ended
Dec. 31, 2021
OPERATING LEASES [Abstract]  
OPERATING LEASES

NOTE 11  OPERATING LEASES


We lease a 61,208 square foot mixed office and warehouse facility in Golden Valley, Minnesota. The lease has a term of 91 months and expires on July 31, 2026. The lease contains a rent escalation clause, one three year renewal option and incentives. Rental expense, including the effects of lease incentives, is recognized on a straight-line basis over the term of the lease. We did not include the renewal option in our accounting for the lease because it is not reasonably certain that we will exercise the option. We are also required to pay insurance, property taxes and other operating expenses related to the leased facility, which are not fixed or tied to an index.


In February 2020, we finalized a new lease for our existing 19,805 square foot mixed office and warehouse facility in Singapore, which serves as a sales, development and final assembly and integration facility for our inspection and metrology system products. The new lease does not contain any incentives or renewal options and runs through July 2023. We also have operating leases for small facilities in Taiwan, the United Kingdom and China which expire in June 2023, May 2023 and November 2022, respectively. Effective January 2022, we have an operating lease for a small facility in Malaysia which expires in December 2023.


The components of our costs for operating leases are as follows:



Year Ended

 Year Ended

Component (in thousands)

December 31, 2021
December 31, 2020

  Operating lease cost

$

742


$ 723

  Variable lease cost

269


272

  Short-term lease cost

39
38

  Total

$

1,050


$ 1,033


Variable lease costs generally consists of real estate taxes and insurance for leased facilities, which are paid based on actual costs incurred by the lessor.  


At December 31, 2021, the future maturities of lease liabilities are as follows:

 

 

 

 

Twelve months ending December 31,

(In thousands)

2022

$

1,016

 

2023

873

 

2024

658

 

2025 674

2026

403

 

Total lease payments

 

3,624

  

Less: amount representing interest
391
Present value of operating lease liabilities $ 3,233

 

At December 31, 2021, the weighted average remaining term of our operating leases was 4.02 years, and the weighted average discount rate applied to our operating leases was 5.31%. At December 31, 2020, the weighted average remaining term of our operating leases was 4.85 years, and the weighted average discount rate applied to our operating leases was 5.2%.


Cash paid for amounts included in the measurement of operating lease liabilities was $1.0 million in 2021 and $975,000 in 2020. Operating lease liabilities and right-of-use assets were increased for new non-cash leases by $941,000 in 2020. 

XML 30 R19.htm IDEA: XBRL DOCUMENT v3.22.0.1
401(K) and Other Defined Contribution Plans
12 Months Ended
Dec. 31, 2021
401(K) AND OTHER DEFINED CONTRIBUTION PLANS [Abstract]  
401(K) AND OTHER DEFINED CONTRIBUTION PLANS

NOTE 12  401(K) AND OTHER DEFINED CONTRIBUTION PLANS

We have a retirement savings plan pursuant to Section 401(k) of the Internal Revenue Code (Code), under which eligible employees may contribute a portion of their earnings, not to exceed annual amounts allowed under the Code. In addition, we may also make contributions at the discretion of the Board of Directors. We provided matching contributions to employees totaling $323,000 in 2021 and $303,000 in 2020.

We also contribute to defined contribution retirement savings plans on behalf of our employees in the United Kingdom and Taiwan. We made contributions to these plans totaling $50,000 in 2021 and $39,000 in 2020.

XML 31 R20.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Concentrations, Significant Customers, and Geographic Areas
12 Months Ended
Dec. 31, 2021
REVENUE CONCENTRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS [Abstract]  
REVENUE CONCENETRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS

NOTE 13  REVENUE CONCENTRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS

The following summarizes our revenue by product line: 


 

 

  Year Ended December 31,

(In thousands)

 

2021

 

2020

High precision 3D and 2D sensors

 

$

25,941

 

 

$

17,522

 

Inspection and metrology systems

 

 

42,958

 

 

37,547

 

Semiconductor sensors

 

 

23,875

 

 

15,048

 

Total

 

$

92,774

 

 

$

70,117

 


Revenue from sales of high precision 3D and 2D sensors based on our 3D Multi-Reflection Suppression™ (MRS™) technology was $17.2 million in 2021 and $11.6 million in 2020. Revenue from sales of inspection and metrology systems based on our 3D MRS sensor technology was $31.0 million in 2021 and $20.2 million in 2020.


In 2021, sales to significant customer A accounted for 17% of our total revenues. In 2020, sales to significant customer A accounted for 14% of our total revenues, and sales to significant customer B accounted for 13% of our total revenues. As of December 31, 2021, accounts receivable from significant customer A were $2.0 million, accounts receivable from significant customer C were $3.6 million and accounts receivable from significant customer D were $2.7 million


Export revenues as a percentage of total revenues were 83% in 2021 and 80% in 2020. Export revenues are attributed to the country where the product is shipped. Substantially all of our export revenues are negotiated, invoiced and paid in U.S. dollars.   


Revenues by geographic area is summarized as follows: 

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

 2021

 

2020

United States

 

$

15,327

 

 

$

14,134

 

Netherlands

 

 

2,700

 

 

2,237

 

Other Europe

 

 

9,649

 

 

7,017

 

China

 

 

30,698

 

 

18,903

 

Singapore

 

 

4,097

 

 

3,797

 

South Korea

 

 

14,809

 

 

6,376

 

Japan

 

 

5,145

 

 

3,172

 

Other Asia

 

 

7,255

 

 

11,702

 

Other

 

 

3,094

 

 

2,779

 

Total revenues

 

$

92,774

 

 

$

70,117

 


Long-lived assets include equipment and leasehold improvements and intangible and other assets attributable to each geographic area’s operations. Long-lived assets at December 31, 2021 and 2020 are as follows:

 

 

 

 

 

 

 

 

 

(In thousands)

 

2021

 

2020

Long-lived assets:

 

 

 

 

 

 

United States

 

$

2,526

 

 

$

2,814

 

Europe

 

13

 

 

6

 

Asia and other

 

1,010

 

 

740

 

Total long-lived assets

 

$

3,549

 

 

$

3,560

  

XML 32 R21.htm IDEA: XBRL DOCUMENT v3.22.0.1
Contingencies
12 Months Ended
Dec. 31, 2021
CONTINGENCIES [Abstract]  
CONTINGENCIES

NOTE 14  CONTINGENCIES


We are periodically a defendant in miscellaneous lawsuits, claims and disputes in the ordinary course of business. While the outcome of these matters cannot be predicted with certainty, management presently believes the disposition of these matters will not have a material effect on our financial position, results of operations or cash flows.

In the normal course of business to facilitate sales of our products and services, we at times indemnify other parties, including customers, with respect to certain matters. In these instances, we have agreed to hold the other parties harmless against losses arising out of intellectual property infringement or other types of claims. These agreements may limit the time within which an indemnification claim can be made, and almost always limits the amount of the claim. It is not possible to determine the maximum potential amount of exposure under these indemnification agreements due to the limited history of prior indemnification claims and the unique facts and circumstances involved in each particular agreement. Historically, payments made, if any, under these agreements have not had a material impact on our operating results, financial position or cash flows.

XML 33 R22.htm IDEA: XBRL DOCUMENT v3.22.0.1
Business Description And Significant Accounting Policies (Policies)
12 Months Ended
Dec. 31, 2021
BUSINESS DESCRIPTION AND SIGNIFICANT ACCOUNTING POLICIES [Abstract]  
Principles of Consolidation

Principles of Consolidation

The consolidated financial statements include the accounts of CyberOptics Corporation and its wholly-owned subsidiaries. In these notes to the consolidated financial statements, these companies are collectively referred to as “CyberOptics,” “we,” “us,” or “our.” All significant inter-company accounts and transactions have been eliminated in consolidation.

Segment Reporting

Segment Reporting

We operate in a single reportable segment that includes the design, development and manufacture of high precision sensing, inspection and metrology solutions for the SMT and semiconductor markets.

Use of Estimates

Use of Estimates

The preparation of consolidated financial statements in conformity with generally accepted accounting principles requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ significantly from those estimates.

Cash and Cash Equivalents

Cash and Cash Equivalents

We consider all highly liquid investments purchased with an original maturity of 90 days or less to be cash equivalents. Cash and cash equivalents consist of funds maintained in demand deposit accounts, money market accounts, certificate of deposits, corporate debt instruments and U.S. government backed obligations. Cash and cash equivalent balances, at times, may exceed federally insured limits.

Marketable Securities

Marketable Securities


We determine the classification of investment securities at the time of purchase. Marketable securities are classified as short-term or long-term in the consolidated balance sheets based on their maturity date and expectations regarding sales. All marketable securities are classified as available-for-sale and are a part of our asset/liability management strategy and may be sold in response to changes in interest rates, prepayment risk or other market factors.


Cash and marketable securities held by foreign subsidiaries totaled $588,000 at December 31, 2021 and $672,000 at December 31, 2020.


Debt Securities


Debt securities consist of U.S. government and agency backed obligations, certificates of deposit, corporate debt instruments, or asset backed securities.

 

Available-for-sale securities are carried at estimated fair value. Unrealized gains and losses for debt securities are reported as a separate component of stockholders’ equity in accumulated other comprehensive income (loss), net of applicable income taxes, until realized. Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The amortized cost and fair value of debt securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of debt securities sold and the resulting realized gains or losses are also determined by specific identification. Interest income and dividends are recognized in interest income on an accrual basis. Premiums and discounts on debt securities are amortized as an adjustment to interest income over the period to maturity of the related security using the effective interest method.

We monitor the carrying value of our debt securities compared to their fair value to determine whether an other-than-temporary impairment (“OTTI”) has occurred. Factors considered in determining whether a loss is other-than-temporary include the length of time and extent to which fair value has been less than the amortized cost basis, credit quality (considering factors such as adverse conditions specific to the issuer and the security and ratings agency actions) and our ability and intent to hold the investment for a period of time sufficient to allow for any anticipated recovery in market value. If a decline in fair value of our debt securities is determined to be other-than-temporary, the amount by which amortized cost exceeds the fair value of a debt security is separated into a component representing the credit loss, which is recognized in earnings, and a component related to all other factors, which is recognized in other comprehensive income (loss). The measurement of the credit loss component is equal to the difference between the debt security’s amortized cost basis and the present value of its expected future cash flows discounted at the security’s effective yield. If we intend to sell the security, or if it is more likely than not we will be required to sell the security before recovery, an OTTI write-down is recognized in earnings equal to the entire difference between the amortized cost basis and fair value of the security.

Equity Securities


Equity securities have readily determinable fair values. Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The fair value of equity securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of equity securities sold and resulting realized gains or losses are also determined by specific identification. Dividends are recognized in interest income on an accrual basis. Unrealized gains and losses for equity securities are reported in net income.


Inventories

Inventories

 

Inventories are stated at the lower of cost or net realizable value, with cost determined using the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business less cost to sell and considers our current assessment of general market and economic conditions, slow-moving inventory and future demand. Appropriate consideration is given to deterioration, obsolescence, and other factors in evaluating net realizable value.  

Accounts Receivable and Allowance for Doubtful Accounts

Accounts and Trade Notes Receivable


We extend unsecured credit to our customers in the normal course of business. We periodically provide financing to customers for the purchase of SQ3000 Multi-Function system products. Trade notes receivable bear interest at annual effective rates ranging from approximately 5% to 7%, and are repayable over periods ranging from 18 to 36 months. The current portion of the trade notes are classified as accounts receivable in the accompanying balance sheets.


Interest income will be discontinued for any trade notes receivable with a specific reserve established if it is likely that we will be unable to collect all amounts due according to the original terms of the trade notes. For these trade notes receivable, cash collection will first be applied as a reduction to principal outstanding. Any cash received in excess of the outstanding principal payments will be recognized as interest income. Trade notes receivable may be removed from non-accrual status with respect to interest income based upon changes in customer circumstances, including a sustained history of payments. At December 31, 2021 and December 31, 2020, none of our trade notes receivable were in a non-accrual status with respect to interest income.


Allowance for Doubtful Accounts and Trade Notes 

 

Allowances for doubtful accounts are maintained for estimated losses resulting from the inability of our customers to make required payments. In making the determination of the appropriate allowance for doubtful accounts, we consider specific accounts, historical write-offs, changes in customer relationships and credit worthiness and concentrations of credit risk. Specific accounts and trade notes receivable are written-off once a determination is made that the account is uncollectible.
Equipment and Leasehold Improvements

Equipment and Leasehold Improvements

 

Equipment and leasehold improvements are stated at cost. Significant additions or improvements extending asset lives are capitalized, while repairs and maintenance are charged to expense as incurred. In-progress costs are capitalized with depreciation beginning when assets are placed in service. Depreciation is recorded using the straight-line method over the estimated useful lives of the equipment, ranging from one to seven years. Leasehold improvements are amortized using the straight-line method over the shorter of the asset useful life or the underlying lease term, ranging from one to eight years. Gains or losses on dispositions are included in current operations.

Goodwill

Goodwill

 

Goodwill represents the excess of purchase price over the fair value of net assets acquired in a business combination. We have determined that we have one reporting unit. We evaluate the carrying value of goodwill annually on December 31st and more frequently if management believes indicators of impairment exist. Such indicators could include, but are not limited to (1) a significant adverse change in legal factors or in business climate, (2) unanticipated competition, or (3) an adverse action or assessment by a regulator. We first assess qualitative factors to determine whether it is more likely than not that our fair value is greater than carrying value (i.e. net book value). If we conclude that it is more likely than not that our fair value is greater than carrying value, no further testing is required. If we conclude that it is more likely than not that our fair value is less than carrying value, we estimate our fair value using the income approach. The income approach is a valuation technique under which we estimate future cash flows using financial forecasts. Future estimated cash flows are discounted to their present value to calculate fair value. When considering fair value, we also give consideration to the control premium in excess of our current market capitalization that might be obtained from a third party acquirer. Goodwill impairment is measured as the amount by which our carrying value exceeds our fair value, but not in an amount in excess of the carrying value of goodwill.

 

On December 31, 2021 and 2020, we performed a qualitative assessment to determine if there was any indication that our goodwill might be impaired. After considering all available evidence, including our financial performance, financial outlook and current market capitalization, we concluded that it is more likely than not that our fair value is greater than carrying value. As a result, no further testing was deemed necessary, and we determined that our goodwill was not impaired. Therefore, no amounts were recorded for goodwill impairment in 2021 or 2020.

Patents

Patents

 

Patents consist of legal and patent registration costs for protection of our proprietary technology. We amortize patent costs on a straight-line basis, based upon their estimated life.

Long Lived Assets


Long Lived Assets

 

Intangible assets subject to amortization and other long-lived assets are reviewed for impairment when events or changes in circumstances indicate that the carrying amount of the assets may not be recoverable. An impairment loss would be recognized when future undiscounted cash flows expected to result from use of the asset and eventual disposition are less than the carrying amount. 

Operating Leases

Operating Leases


We determine if an arrangement is a lease at inception. Operating leases are recorded in operating lease right-of-use (ROU) assets, current operating lease liabilities, and long-term operating lease liabilities in our consolidated balance sheets. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Operating lease ROU assets and liabilities are recognized based on the present value of lease payments over the lease term. The operating lease ROU assets exclude lease incentives. As our leases do not provide an implicit rate, we use our incremental borrowing rate to determine the present value of lease payments. Our leases may include renewal options to extend the lease term, the exercise of which are at our sole discretion. In our accounting treatment of leases, the lease terms used do not include any option to extend the lease, because it is not reasonably certain that we will exercise the option. Lease expense is recognized on a straight-line basis over the lease term. We have lease agreements with lease and non-lease components (e.g., common-area or other maintenance costs) which are generally accounted for separately and expensed monthly. We do not recognize a ROU asset and lease liability for leases having a term of 12 months or less at the effective date.

Revenue Recognition

Revenue Recognition

 

Revenue is measured based on consideration specified in the contract with a customer. A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account for purposes of revenue recognition. Revenue from all customers, including distributors, is recognized when a performance obligation is satisfied by transferring control of a product or service to a customer. Amounts billed to customers for shipping and handling are included in revenue. All shipping and handling costs associated with outbound freight are accounted for as fulfillment costs and are included in cost of sales. Taxes collected from customers and remitted to governmental authorities are excluded from revenue on the net basis of accounting. Accounts receivable are due under normal trade terms, typically 150 days or less.


Our performance obligations are mostly satisfied at a point in time and to a lesser extent over time as work progresses. Revenue for products and services transferred to customers at a point in time is recognized when obligations under the terms of the contract with our customer are satisfied; generally with the transfer of control upon shipment. Sales of some products may require customer acceptance due to performance or other acceptance criteria that is considered more than a formality. For these product sales, revenue is recognized upon notification of customer acceptance.


Sales involving multiple performance obligations typically include the sale of an inspection or metrology systems product, installation and training, and in some cases, an extended warranty. When a sale involves multiple performance obligations, we account for individual products and services separately if the customer can benefit from the product or service on its own or with other resources that are readily available to the customer and the product or service are separately identifiable from other promises in the arrangement. Undelivered performance obligations in an arrangement are typically minimal, consisting of undelivered installation and training services. The consideration is allocated between separate performance obligations in proportion to their estimated stand-alone selling price. If the stand-alone selling price is not directly observable, we use the cost plus margin approach to estimate stand-alone selling price. Costs related to products delivered are recognized in the period revenue is recognized; including product warranties for periods ranging from 1 to 3 years (see Note 9).

 

Periodically, sensor product arrangements with our original equipment manufacturers (OEM's) will create an asset with no alternative use and include an enforceable right to payment. For these arrangements, control is transferred over the manufacturing process; therefore, revenue is recognized over time utilizing an input method based on actual costs incurred in the manufacturing process to date relative to total expected production costs. For certain longer duration 3D scanning service projects, we progress bill as the services are performed. These arrangements create an asset with no alternative use and include an enforceable right to payment. For these arrangements, control is transferred over the hours incurred to complete the scanning project; therefore, revenue is recognized over time utilizing an input method based on actual hours incurred relative to total projected project hours. For maintenance and extended warranty contracts, revenue is recognized over time on a straight-line basis over the term of the contract as the customer simultaneously receives and consumes the benefits of the coverage.

  

Practical Expedients 


We generally expense the incremental costs of obtaining a contract when incurred because the amortization period for these costs would be less than one year. These costs primarily relate to sales commissions and are recorded in selling, general and administrative expense in our consolidated statements of operations. 


We do not disclose the value of unsatisfied performance obligations for contracts with an original expected length of one year or less, primarily consisting of product installation and training. We do not adjust the promised amount of consideration for the effects of a significant financing component if we expect, at contract inception, that the period between when we transfer a promised good or service to a customer and when the customer pays for that good or service will be one year or less.  

Foreign Currency Translation And Transactions

Foreign Currency Translation

Financial position and results of operations of our international subsidiaries are measured using local currency as their functional currency. Assets and liabilities of these operations are translated at the exchange rates in effect at each fiscal year-end. Statements of operations accounts are translated at the average rates of exchange prevailing during the year. Translation adjustments arising from the use of differing exchange rates from period to period are included as a cumulative translation adjustment in stockholders’ equity.

Foreign Currency Transactions

Foreign currency transaction gains and losses are included in interest income and other, net in the statement of operations. We recognized foreign currency transaction losses of $11,000 in 2021. We recognized foreign transaction gains of $27,000 in 2020.


Research and Development

Research and Development

Research and development (R&D) costs, including product software development, are expensed when incurred. Product software development costs are required to be expensed until the point that technological feasibility and proven marketability of the product are established; costs otherwise capitalizable after such point also are expensed because they are insignificant. All other R&D costs are expensed as incurred. R&D expenses consist primarily of salaries, project materials, contract labor and other costs associated with ongoing product development and enhancement efforts.

Advertising Costs

Advertising Costs

We expense all advertising costs as incurred. Advertising expenses were $252,000 in 2021 and $371,000 in 2020.

Warranty Costs Warranty Costs

 

We provide for the estimated cost of product warranties, which cover products for periods ranging from one to three years at the time revenue is recognized.
Income Taxes

Income Taxes

We evaluate uncertain tax positions using the “more likely than not” threshold (i.e., a likelihood of occurrence greater than fifty percent). The recognition threshold is met when an entity concludes that a tax position, based solely on its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are classified as a gross unrecognized tax benefit until the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statute of limitations. De-recognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained. Our net unrecognized tax benefit ("UTB") is a long-term income tax reserve within our consolidated balance sheets.

 

Only the portion of the UTB that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statute of limitations) or are not expected to be paid within one year are not classified as current. It is our policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.

Deferred income taxes are recorded to reflect the tax consequences in future years of differences between the financial reporting and tax bases of assets and liabilities. We have made an accounting policy election to record the U.S. income tax effect of future global intangible low-taxed income ("GILTI") inclusions in the period in which they arise, rather than establishing deferred taxes with respect to the expected future tax liabilities associated with future GILTI inclusion. Income tax expense is the sum of the tax currently payable and the change in the deferred tax assets and liabilities during the period, excluding changes in deferred tax assets recorded to goodwill or accumulated other comprehensive loss. Valuation allowances are established when, in the opinion of management, it is more likely than not that some portion or all of the deferred tax assets will not be realized. We assess the realizability of our deferred tax assets and the need for a valuation allowance based on all positive and negative evidence.

Net Income Per Share

Net Income Per Share


Basic net income per basic share is computed by dividing net income by the weighted average number of common shares outstanding during the period. Net income per diluted share is computed by dividing net income by the weighted average number of common and common equivalent shares outstanding during the period. Common equivalent shares consist of common shares to be issued upon exercise of stock options, vesting of restricted stock units, vesting of restricted shares and from purchases of shares under our employee stock purchase plan, as calculated using the treasury stock method. Common equivalent shares are excluded from the calculation of net income per diluted share if their effect is anti-dilutive.

Comprehensive Income


Comprehensive Income


Total comprehensive income and the components of accumulated other comprehensive loss are presented in the Consolidated Statements of Comprehensive Income and the Consolidated Statements of Stockholders' Equity. Accumulated other comprehensive loss is composed of foreign currency translation effects and unrealized gains and losses on available-for-sale marketable debt securities. We use the individual item approach for releasing income tax effects from accumulated other comprehensive loss. 

Fair Value of Financial Instruments

Fair Value of Financial Instruments 


The carrying amounts of financial instruments such as cash equivalents, accounts receivable, other assets, accounts payable, advance customer payments, accrued expenses and other liabilities approximate their related fair values due to the short-term maturities of these instruments. The fair value for trade notes receivable is based on discounted future cash flows using current interest rates that would be offered for a similar transaction to a similarly situated customer. The difference between the carrying amount and estimated fair value for trade notes receivable is immaterial.


See Note 6 for information related to fair value of marketable securities. 

Share-Based Compensation

Share-Based Compensation


All share-based payments to employees, including grants of stock options, are required to be recognized as an expense in our consolidated statements of operations based on the grant date fair value of the award. We utilize the straight-line method of expense recognition over the award’s service period for our graded vesting options. The fair value of stock options has been determined using the Black-Scholes model. We account for the impact of forfeitures related to employee share-based payment arrangements when the forfeitures occur. We have classified employee share-based compensation within our consolidated statements of operations in the same manner as our cash based employee compensation costs.

See Note 7 to the consolidated financial statements for additional information related to employee share-based compensation. 

Related Party Transactions

Related Party Transactions


We periodically sell or purchase products from companies for which our board members serve in an executive capacity and in some cases on the board of directors. These transactions occur in the normal course of business. Our cumulative sales to these companies were $387,000 in 2021 and $40,000 in 2020Accounts receivable due from related party sales were $185,000 as of December 31, 2021 and $3,000 as of December 31, 2020. Our cumulative purchases from these companies were $61,000 in 2021 and $59,000 in 2020. 


Recent Accounting Developments

Recent Accounting Developments


In June 2016, the FASB issued ASU No. 2016-13, Measurement of Credit Losses on Financial Instruments, which revises guidance for the accounting for credit losses on financial instruments within its scope, and in November 2018, issued ASU No. 2018-19, which amended the standard. The new standard introduces an approach to estimating credit losses that is based on expected losses (referred to as the current expected credit losses model), and applies to most financial assets measured at amortized cost and certain other instruments, including available-for-sale marketable debt securities, trade and other receivables. The new standard is effective for us on January 1, 2023, with early adoption permitted. We are required to apply the standard’s provisions as a cumulative-effect adjustment to retained earnings as of the beginning of the first reporting period in which the guidance is adopted. We presently do not believe the new standard will have a material impact on our consolidated financial statements.


No other new accounting pronouncements are expected to have a significant impact on our consolidated financial statements.

XML 34 R23.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Recognition (Tables)
12 Months Ended
Dec. 31, 2021
REVENUE RECOGNITION  
Summary of revenue performance obligations The following is a summary of our revenue performance obligations:


For the Year Ended December 31,


2021
2020

(In thousands)


Revenues


Percent of Revenues


Revenues

Percent of Revenues

Revenue recognized over time
$ 2,253
2.4 %
$ 1,715
2.4 %
Revenue recognized at a point in time

90,521
97.6 %

68,402
97.6 %


$ 92,774
100.0 %
$ 70,117
100.0 %
Summary of contract assets and contract liabilities

The following summarizes our contract assets and contract liabilities: 


(In thousands)

 

December 31, 2021

December 31, 2020

Contract assets, included in other current assets

 

$

7

 

 

$

 2

 

Contract liabilities - advance customer payments

 

$

289

 

 

$

567

 

Contract liabilities - deferred warranty revenue
$ 445

$ 344
Summary of the amounts reclassified from beginning contract liabilities to revenue

The following summarizes the amounts reclassified from beginning contract liabilities to revenue:

Year Ended December 31,

(In thousands)

 

2021

2020

Amounts reclassified from beginning contract liabilities to revenue

 

$

393

 

 

$

 171

 

Amounts reclassified from deferred warranty revenue

263

193

Total

$

656

$

364

XML 35 R24.htm IDEA: XBRL DOCUMENT v3.22.0.1
Marketable Securities (Tables)
12 Months Ended
Dec. 31, 2021
MARKETABLE SECURITIES [Abstract]  
Schedule of Marketable Securities

Our investments in marketable securities are classified as available-for-sale and consist of the following: 

 

 

December 31, 2021

(In thousands)

 

Amortized Cost

 

Unrealized
Gains

 

Unrealized
Losses

 

Fair Value

Short-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

3,005

 

 

$

13

 

 

$

 

$

3,018

 

Corporate debt securities and certificates of deposit

 

4,177

 

 

8

 

 

(2

)

 

4,183

 

Asset backed securities

 

125

 

 

1

 

 

 

126

 

Marketable securities – short-term

 

$

7,307

 

 

$

22

 

 

$

(2

)

 

$

7,327

 

Long-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

9,921

 

 

$

5

 

 

$

(57

)

 

$

9,869

 

Corporate debt securities and certificates of deposit

 

4,869

 

 

9

 

 

(18

)

 

4,860

 

Asset backed securities

 

2,511

 

 

9

 

 

(11

)

 

2,509

 

Equity security

 

42

 

 

1

 

 

 

43

 

Marketable securities – long-term

 

$

17,343

 

 

$

24

 

 

$

(86

)

 

$

17,281

 



 

December 31, 2020

(In thousands)

 

Amortized Cost

 

Unrealized
Gains

 

Unrealized
Losses

 

Fair Value

Short-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

4,817

 

 

$

36

 

 

$

 

$

4,853

 

Corporate debt securities and certificates of deposit

 

3,113

 

 

21

 

 

 

3,134

 

Asset backed securities

 

133

 

 

1

 

 

 

134

 

Marketable securities – short-term

 

$

8,063

 

 

$

58

 

 

$

 

$

8,121

 

Long-Term

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

7,529

 

 

$

66

 

 

$

 

$

7,595

 

Corporate debt securities and certificates of deposit

 

3,975

 

 

61

 

 

(1

)

 

4,035

 

Asset backed securities

 

2,347

 

 

45

 

 

 

2,392

 

Equity security

 

42

 

 

 

 

(12

)

 

30

 

Marketable securities – long-term 

 

$

13,893

 

 

$

172

 

 

$

(13

)

 

$

14,052

  

Schedule of Unrealized Loss Position


In Unrealized Loss Position For
Less Than 12 Months
 
 In Unrealized Loss Position For
Greater Than 12 Months
(In thousands)  
 
Fair Value
 
Gross Unrealized
Losses
 
Fair Value
 
Gross Unrealized
Losses
December 31, 2021
 
 

 
 

 
 

 
 

U.S. government and agency obligations
 
$
9,250

 
$
(57
)
 
$
 
$
Corporate debt securities and certificates of deposit
 
5,188

 
(18
)
 
355
 
(2
)
Asset backed securities


1,278



(11
)






Marketable securities
 
$
15,716

 
$
(86
)
 
$
355
 
$
(2
)
December 31, 2020
 
 

 
 

 
 

 
 

U.S. government and agency obligations
 
$
330

 
$
 
$
 
$
Corporate debt securities and certificates of deposit
 
411

 
(1
)
 
 
Marketable securities
 
$
741

 
$
(1
)
 
$
 
$
XML 36 R25.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Comprehensive Income (Loss) (Tables)
12 Months Ended
Dec. 31, 2021
OTHER COMPREHENSIVE INCOME (LOSS)  
The Effect of the Reclassification from Other Comprehensive Income (Loss) to Earnings Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss) are as follows:

 


Year Ended December 31, 2021

 

Year Ended December 31, 2020

(In thousands)

 

Before Tax

 

Tax Effect

 

Net of Tax
Amount

 

Before Tax

 

Tax Effect

 

Net of Tax
Amount

Foreign currency translation adjustments

 

$

(193

)

 

$

 

$

(193

)

 

$

190

 

$

 

$

190

Unrealized gains (losses) on available-for-sale securities

 

(272

)

 

57

 

(215

)

 

145


 

(31

)

 

114

Other comprehensive income (loss)

 

$

(465

)

 

$

57

 

$

(408

)

 

$

335

 

$

(31

)

 

$

304

Schedule of Accumulated Other Comprehensive Loss

At December 31, 2021 and December 31, 2020 components of accumulated other comprehensive loss is as follows:

 

 

 

 

 

 

 

 

 

 

 

 

 

(In thousands)

 

Foreign
Currency
Translation
Adjustments

 

Available-
for-Sale
Securities

 

Accumulated
Other
Comprehensive
Loss

Balances at December 31, 2019

 

$

(1,475

)

 

$

69

 

$

(1,406

)

Other comprehensive income for the year ended December 31, 2020

 

190

 

114

 

304

Balances at December 31, 2020

 

$

(1,285

)

 

$

183

 

$

(1,102

Other comprehensive loss for the year ended December 31, 2021

 

 

(193

)

 

 

(215

)

 

 

(408

)

Balances at December 31, 2021

 

$

(1,478

 

$

(32

)

 

$

(1,510

)
XML 37 R26.htm IDEA: XBRL DOCUMENT v3.22.0.1
Fair Value Measurements (Tables)
12 Months Ended
Dec. 31, 2021
FAIR VALUE MEASUREMENTS [Abstract]  
Fair Value Measurements for Marketable Securities and Foreign Exchange Forward Contracts The following provides information regarding fair value measurements for our marketable securities as of December 31, 2021 and December 31, 2020 according to the three-level fair value hierarchy.

 

 

Fair Value Measurements at
December 31, 2021 Using

(In thousands)

 

Balance
December 31, 2021

 

Quoted Prices
in Active
Markets for
Identical
Assets
(Level 1)

 

Significant
Other Observable Inputs
(Level 2)

 

Significant
Unobservable Inputs
(Level 3)

Marketable securities:

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

12,887

 

 

$

 

 

$

12,887

 

 

$

 

Corporate debt securities and certificates of deposit

 

9,043

 

 

 

 

9,043

 

 

 

Asset backed securities

 

2,635

 

 

 

 

2,635

 

 

 

Equity security

 

43

 

 

43

 

 

 

 

 

Total marketable securities

 

$

24,608

 

 

$

43

 

 

$

24,565

 

 

$

  

 

 

 

Fair Value Measurements at
December 31, 2020 Using

(In thousands)

 

Balance
December 31, 2020

 

Quoted Prices
in Active
Markets for
Identical
Assets
(Level 1)

 

Significant
Other Observable Inputs
(Level 2)

 

Significant
Unobservable Inputs
(Level 3)

Marketable securities:

 

 

 

 

 

 

 

 

 

 

 

 

U.S. government and agency obligations

 

$

12,448

 

 

$

 

 

$

12,448

 

 

$

 

Corporate debt securities and certificates of deposit

 

7,169

 

 

 

 

7,169

 

 

 

Asset backed securities

 

2,526

 

 

 

 

2,526

 

 

 

Equity security

 

30

 

 

30

 

 

 

 

 

Total marketable securities

 

$

22,173

 

 

$

30

 

 

$

22,143

 

 

$

  

XML 38 R27.htm IDEA: XBRL DOCUMENT v3.22.0.1
Share-Based Compensation (Tables)
12 Months Ended
Dec. 31, 2021
SHARE-BASED COMPENSATION [Abstract]  
Schedule Of Stock Option Activity

The following is a summary of activity in stock options for 2021:

 

 

 

 

 

 

 

 


 

Options Outstanding

 

Weighted Average Exercise
Price Per Share

Outstanding, December 31, 2020

 

419,100

 

 

$

15.22

 

Granted

 

24,000

 

 

42.90

 

Exercised

 

(89,500

)

 

11.26

 

Forfeited
(1,775 )
17.52

Outstanding, December 31, 2021

 

351,825

 

 

$

18.11

 

Exercisable, December 31, 2021

 

257,026

 

 

$

14.82

 

Schedule Of Stock Option Valuation Assumptions

For stock options granted in the two-year period ended December 31, 2021, we utilized the fair value of our common stock on the date of grant and employed the following key assumptions in computing fair value using the Black-Scholes option-pricing model:


 

 

 

 

 

 

 

 

2021

 

2020

Risk-free interest rates

1.15% - 1.18%

 

0.44% - 0.50%

Expected life in years

5.19 - 5.64 

 

5.12 - 5.55

Expected volatility

 58.02% - 58.44%

 

59.43% - 59.81%

Dividend yield

0.00%

 

0.00%

Weighted average fair value on grant date

$22.24

 

$14.58

Schedule Of Non-Vested Restricted Stock Activity

The following is a summary of activity in restricted shares and restricted stock units for 2021:

 

Non-vested restricted stock units

 

Shares

 

Weighted Average Grant Date
Fair Value

Non-vested at December 31, 2020

 

68,454

 

 

$

21.45

 

Granted

 

24,100

 

 

37.94

 

Vested

 

(33,322

)

 

21.56

 

Forfeited
(1,331 )
23.03

Non-vested at December 31, 2021

 

57,901

 

 

$

28.21

 

Summary Of Pre-tax Equity Based Compensation Expense

 

 

 

 


 

 

 

 

(In thousands)

 

 2021


 

2020

Pre-tax share-based compensation expense

 

$

1,347


 

$

1,181

 

Income tax benefits related to share-based compensation

 

$

833



$

712

 

XML 39 R28.htm IDEA: XBRL DOCUMENT v3.22.0.1
Net Income Per Share (Tables)
12 Months Ended
Dec. 31, 2021
NET INCOME PER SHARE [Abstract]  
Schedule of Net Income Per Basic and Diluted Shares The components of net income per basic and diluted share were as follows:
   
(In thousands except per share amounts)
 
Net Income
 
Weighted Average Shares Outstanding
 
Per Share Amount
Year Ended 12/31/2021:
 
 
 

 
 
 
 
 

Basic
 
$
12,751

 
7,320
 
 
$
1.74

Dilutive effect of common equivalent shares
 

 
217
 
 
(0.05
)
Dilutive
 
$
12,751

 
7,537
 
 
$
1.69

 

 

 

 

 

 

 

 

 

 

 

 

(In thousands except per share amounts)

 

Net Income

 

Weighted Average Shares Outstanding

 

Per Share Amount

Year Ended 12/31/2020:

 

 

 

 

 

 

 

 

 

Basic

 

$

5,742

 

 

7,215

 

 

$

0.80

 

Dilutive effect of common equivalent shares

 

 

 

239

 

 

(0.03

)

Dilutive

 

$

5,742

 

 

7,454

 

 

$

0.77

 

XML 40 R29.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Tables)
12 Months Ended
Dec. 31, 2021
OTHER FINANCIAL STATEMENT DATA [Abstract]  
Schedule of Inventory Components

Inventories consist of the following:

 

 

 

 

 

 

 

 

 

 

 

December 31,

(In thousands)

 

2021

 

2020

Raw materials and purchased parts

 

$

18,013

 

 

$

11,903

 

Work in process

 

1,655

 

 

2,459

 

Finished goods

 

6,859

 

 

4,208

 

Demonstration inventories, net
1,075

1,701

Total inventories

 

$

27,602

 

 

$

20,271

 

Schedule of Equipment and Leasehold Improvements

Equipment and leasehold improvements consist of the following: 

 

 

 

 

 

 

 

 

 

 

 

December 31,

(In thousands)

 

2021

 

2020

Equipment

 

$

16,051

 

 

$

15,070

 

Leasehold improvements

 

3,070

 

 

3,072

 

 

 

19,121

 

 

18,142

 

Accumulated depreciation and amortization

 

(15,947

)

 

(14,907

)

 

 

$

3,174

 

 

$

3,235

 

Schedule of Intangible Assets

Intangible assets consist of the following:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

December 31, 2021

 

December 31, 2020

(In thousands)

 

Gross Carrying
Amount

 

Accumulated Amortization

 

Net

 

Gross Carrying
Amount

 

Accumulated Amortization

 

Net

Patents

 

$

1,972


 

$

(1,614

)

 

$

358

 

 

$

1,832

 

 

$

(1,542

)

 

$

290

 

Software

 


206


 

(206

)

 

 

 

206

 

 

(200

)

 

6

 

Marketing assets and customer relationships

 


86


 

(69

)

 

17

 

 

101

 

 

(72

)

 

29

 

 

 

$

2,264


 

$

(1,889

)

 

$

375

 

 

$

2,139

 

 

$

(1,814

)

 

$

325

  

Schedule of Amortization Expense for Intangible Assets

Amortization expense in 2021 and 2020 was as follows:

 

 

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

 

Weighted Avg. Remaining Life-Years at December 31, 2021

(In thousands)

 

2021

 

2020

 

Patents

 

$

187

 

 

$

153

 

 

1.6

Software

 

6

 

 

29

 

 

Marketing assets and customer relationships

 

8

 

 

9

 

 

2.2

 

 

$

201

 

 

$

191

 

 

  

Schedule of Accrued Expenses

Accrued expenses consist of the following:

 

 

December 31,

(In thousands)

 

2021

 

2020

Wages and benefits

 

$

2,966

 

 

$

2,768

 

Warranty liability

 

949

 

 

793

 

Income taxes payable
341

269

Other

 

162

 

 

63

 

 

 

$

4,418

 

 

$

3,893

  

Other Noncurrent Liabilities

Other liabilities consist of the following:

 

 

 

 

 

 

 

 

 

 

 

December 31,

(In thousands)

 

2021

 

2020

Deferred warranty revenue

 

$

135

 

 

$

88

 

Warranty liability

 

42

 

 

46

 

 

 

$

177

 

 

$

134

 

Schedule of Changes in Estimated Warranty Liability

A reconciliation of the changes in our estimated warranty liability is as follows:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,  

(In thousands)

 

2021

 

2020 

 

Balance at beginning of period

 

$

839

 

 

$

798

 

Accrual for warranties

 

1,024

 

 

836

 

Warranty revision


(53

)

 

43

Settlements made during the period

 

(819

)

 

(838

)

Balance at end of period

 

991

 

 

839

 

Current portion of estimated warranty liability

 

(949

)

 

(793

)

Long-term estimated warranty liability

 

$

42

 

 

$

46

 

Schedule of Changes in Deferred Warranty Revenue A reconciliation of the changes in our deferred warranty revenue is as follows:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31, 

(In thousands)

 

2021

 

2020 

 

Balance at beginning of period

 

$

344

 

 

$

275

 

Revenue deferrals

 

575

 

 

434

 

Amortization of deferred revenue

 

(474

)

 

(365

)

Total deferred warranty revenue

 

445

 

 

344

 

Current portion of deferred warranty revenue

 

(310

)

 

(256

)

Long-term deferred warranty revenue

 

$

135

 

 

$

88

  

XML 41 R30.htm IDEA: XBRL DOCUMENT v3.22.0.1
Income Taxes (Tables)
12 Months Ended
Dec. 31, 2021
INCOME TAXES [Abstract]  
Schedule Of Income Before Income Taxes

Income before income taxes consists of the following:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Sources of income before income taxes:

 

 

 

 

 

 

 

United States

 

$

12,741

 

$

4,876

Foreign

 


1,754


 

1,478

 

Total income before income taxes

 

14,495


 

$

6,354

 

Schedule Of Provision (Benefit) For Income Taxes

The provision for income taxes consists of the following:

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Current:

 


 

 

 

 

Federal

 

$

417

 

$

26

State

 

46

 

 

19

 

Foreign

 

298

 

201

Total current

 

761

 

$

246

Deferred:

 


 

 

 

 

Federal

 

$

960

 

$

361

State

 

(1

)

 

 

Foreign

 

24

 

5

Total deferred

 

$

983

 

$

366

Total provision for income taxes

 

$

1,744

 

$

612


Schedule Of A Reconciliation Of The Statutory Rate To The Effective Income Tax Rate

A reconciliation of the statutory rate to the effective income tax rate is as follows:

 

 

 

 

 

 

 

 

 

Year Ended December 31,

 

 

2021

 

 

2020

Federal statutory rate

 

21.0

%


21.0

%

State income taxes, net of federal benefit

 

0.3

 

 

0.2

 

Global Intangible Low-Taxed Income (GILTI)/Foreign Derived Intangible Income (FDII)

 

(2.9

)

 

2.1

 

Share-based compensation

 

(3.8

)

 

(7.4

)

Research and experimentation (R&D) credit

 

(2.3

)

 

(3.2

)

Foreign tax credit
(1.0 )
(2.2 )

Foreign rate difference

 

(0.4

)

 

(1.1

)

Valuation allowance

 

0.5

 

(4.2

)
Expiring and unrecognized deferred tax attributes 


3.7

Other, net

 

0.6

 

 

0.7

 

Effective tax rate

 

12.0

%


9.6

%
Summary Of A Reconciliation Of The Beginning And Ending Amount Of Gross Unrecognized Tax Benefits ("UTB")

A reconciliation of the beginning and ending amount of gross unrecognized tax benefits (“UTB”) is as follows:

 

 


 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

2021

 

2020

Gross UTB balance at beginning of year

 

$

1,789

 

 

$

1,761

 

Additions based on tax positions related to the current year

 

231

 

 

137

 

Additions for tax positions of prior years

 

1

 

 

60

 

Reductions for tax positions of prior years

 

(39

)

 

(169

)

Gross UTB balance at end of year

 

$

1,982

 

 

$

1,789

 

Net UTB balance at end of year

 

$

214

 

 

$

197

 

Schedule Of Deferred Tax Assets And Liabilities

Deferred tax assets and liabilities consist of the following:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

December 31, 2021

 

December 31, 2020

(In thousands)

 

Assets

 

Liabilities

 

Assets

 

Liabilities

Equipment, leaseholds and intangible amortization, net

 

$

185

 

 

$

230

 

 

$

176

 

 

$

251

 

Operating lease liabilities

672







839



Right-of-use assets (operating leases)




369







478

Inventory allowances

 

550

 

 

20

 

 

549

 

 

5

 

Accrued expenses

 

130

 

 

 

 

129

 

 

 

Warranty accrual

 

214

 

 

 

 

182

 

 

 

Deferred revenue

 

312

 

 


 

 

214

 

 

 

Federal and state tax credits

 

2,992

 

 


 

 

3,960

 

 

 

State net operating loss carry forwards

 

233

 

 

 

 

275

 

 

 

Share-based compensation

 

361

 

 


 

 

358

 

 

 

Other, net

 

131

 

 

 

 

113

 

 

50

 

Subtotal

 

5,780

 

 

619

 

 

6,795

 

 

784

 

Valuation allowance

 

(1,493

)

 


 

 

(1,414

)

 

 

Total deferred tax assets and liabilities

 

$

4,287

 

 

$

619

 

 

$

5,381

 

 

$

784

  

XML 42 R31.htm IDEA: XBRL DOCUMENT v3.22.0.1
Operating Leases (Tables)
12 Months Ended
Dec. 31, 2021
OPERATING LEASES [Abstract]  
Schedule of components of our costs for operating leases

The components of our costs for operating leases are as follows:



Year Ended

 Year Ended

Component (in thousands)

December 31, 2021
December 31, 2020

  Operating lease cost

$

742


$ 723

  Variable lease cost

269


272

  Short-term lease cost

39
38

  Total

$

1,050


$ 1,033
Schedule Of Future Minimum Lease Payments Required Under Non-cancelable Operating Lease Agreements At December 31, 2021, the future maturities of lease liabilities are as follows:

 

 

 

 

Twelve months ending December 31,

(In thousands)

2022

$

1,016

 

2023

873

 

2024

658

 

2025 674

2026

403

 

Total lease payments

 

3,624

  

Less: amount representing interest
391
Present value of operating lease liabilities $ 3,233
XML 43 R32.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Concentrations, Significant Customers, and Geographic Areas (Tables)
12 Months Ended
Dec. 31, 2021
REVENUE CONCENTRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS [Abstract]  
Summary Of Revenue By Product Line

The following summarizes our revenue by product line: 


 

 

  Year Ended December 31,

(In thousands)

 

2021

 

2020

High precision 3D and 2D sensors

 

$

25,941

 

 

$

17,522

 

Inspection and metrology systems

 

 

42,958

 

 

37,547

 

Semiconductor sensors

 

 

23,875

 

 

15,048

 

Total

 

$

92,774

 

 

$

70,117

 

Schedule Of Revenue By Geographic Area

Revenues by geographic area is summarized as follows: 

 

 

 

 

 

 

 

 

 

 

 

Year Ended December 31,

(In thousands)

 

 2021

 

2020

United States

 

$

15,327

 

 

$

14,134

 

Netherlands

 

 

2,700

 

 

2,237

 

Other Europe

 

 

9,649

 

 

7,017

 

China

 

 

30,698

 

 

18,903

 

Singapore

 

 

4,097

 

 

3,797

 

South Korea

 

 

14,809

 

 

6,376

 

Japan

 

 

5,145

 

 

3,172

 

Other Asia

 

 

7,255

 

 

11,702

 

Other

 

 

3,094

 

 

2,779

 

Total revenues

 

$

92,774

 

 

$

70,117

 

Schedule Of Long-lived Assets Attributable To Each Geographic Area's Operations Long-lived assets at December 31, 2021 and 2020 are as follows:

 

 

 

 

 

 

 

 

 

(In thousands)

 

2021

 

2020

Long-lived assets:

 

 

 

 

 

 

United States

 

$

2,526

 

 

$

2,814

 

Europe

 

13

 

 

6

 

Asia and other

 

1,010

 

 

740

 

Total long-lived assets

 

$

3,549

 

 

$

3,560

  

XML 44 R33.htm IDEA: XBRL DOCUMENT v3.22.0.1
Business Description And Significant Accounting Policies (Details)
12 Months Ended
Dec. 31, 2021
USD ($)
reporting_unit
Dec. 31, 2020
USD ($)
Business Description And Significant Accounting Policies [Line Items]    
Cash held in foreign accounts $ 588,000 $ 672,000
Number of reporting units | reporting_unit 1  
Goodwill impairment $ 0 0
Maximum period in which accounts receivable become due 150 days  
Recognized foreign currency transactions gain (loss) $ (11,000) 27,000
Advertising expense $ 252,000 371,000
Minimum [Member]    
Business Description And Significant Accounting Policies [Line Items]    
Trade notes receivable interest rate stated percentage 5.00%  
Trade notes receivable repayment period 18 months  
Estimated useful lives of the equipment and leasehold improvements (in years) 1 year  
Warranty period 1 year  
Warranty period (in years) 1 year  
Maximum [Member]    
Business Description And Significant Accounting Policies [Line Items]    
Trade notes receivable interest rate stated percentage 7.00%  
Trade notes receivable repayment period 36 months  
Estimated useful lives of the equipment and leasehold improvements (in years) 7 years  
Warranty period 3 years  
Warranty period (in years) 3 years  
Leasehold Improvements [Member] | Minimum [Member]    
Business Description And Significant Accounting Policies [Line Items]    
Estimated useful lives of the equipment and leasehold improvements (in years) 1 year  
Leasehold Improvements [Member] | Maximum [Member]    
Business Description And Significant Accounting Policies [Line Items]    
Estimated useful lives of the equipment and leasehold improvements (in years) 8 years  
Affiliated Entity [Member]    
Business Description And Significant Accounting Policies [Line Items]    
Sales to related party $ 387,000 40,000
Cumulative purchases 61,000 59,000
Accounts receivable due from related party sales $ 185,000 $ 3,000
XML 45 R34.htm IDEA: XBRL DOCUMENT v3.22.0.1
Covid-19 Pandemic (Narrative) (Details)
12 Months Ended
Dec. 31, 2021
USD ($)
Singapore [Member] | Jobs Support Program [Member] | Reduced Employee Expenses [Member]  
Effects on Future Earnings and Cash Flows Resulting from Exit Plan [Line Items]  
Operating expenses $ 410,000
XML 46 R35.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Recognition (Narrative) (Details) - Effect of adoption of Topic 606 [Member] - Accounting Standards Update 2014-09 [Member] - USD ($)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
REVENUE RECOGNITION - TOPIC 606    
Impairment losses for contract assets $ 0 $ 0
Minimum [Member]    
REVENUE RECOGNITION - TOPIC 606    
Period for deferred warranty revenue expected to be recognized 1 year  
Maximum [Member]    
REVENUE RECOGNITION - TOPIC 606    
Period for deferred warranty revenue expected to be recognized 3 years  
XML 47 R36.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Recognition (Summary Of Revenue Performance Obligations) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Performance Obligations    
Revenues $ 92,774 $ 70,117
Percent of Revenues 100.00% 100.00%
Revenue recognized over time [Member]    
Performance Obligations    
Revenues $ 2,253 $ 1,715
Percent of Revenues 2.40% 2.40%
Revenue recognized at a point in time [Member]    
Performance Obligations    
Revenues $ 90,521 $ 68,402
Percent of Revenues 97.60% 97.60%
XML 48 R37.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Recognition (Summary Of Contract Assets And Contract Liabilities) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
REVENUE RECOGNITION    
Contract assets, included in other current assets $ 7 $ 2
Contract liabilities - advance customer payments 289 567
Contract liabilities - deferred warranty revenue $ 445 $ 344
XML 49 R38.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Recognition (Summary of the amounts reclassified from beginning contract liabilities to revenue) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
REVENUE RECOGNITION    
Amounts reclassified from beginning contract liabilities to revenue $ 393 $ 171
Amounts reclassified from deferred warranty revenue 263 193
Total $ 656 $ 364
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.22.0.1
Marketable Securities (Schedule Of Marketable Securities) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Short-Term [Member]    
Gain (Loss) on Investments [Line Items]    
Cost $ 7,307 $ 8,063
Unrealized Gains 22 58
Unrealized Losses (2) 0
Fair Value 7,327 8,121
Long-Term [Member]    
Gain (Loss) on Investments [Line Items]    
Cost 17,343 13,893
Unrealized Gains 24 172
Unrealized Losses (86) (13)
Fair Value 17,281 14,052
U.S. Government And Agency Obligations [Member] | Short-Term [Member]    
Gain (Loss) on Investments [Line Items]    
Cost 3,005 4,817
Unrealized Gains 13 36
Unrealized Losses 0 0
Fair Value 3,018 4,853
U.S. Government And Agency Obligations [Member] | Long-Term [Member]    
Gain (Loss) on Investments [Line Items]    
Cost 9,921 7,529
Unrealized Gains 5 66
Unrealized Losses (57) 0
Fair Value 9,869 7,595
Corporate Debt Securities And Certificates Of Deposit [Member] | Short-Term [Member]    
Gain (Loss) on Investments [Line Items]    
Cost 4,177 3,113
Unrealized Gains 8 21
Unrealized Losses (2) 0
Fair Value 4,183 3,134
Corporate Debt Securities And Certificates Of Deposit [Member] | Long-Term [Member]    
Gain (Loss) on Investments [Line Items]    
Cost 4,869 3,975
Unrealized Gains 9 61
Unrealized Losses (18) (1)
Fair Value 4,860 4,035
Asset Backed Securities [Member] | Short-Term [Member]    
Gain (Loss) on Investments [Line Items]    
Cost 125 133
Unrealized Gains 1 1
Unrealized Losses 0 0
Fair Value 126 134
Asset Backed Securities [Member] | Long-Term [Member]    
Gain (Loss) on Investments [Line Items]    
Cost 2,511 2,347
Unrealized Gains 9 45
Unrealized Losses (11) 0
Fair Value 2,509 2,392
Equity Security [Member] | Long-Term [Member]    
Gain (Loss) on Investments [Line Items]    
Cost 42 42
Unrealized Gains 1 0
Unrealized Losses 0 (12)
Fair Value $ 43 $ 30
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.22.0.1
Marketable Securities (Schedule Of Unrealized Loss Position) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Fair Value    
In Unrealized Loss Position For Less Than 12 Months $ 15,716 $ 741
In Unrealized Loss Position For Greater Than 12 Months 355 0
Gross Unrealized Losses    
In Unrealized Loss Position For Less Than 12 Months (86) (1)
In Unrealized Loss Position For Greater Than 12 Months (2) 0
U.S. Government And Agency Obligations [Member]    
Fair Value    
In Unrealized Loss Position For Less Than 12 Months 9,250 330
In Unrealized Loss Position For Greater Than 12 Months 0 0
Gross Unrealized Losses    
In Unrealized Loss Position For Less Than 12 Months (57) 0
In Unrealized Loss Position For Greater Than 12 Months 0 0
Corporate Debt Securities And Certificates Of Deposit [Member]    
Fair Value    
In Unrealized Loss Position For Less Than 12 Months 5,188 411
In Unrealized Loss Position For Greater Than 12 Months 355 0
Gross Unrealized Losses    
In Unrealized Loss Position For Less Than 12 Months (18) (1)
In Unrealized Loss Position For Greater Than 12 Months (2) $ 0
Asset Backed Securities [Member]    
Fair Value    
In Unrealized Loss Position For Less Than 12 Months 1,278  
In Unrealized Loss Position For Greater Than 12 Months 0  
Gross Unrealized Losses    
In Unrealized Loss Position For Less Than 12 Months (11)  
In Unrealized Loss Position For Greater Than 12 Months $ 0  
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.22.0.1
Marketable Securities (Narrative) (Details) - USD ($)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Gain (Loss) on Investments [Line Items]    
Maximum maturity of debt securities (less than 5 years) 5 years  
Net pre-tax unrealized losses $ 43,000  
Net pre-tax unrealized gains   $ 229,000
Proceeds from sales of marketable securities 225,000 0
Sale of marketable securities   0
Marketable securities classified as cash equivalents 8,800,000 1,300,000
Unrealized gains or losses on marketable securities $ 0 $ 0
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Comprehensive Income (Loss) (Narrative) (Details) - USD ($)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
OTHER COMPREHENSIVE INCOME (LOSS)    
Reclassification from Accumulated Other Comprehensive Income, Current Period, before Tax $ 0 $ 0
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Comprehensive Income (Loss) (Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss)) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
OTHER COMPREHENSIVE INCOME (LOSS)    
Foreign currency translation adjustments, Before Tax $ (193) $ 190
Foreign currency translation adjustments, Tax Effect 0 0
Foreign currency translation adjustments, Net of Tax Amount (193) 190
Unrealized gains on available-for-sale securities, Before Tax (272) 145
Unrealized gains on available-for-sale securities, Tax Effect 57 (31)
Unrealized gains on available-for-sale securities, Net of Tax Amount (215) 114
Total other comprehensive income (loss) before income taxes (465) 335
Other comprehensive income (loss), Tax Effect 57 (31)
Other comprehensive income (loss), Net of Tax Amount $ (408) $ 304
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Comprehensive Income (Loss) (Schedule of Accumulated Comprehensive Income (Loss)) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Accumulated Other Comprehensive Income (Loss), Net of Tax [Abstract]    
Balance at the beginning of period $ (1,102) $ (1,406)
Other comprehensive loss for the period (408) 304
Balance at the end of period (1,510) (1,102)
Foreign Currency Translation Adjustments [Member]    
Accumulated Other Comprehensive Income (Loss), Net of Tax [Abstract]    
Balance at the beginning of period (1,285) (1,475)
Other comprehensive loss for the period (193) 190
Balance at the end of period (1,478) (1,285)
Available-for-sale Securities [Member]    
Accumulated Other Comprehensive Income (Loss), Net of Tax [Abstract]    
Balance at the beginning of period 183 69
Other comprehensive loss for the period (215) 114
Balance at the end of period $ (32) $ 183
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.22.0.1
Fair Value Measurements (Fair Value Measurements For Marketable Securities And Foreign Exchange Forward Contracts) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities $ 24,608 $ 22,173
Quoted Prices In Active Markets For Identical Assets (Level 1) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 43 30
Significant Other Observable Inputs (Level 2) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 24,565 22,143
Significant Unobservable Inputs (Level 3) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 0 0
U.S. Government And Agency Obligations [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 12,887 12,448
U.S. Government And Agency Obligations [Member] | Quoted Prices In Active Markets For Identical Assets (Level 1) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 0 0
U.S. Government And Agency Obligations [Member] | Significant Other Observable Inputs (Level 2) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 12,887 12,448
U.S. Government And Agency Obligations [Member] | Significant Unobservable Inputs (Level 3) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 0 0
Corporate Debt Securities And Certificates Of Deposit [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 9,043 7,169
Corporate Debt Securities And Certificates Of Deposit [Member] | Quoted Prices In Active Markets For Identical Assets (Level 1) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 0 0
Corporate Debt Securities And Certificates Of Deposit [Member] | Significant Other Observable Inputs (Level 2) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 9,043 7,169
Corporate Debt Securities And Certificates Of Deposit [Member] | Significant Unobservable Inputs (Level 3) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 0 0
Asset Backed Securities [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 2,635 2,526
Asset Backed Securities [Member] | Quoted Prices In Active Markets For Identical Assets (Level 1) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 0 0
Asset Backed Securities [Member] | Significant Other Observable Inputs (Level 2) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 2,635 2,526
Asset Backed Securities [Member] | Significant Unobservable Inputs (Level 3) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 0 0
Equity Security [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 43 30
Equity Security [Member] | Quoted Prices In Active Markets For Identical Assets (Level 1) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 43 30
Equity Security [Member] | Significant Other Observable Inputs (Level 2) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities 0 0
Equity Security [Member] | Significant Unobservable Inputs (Level 3) [Member]    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Marketable securities $ 0 $ 0
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.22.0.1
Fair Value Measurements (Narrative) (Details) - USD ($)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
FAIR VALUE MEASUREMENTS [Abstract]    
Asset impairment charges $ 0 $ 0
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.22.0.1
Share-Based Compensation (Narrative) (Details)
12 Months Ended
May 13, 2021
USD ($)
$ / shares
shares
May 14, 2020
USD ($)
$ / shares
shares
Dec. 31, 2021
USD ($)
qtr
plan
$ / shares
shares
Dec. 31, 2020
USD ($)
$ / shares
shares
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Number of stock-based compensation plans | plan     3  
Common stock reserved for issuance pursuant to outstanding awards | shares     351,825 419,100
Shares granted, shares | shares     24,100  
Weighted average grant date fair value, granted (in usd per share) | $ / shares     $ 37.94  
Unvested shares | shares     57,901 68,454
Proceeds from exercise of stock options     $ 428,000 $ 358,000
Equity based compensation expense     1,347,000 1,181,000
Unrecognized compensation cost related to non-vested equity based compensation     $ 2,900,000  
Unrecognized equity based compensation weighted average period (in years)     2 years 10 months 24 days  
Tax benefit from the exercise of stock options and vesting of share based payments     $ 833,000 712,000
Stock Options [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Vesting period (in years)     4 years  
Expiration of stock options from date of grant (in years)     7 years  
Weighted average remaining contractual term (in years)     3 years 4 months 28 days  
Aggregate intrinsic value for all options outstanding     $ 10,000,000  
Weighted average remaining contractual term for exercisable options (in years)     2 years 7 months 6 days  
Aggregate intrinsic value of exercisable options     $ 8,100,000  
Aggregate intrinsic value of stock options exercised     2,700,000 2,700,000
Proceeds from exercise of stock options     428,000 358,000
Fair value of shares vested     491,000 456,000
Stock Options And Restricted Stock Units (RSUs) [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Equity based compensation expense     $ 993,000 $ 876,000
Employee Stock Purchase Plan [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Number of shares available for future issuance, shares | shares     129,411  
Maximum contribution per plan year     $ 6,500  
Employees can purchase stock at the percentage rate of the lower of the market price on the first or last day of the offering period (as a percent)     85.00%  
Shares granted, shares | shares     7,380 19,897
Equity based compensation expense     $ 130,000 $ 111,000
Employee Stock Purchase Plan [Member] | Minimum [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Payroll deduction for employee stock purchase plan percentage     1.00%  
Employee Stock Purchase Plan [Member] | Maximum [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Payroll deduction for employee stock purchase plan percentage     10.00%  
Restricted Stock Units (RSUs) [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Vesting period (in years)     4 years  
Restricted stock units to common stock ratio, shares entitled, shares | shares     1  
Restricted Shares and Restricted Stock Units [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Shares granted, shares | shares     24,100 30,700
Weighted average grant date fair value, granted (in usd per share) | $ / shares     $ 37.94 $ 28.33
Aggregate intrinsic value for all options outstanding     $ 2,700,000  
Fair value of shares vested     $ 1,400,000 $ 857,000
Stock Incentive Plan [Member] | Stock Options [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Number of shares available for future issuance, shares | shares     87,507  
Common stock reserved for issuance pursuant to outstanding awards | shares     397,726  
Non Employee Director Stock Plan [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Number of shares available for future issuance, shares | shares     36,000  
Common stock reserved for issuance pursuant to outstanding awards | shares     8,000  
Number of shares granted for non-employee directors upon re-election, shares | shares     2,000  
Number of quarterly installments in which awards will vest | qtr     4  
Stock issued during period, shares | shares 8,000 8,000    
Stock granted, value $ 224,000 $ 227,000    
Weighted average grant date fair value, granted (in usd per share) | $ / shares $ 27.96 $ 28.34    
Number of shares vested | shares     4,000  
Unvested shares | shares     4,000  
Aggregate intrinsic value for all options outstanding     $ 186,000  
Stock Grant Plan For Non-Employee Directors [Member]        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Equity based compensation expense     $ 224,000 $ 194,000
XML 59 R48.htm IDEA: XBRL DOCUMENT v3.22.0.1
Share-Based Compensation (Schedule Of Stock Option Activity) (Details)
12 Months Ended
Dec. 31, 2021
$ / shares
shares
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]  
Options Outstanding, Outstanding, Beginning of period, shares | shares 419,100
Options Outstanding, Granted, shares | shares 24,000
Options Outstanding, Exercised, shares | shares (89,500)
Options Outstanding, Forfeited, shares | shares (1,775)
Options Outstanding, Outstanding, End of period, shares | shares 351,825
Options Outstanding, Exercisable, End of period, shares | shares 257,026
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]  
Weighted-Average Exercise Price Per Share, Outstanding, Beginning of period (in usd per share) | $ / shares $ 15.22
Weighted-Average Exercise Price Per Share, Granted (in usd per share) | $ / shares 42.9
Weighted-Average Exercise Price Per Share, Exercised (in usd per share) | $ / shares 11.26
Weighted-Average Exercise Price Per Share, Forfeited (in usd per share) | $ / shares 17.52
Weighted-Average Exercise Price Per Share, Outstanding, End of period (in usd per share) | $ / shares 18.11
Weighted-Average Exercise Price Per Share, Exercisable, End of period (in usd per share) | $ / shares $ 14.82
XML 60 R49.htm IDEA: XBRL DOCUMENT v3.22.0.1
Share-Based Compensation (Schedule Of Stock Option Valuation Assumptions) (Details) - $ / shares
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Dividend yield 0.00% 0.00%
Weighted average fair value on grant date $ 22.24 $ 14.58
Minimum [Member]    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Risk-free interest rates 1.15% 0.44%
Expected life in years 5 years 2 months 8 days 5 years 1 month 13 days
Expected volatility 58.02% 59.43%
Maximum [Member]    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Risk-free interest rates 1.18% 0.50%
Expected life in years 5 years 7 months 20 days 5 years 6 months 18 days
Expected volatility 58.44% 59.81%
XML 61 R50.htm IDEA: XBRL DOCUMENT v3.22.0.1
Share-Based Compensation (Schedule Of Non-Vested Restricted Stock Activity) (Details)
12 Months Ended
Dec. 31, 2021
$ / shares
shares
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]  
Shares, Non-vested at December 31, 2019 | shares 68,454
Shares, Granted | shares 24,100
Shares, Vested | shares (33,322)
Shares, Forfeited | shares (1,331)
Shares, Non-vested at December 31, 2020 | shares 57,901
Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]  
Weighted Average Grant Date Fair Value, Non-vested at December 31, 2019 (in usd per share) | $ / shares $ 21.45
Weighted Average Grant Date Fair Value, Granted (in usd per share) | $ / shares 37.94
Weighted Average Grant Date Fair Value, Vested (in usd per share) | $ / shares 21.56
Weighted Average Grant Date Fair Value, Forfeited (in usd per share) | $ / shares 23.03
Weighted Average Grant Date Fair Value, Non-vested at December 31, 2020 (in usd per share) | $ / shares $ 28.21
XML 62 R51.htm IDEA: XBRL DOCUMENT v3.22.0.1
Share-Based Compensation (Summary Of Pre-tax Equity Based Compensation Expense) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
SHARE-BASED COMPENSATION [Abstract]    
Pre-tax share-based compensation expense $ 1,347 $ 1,181
Income tax benefits related to share-based compensation $ 833 $ 712
XML 63 R52.htm IDEA: XBRL DOCUMENT v3.22.0.1
Net Income Per Share (Schedule Of Net Income Per Basic And Diluted Shares) (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
NET INCOME PER SHARE [Abstract]    
Net income $ 12,751 $ 5,742
Weighted Average Shares Outstanding, Basic, shares 7,320 7,215
Weighted Average Shares Outstanding, Dilutive effect of common equivalent shares, shares 217 239
Weighted Average Shares Outstanding, Dilutive, shares 7,537 7,454
Per Share Amount, Basic (in usd per share) $ 1.74 $ 0.8
Per Share Amount, Dilutive effect of common equivalent shares (in usd per share) (0.05) (0.03)
Per Share Amount, Dilutive (in usd per share) $ 1.69 $ 0.77
XML 64 R53.htm IDEA: XBRL DOCUMENT v3.22.0.1
Net Income Per Share (Narrative) (Details) - shares
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
NET INCOME PER SHARE [Abstract]    
Earnings per share, potentially dilutive shares (in shares) 50,000 57,000
XML 65 R54.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Schedule Of Inventory Components) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
OTHER FINANCIAL STATEMENT DATA [Abstract]    
Raw materials and purchased parts $ 18,013 $ 11,903
Work in process 1,655 2,459
Finished goods 6,859 4,208
Demonstration inventories, net 1,075 1,701
Total inventories $ 27,602 $ 20,271
XML 66 R55.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Schedule Of Equipment And Leasehold Improvements) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Property, Plant and Equipment [Line Items]    
Equipment and leasehold improvements, gross $ 19,121 $ 18,142
Accumulated depreciation and amortization (15,947) (14,907)
Equipment and leasehold improvements, net 3,174 3,235
Equipment [Member]    
Property, Plant and Equipment [Line Items]    
Equipment and leasehold improvements, gross 16,051 15,070
Leasehold Improvements [Member]    
Property, Plant and Equipment [Line Items]    
Equipment and leasehold improvements, gross $ 3,070 $ 3,072
XML 67 R56.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Narrative) (Details) - USD ($)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Product Liability Contingency [Line Items]    
Demonstration inventory useful life (in months) 36 months  
Accumulated amortization for demonstration inventories $ 2,800,000 $ 2,700,000
Amortization expense related to demonstration inventories 709,000 770,000
Depreciation expense 1,600,000 $ 1,700,000
Amortization expense, 2022 190,000  
Amortization expense, 2023 141,000  
Amortization expense, 2024 $ 44,000  
Minimum [Member]    
Product Liability Contingency [Line Items]    
Warranty period (in years) 1 year  
Maximum [Member]    
Product Liability Contingency [Line Items]    
Warranty period (in years) 3 years  
XML 68 R57.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Schedule Of Intangible Assets) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Finite-Lived Intangible Assets [Line Items]    
Gross Carrying Amount $ 2,264 $ 2,139
Accumulated Amortization (1,889) (1,814)
Net 375 325
Patents [Member]    
Finite-Lived Intangible Assets [Line Items]    
Gross Carrying Amount 1,972 1,832
Accumulated Amortization (1,614) (1,542)
Net 358 290
Software [Member]    
Finite-Lived Intangible Assets [Line Items]    
Gross Carrying Amount 206 206
Accumulated Amortization (206) (200)
Net 0 6
Marketing Assets and Customer Relationships [Member]    
Finite-Lived Intangible Assets [Line Items]    
Gross Carrying Amount 86 101
Accumulated Amortization (69) (72)
Net $ 17 $ 29
XML 69 R58.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Schedule Of Amortization Expense For Intangible Assets) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Finite-Lived Intangible Assets [Line Items]    
Amortization of intangibles $ 201 $ 191
Intangible assets acquired, Weighted Average Life (in years)  
Patents [Member]    
Finite-Lived Intangible Assets [Line Items]    
Amortization of intangibles $ 187 153
Intangible assets acquired, Weighted Average Life (in years) 1 year 7 months 6 days  
Software [Member]    
Finite-Lived Intangible Assets [Line Items]    
Amortization of intangibles $ 6 29
Marketing Assets and Customer Relationships [Member]    
Finite-Lived Intangible Assets [Line Items]    
Amortization of intangibles $ 8 $ 9
Intangible assets acquired, Weighted Average Life (in years) 2 years 2 months 12 days  
XML 70 R59.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Schedule of Accrued Expenses) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
OTHER FINANCIAL STATEMENT DATA [Abstract]    
Wages and benefits $ 2,966 $ 2,768
Warranty liability 949 793
Income taxes payable 341 269
Other 162 63
Accrued expenses $ 4,418 $ 3,893
XML 71 R60.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Schedule of Other Liabilities) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
OTHER FINANCIAL STATEMENT DATA [Abstract]    
Deferred warranty revenue $ 135 $ 88
Warranty liability 42 46
Other liabilities $ 177 $ 134
XML 72 R61.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Schedule Of Changes In Estimated Warranty Liability) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Movement in Standard Product Warranty Accrual [Roll Forward]    
Balance at beginning of period $ 839 $ 798
Accrual for warranties 1,024 836
Warranty revision (53) 43
Settlements made during the period (819) (838)
Balance at end of period 991 839
Current portion of estimated warranty liability (949) (793)
Long-term estimated warranty liability $ 42 $ 46
XML 73 R62.htm IDEA: XBRL DOCUMENT v3.22.0.1
Other Financial Statement Data (Schedule Of Changes In Deferred Warranty Revenue) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Movement in Extended Product Warranty Accrual [Roll Forward]    
Balance at beginning of period $ 344 $ 275
Revenue deferrals 575 434
Amortization of deferred revenue (474) (365)
Total deferred warranty revenue 445 344
Current portion of deferred warranty revenue (310) (256)
Long-term deferred warranty revenue $ 135 $ 88
XML 74 R63.htm IDEA: XBRL DOCUMENT v3.22.0.1
Income Taxes (Schedule Of Income Before Income Taxes) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
INCOME TAXES [Abstract]    
Sources of income (loss) before income taxes: United States $ 12,741 $ 4,876
Sources of income (loss) before income taxes: Foreign 1,754 1,478
Total income before income taxes $ 14,495 $ 6,354
XML 75 R64.htm IDEA: XBRL DOCUMENT v3.22.0.1
Income Taxes (Schedule Of Provision (Benefit) For Income Taxes) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Current:    
Federal $ 417 $ 26
State 46 19
Foreign 298 201
Total current 761 246
Deferred:    
Federal 960 361
State (1) 0
Foreign 24 5
Total deferred 983 366
Total provision for income taxes $ 1,744 $ 612
XML 76 R65.htm IDEA: XBRL DOCUMENT v3.22.0.1
Income Taxes (Schedule Of A Reconciliation Of The Statutory Rate To The Effective Income Tax Rate) (Details)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
INCOME TAXES [Abstract]    
Federal statutory rate (as a percent) 21.00% 21.00%
State income taxes, net of federal benefit (as a percent) 0.30% 0.20%
Global Intangible Low-Taxed Income (GILTI)/Foreign Derived Intangible Income (as a percent) (2.90%) 2.10%
Share-based compensation (as a percent) (3.80%) (7.40%)
Research and experimentation (R&D) credit (as a percent) (2.30%) (3.20%)
Foreign tax credit (as a percent) (1.00%) (2.20%)
Foreign rate difference (as a percent) (0.40%) (1.10%)
Valuation allowance (as a percent) 0.50% (4.20%)
Expiring and unrecognized deferred tax attributes (as a percent) 0.00% 3.70%
Other, net (as a percent) 0.60% 0.70%
Effective tax rate (as a percent) 12.00% 9.60%
XML 77 R66.htm IDEA: XBRL DOCUMENT v3.22.0.1
Income Taxes (Narrative) (Details) - USD ($)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Income Tax [Line Items]    
Need for valuation allowance based on history of cumulative losses 3 years  
Increase (decrease) in valuation allowance $ 79,000 $ (265,000)
Research & Development tax credits 3,000,000  
Cash payments for income taxes, net of refunds received 628,000 59,000
Effective tax rate reconciliation, Excess tax expenses (benefits) from employee stock option exercises and vesting of restricted stock units and restricted shares, Amount $ (605,000) $ (497,000)
XML 78 R67.htm IDEA: XBRL DOCUMENT v3.22.0.1
Income Taxes (Summary Of A Reconciliation Of The Beginning And Ending Amount Of Gross Unrecognized Tax Benefits ("UTB")) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]    
Gross UTB balance at beginning of year $ 1,789 $ 1,761
Additions based on tax positions related to the current year 231 137
Additions for tax positions of prior years 1 60
Reductions for tax positions of prior years (39) (169)
Gross UTB balance at end of year 1,982 1,789
Net UTB balance at end of year $ 214 $ 197
XML 79 R68.htm IDEA: XBRL DOCUMENT v3.22.0.1
Income Taxes (Schedule Of Deferred Tax Assets And Liabilities) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Assets    
Equipment, leaseholds and intangible amortization, net $ 185 $ 176
Operating lease liabilities 672 839
Inventory allowances 550 549
Accrued expenses 130 129
Warranty accrual 214 182
Deferred revenue 312 214
Federal and state tax credits 2,992 3,960
State net operating loss carry forwards 233 275
Share-based compensation 361 358
Other, net 131 113
Subtotal 5,780 6,795
Valuation allowance (1,493) (1,414)
Total deferred tax assets 4,287 5,381
Liabilities    
Equipment, leaseholds and intangible amortization, net 230 251
Right-of-use assets (operating leases) 369 478
Inventory allowances 20 5
Other, net 0 50
Subtotal 619 784
Total deferred tax liabilities $ 619 $ 784
XML 80 R69.htm IDEA: XBRL DOCUMENT v3.22.0.1
Operating Leases (Narrative) (Details)
12 Months Ended
Dec. 31, 2021
USD ($)
ft²
renewal_option
Dec. 31, 2020
USD ($)
Operating Leased Assets [Line Items]    
Weighted average remaining term for operating leases 4 years 7 days 4 years 10 months 6 days
Weighted average discount rate applied to operating leases 5.31% 5.20%
Cash paid for amounts included in the measurement of operating lease liabilities | $ $ 1,000,000 $ 975,000
Increase in operating lease liabilities for right of use assets | $   $ 941,000
SINGAPORE    
Operating Leased Assets [Line Items]    
Mixed office and warehouse facility, square footage | ft² 19,805  
Golden Valley [Member] | MINNESOTA    
Operating Leased Assets [Line Items]    
Mixed office and warehouse facility, square footage | ft² 61,208  
Period for recognizing rental expense (in months) 91 months  
Renewal options, number | renewal_option 1  
Renewal options, term (in years) 3 years  
XML 81 R70.htm IDEA: XBRL DOCUMENT v3.22.0.1
Operating Leases (Schedule of components of our costs for operating leases) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
OPERATING LEASES [Abstract]    
Operating lease cost $ 742 $ 723
Variable lease cost 269 272
Short-term lease cost 39 38
Total $ 1,050 $ 1,033
XML 82 R71.htm IDEA: XBRL DOCUMENT v3.22.0.1
Operating Leases (Schedule of the future maturities of lease liabilities) (Details)
$ in Thousands
Dec. 31, 2021
USD ($)
OPERATING LEASES [Abstract]  
2022 $ 1,016
2023 873
2024 658
2025 674
2026 403
Total lease payments 3,624
Less: amount representing interest 391
Present value of operating lease liabilities $ 3,233
XML 83 R72.htm IDEA: XBRL DOCUMENT v3.22.0.1
401(K) and Other Defined Contribution Plans (Details) - USD ($)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Retirement Savings Plan Section 401k [Member]    
Defined Contribution Plan Disclosure [Line Items]    
Matching contributions to employees $ 323,000 $ 303,000
Defined Contribution Retirement Savings Plans [Member]    
Defined Contribution Plan Disclosure [Line Items]    
Matching contributions to employees $ 50,000 $ 39,000
XML 84 R73.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Concentrations, Significant Customers, and Geographic Areas (Summary Of Revenue By Product Line) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Product Information [Line Items]    
Revenues $ 92,774 $ 70,117
High Precision 3D and 2D Sensors [Member]    
Product Information [Line Items]    
Revenues 25,941 17,522
Inspection and Metrology Systems [Member]    
Product Information [Line Items]    
Revenues 42,958 37,547
Semiconductor Sensors [Member]    
Product Information [Line Items]    
Revenues $ 23,875 $ 15,048
XML 85 R74.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Concentrations, Significant Customers, and Geographic Areas (Narrative) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Revenue, Major Customer [Line Items]    
Revenues $ 92,774 $ 70,117
Accounts receivable 19,821 14,735
MRS based sensors [Member]    
Revenue, Major Customer [Line Items]    
Revenues 17,200 11,600
MRS based systems [Member]    
Revenue, Major Customer [Line Items]    
Revenues $ 31,000 $ 20,200
Customer Concentration Risk [Member] | Revenues [Member] | Significant Customer A [Member]    
Revenue, Major Customer [Line Items]    
Percentage of Revenues 17.00% 14.00%
Customer Concentration Risk [Member] | Revenues [Member] | Significant Customer B [Member]    
Revenue, Major Customer [Line Items]    
Percentage of Revenues   13.00%
Customer Concentration Risk [Member] | Accounts Receivable [Member] | Significant Customer A [Member]    
Revenue, Major Customer [Line Items]    
Accounts receivable, net $ 2,000  
Customer Concentration Risk [Member] | Accounts Receivable [Member] | Significant Customer C [Member]    
Revenue, Major Customer [Line Items]    
Accounts receivable, net 3,600  
Customer Concentration Risk [Member] | Accounts Receivable [Member] | Significant Customer D [Member]    
Revenue, Major Customer [Line Items]    
Accounts receivable, net $ 2,700  
Geographic Concentration Risk [Member] | Revenues [Member] | Non-US [Member]    
Revenue, Major Customer [Line Items]    
Percentage of Revenues 83.00% 80.00%
XML 86 R75.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Revenue By Geographic Area) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Revenue, Major Customer [Line Items]    
Revenues $ 92,774 $ 70,117
United States [Member]    
Revenue, Major Customer [Line Items]    
Revenues 15,327 14,134
Netherlands [Member]    
Revenue, Major Customer [Line Items]    
Revenues 2,700 2,237
Other Europe [Member]    
Revenue, Major Customer [Line Items]    
Revenues 9,649 7,017
China [Member]    
Revenue, Major Customer [Line Items]    
Revenues 30,698 18,903
Singapore [Member]    
Revenue, Major Customer [Line Items]    
Revenues 4,097 3,797
South Korea [Member]    
Revenue, Major Customer [Line Items]    
Revenues 14,809 6,376
Japan [Member]    
Revenue, Major Customer [Line Items]    
Revenues 5,145 3,172
Other Asia [Member]    
Revenue, Major Customer [Line Items]    
Revenues 7,255 11,702
Other [Member]    
Revenue, Major Customer [Line Items]    
Revenues $ 3,094 $ 2,779
XML 87 R76.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Long-lived Assets Attributable To Each Geographic Area's Operations) (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total long-lived assets $ 3,549 $ 3,560
United States [Member]    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total long-lived assets 2,526 2,814
Europe [Member]    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total long-lived assets 13 6
Asia And Other [Member]    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Total long-lived assets $ 1,010 $ 740
XML 88 cybe-20211231_htm.xml IDEA: XBRL DOCUMENT 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2019-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2019-12-31 0000768411 us-gaap:RetainedEarningsMember 2019-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-12-31 0000768411 us-gaap:CommonStockMember 2019-12-31 0000768411 2021-01-01 2021-12-31 0000768411 2021-12-31 0000768411 srt:MinimumMember 2021-01-01 2021-12-31 0000768411 srt:MaximumMember 2021-01-01 2021-12-31 0000768411 us-gaap:CommonStockMember 2021-01-01 2021-12-31 0000768411 us-gaap:RetainedEarningsMember 2021-01-01 2021-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-01-01 2021-12-31 0000768411 us-gaap:CommonStockMember 2021-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-12-31 0000768411 us-gaap:RetainedEarningsMember 2021-12-31 0000768411 cybe:SemiconductorSensorsMember 2021-01-01 2021-12-31 0000768411 country:US 2021-01-01 2021-12-31 0000768411 country:NL 2021-01-01 2021-12-31 0000768411 cybe:OtherEuropeMember 2021-01-01 2021-12-31 0000768411 country:CN 2021-01-01 2021-12-31 0000768411 country:SG 2021-01-01 2021-12-31 0000768411 srt:MinimumMember us-gaap:LeaseholdImprovementsMember 2021-01-01 2021-12-31 0000768411 srt:MaximumMember us-gaap:LeaseholdImprovementsMember 2021-01-01 2021-12-31 0000768411 country:KR 2021-01-01 2021-12-31 0000768411 cybe:GoldenValleyMember stpr:MN 2021-12-31 0000768411 cybe:GoldenValleyMember stpr:MN 2021-01-01 2021-12-31 0000768411 cybe:CustomerOneMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0000768411 country:JP 2021-01-01 2021-12-31 0000768411 cybe:OtherAsiaMember 2021-01-01 2021-12-31 0000768411 cybe:OtherGeographicLocationMember 2021-01-01 2021-12-31 0000768411 country:US 2021-12-31 0000768411 srt:EuropeMember 2021-12-31 0000768411 cybe:AsiaAndOtherMember 2021-12-31 0000768411 cybe:RetirementSavingsPlanSection401KMember 2021-01-01 2021-12-31 0000768411 cybe:DefinedContributionRetirementSavingsPlansMember 2021-01-01 2021-12-31 0000768411 country:SG 2021-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2021-01-01 2021-12-31 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2021-01-01 2021-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2021-12-31 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel1Member 2021-12-31 0000768411 us-gaap:FairValueInputsLevel2Member 2021-12-31 0000768411 us-gaap:FairValueInputsLevel3Member 2021-12-31 0000768411 us-gaap:EmployeeStockOptionMember 2021-01-01 2021-12-31 0000768411 us-gaap:RestrictedStockUnitsRSUMember 2021-01-01 2021-12-31 0000768411 cybe:NonEmployeeDirectorStockPlanMember 2021-12-31 0000768411 cybe:NonEmployeeDirectorStockPlanMember 2021-01-01 2021-12-31 0000768411 us-gaap:EmployeeStockOptionMember 2021-12-31 0000768411 cybe:RestrictedSharesAndRestrictedStockUnitsMember 2021-01-01 2021-12-31 0000768411 cybe:RestrictedSharesAndRestrictedStockUnitsMember 2021-12-31 0000768411 us-gaap:EmployeeStockMember 2021-01-01 2021-12-31 0000768411 us-gaap:EmployeeStockMember 2021-12-31 0000768411 cybe:StockGrantPlanForNonEmployeeDirectorsMember 2021-01-01 2021-12-31 0000768411 cybe:StockOptionsAndRestrictedStockUnitsRsusMember 2021-01-01 2021-12-31 0000768411 us-gaap:EquipmentMember 2021-12-31 0000768411 us-gaap:LeaseholdImprovementsMember 2021-12-31 0000768411 us-gaap:PatentsMember 2021-12-31 0000768411 us-gaap:ComputerSoftwareIntangibleAssetMember 2021-12-31 0000768411 us-gaap:CustomerRelatedIntangibleAssetsMember 2021-12-31 0000768411 us-gaap:PatentsMember 2021-01-01 2021-12-31 0000768411 us-gaap:ComputerSoftwareIntangibleAssetMember 2021-01-01 2021-12-31 0000768411 us-gaap:CustomerRelatedIntangibleAssetsMember 2021-01-01 2021-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2021-12-31 0000768411 us-gaap:EmployeeStockOptionMember cybe:StockIncentivePlanMember 2021-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember 2021-12-31 0000768411 srt:MinimumMember us-gaap:EmployeeStockMember 2021-01-01 2021-12-31 0000768411 srt:MaximumMember us-gaap:EmployeeStockMember 2021-01-01 2021-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:ShortTermInvestmentsMember 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:ShortTermInvestmentsMember 2021-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:ShortTermInvestmentsMember 2021-12-31 0000768411 us-gaap:EquitySecuritiesMember 2021-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel1Member us-gaap:USTreasuryAndGovernmentMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel1Member cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel1Member us-gaap:AssetBackedSecuritiesMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel1Member us-gaap:EquitySecuritiesMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel2Member us-gaap:USTreasuryAndGovernmentMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel2Member cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel2Member us-gaap:AssetBackedSecuritiesMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel2Member us-gaap:EquitySecuritiesMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel3Member us-gaap:USTreasuryAndGovernmentMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel3Member cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel3Member us-gaap:AssetBackedSecuritiesMember 2021-12-31 0000768411 us-gaap:FairValueInputsLevel3Member us-gaap:EquitySecuritiesMember 2021-12-31 0000768411 us-gaap:ShortTermInvestmentsMember 2021-12-31 0000768411 us-gaap:OtherLongTermInvestmentsMember 2021-12-31 0000768411 us-gaap:TransferredOverTimeMember 2021-01-01 2021-12-31 0000768411 us-gaap:TransferredAtPointInTimeMember 2021-01-01 2021-12-31 0000768411 us-gaap:AccountingStandardsUpdate201409Member us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member 2021-01-01 2021-12-31 0000768411 cybe:MrsBasedSensorsMember 2021-01-01 2021-12-31 0000768411 cybe:MrsBasedSystemsMember 2021-01-01 2021-12-31 0000768411 cybe:InspectionAndMetrologySystemsMember 2021-01-01 2021-12-31 0000768411 cybe:HighPrecision3DAnd2DSensorsMember 2021-01-01 2021-12-31 0000768411 us-gaap:CommonStockMember 2020-01-01 2020-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-01-01 2020-12-31 0000768411 us-gaap:RetainedEarningsMember 2020-01-01 2020-12-31 0000768411 us-gaap:CommonStockMember 2020-12-31 0000768411 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel1Member us-gaap:USTreasuryAndGovernmentMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel2Member us-gaap:USTreasuryAndGovernmentMember 2020-12-31 0000768411 us-gaap:RetainedEarningsMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel3Member us-gaap:USTreasuryAndGovernmentMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel1Member cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel2Member cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2020-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2020-01-01 2020-12-31 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2020-01-01 2020-12-31 0000768411 us-gaap:AccumulatedTranslationAdjustmentMember 2020-12-31 0000768411 us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember 2020-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember 2020-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2020-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember 2020-12-31 0000768411 us-gaap:EquitySecuritiesMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel1Member 2020-12-31 0000768411 us-gaap:FairValueInputsLevel2Member 2020-12-31 0000768411 us-gaap:FairValueInputsLevel3Member 2020-12-31 0000768411 us-gaap:EmployeeStockOptionMember 2020-01-01 2020-12-31 0000768411 cybe:RestrictedSharesAndRestrictedStockUnitsMember 2020-01-01 2020-12-31 0000768411 us-gaap:EmployeeStockMember 2020-01-01 2020-12-31 0000768411 cybe:StockOptionsAndRestrictedStockUnitsRsusMember 2020-01-01 2020-12-31 0000768411 cybe:StockGrantPlanForNonEmployeeDirectorsMember 2020-01-01 2020-12-31 0000768411 srt:MinimumMember 2020-01-01 2020-12-31 0000768411 srt:MaximumMember 2020-01-01 2020-12-31 0000768411 us-gaap:EquipmentMember 2020-12-31 0000768411 us-gaap:LeaseholdImprovementsMember 2020-12-31 0000768411 us-gaap:PatentsMember 2020-12-31 0000768411 us-gaap:ComputerSoftwareIntangibleAssetMember 2020-12-31 0000768411 us-gaap:CustomerRelatedIntangibleAssetsMember 2020-12-31 0000768411 us-gaap:PatentsMember 2020-01-01 2020-12-31 0000768411 us-gaap:FairValueInputsLevel3Member cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember 2020-12-31 0000768411 us-gaap:ComputerSoftwareIntangibleAssetMember 2020-01-01 2020-12-31 0000768411 us-gaap:CustomerRelatedIntangibleAssetsMember 2020-01-01 2020-12-31 0000768411 cybe:RetirementSavingsPlanSection401KMember 2020-01-01 2020-12-31 0000768411 cybe:DefinedContributionRetirementSavingsPlansMember 2020-01-01 2020-12-31 0000768411 cybe:HighPrecision3DAnd2DSensorsMember 2020-01-01 2020-12-31 0000768411 cybe:SemiconductorSensorsMember 2020-01-01 2020-12-31 0000768411 cybe:InspectionAndMetrologySystemsMember 2020-01-01 2020-12-31 0000768411 cybe:MrsBasedSensorsMember 2020-01-01 2020-12-31 0000768411 cybe:MrsBasedSystemsMember 2020-01-01 2020-12-31 0000768411 country:US 2020-01-01 2020-12-31 0000768411 country:NL 2020-01-01 2020-12-31 0000768411 cybe:OtherEuropeMember 2020-01-01 2020-12-31 0000768411 us-gaap:FairValueInputsLevel1Member us-gaap:AssetBackedSecuritiesMember 2020-12-31 0000768411 country:CN 2020-01-01 2020-12-31 0000768411 country:SG 2020-01-01 2020-12-31 0000768411 country:KR 2020-01-01 2020-12-31 0000768411 us-gaap:FairValueInputsLevel2Member us-gaap:AssetBackedSecuritiesMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel3Member us-gaap:AssetBackedSecuritiesMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel1Member us-gaap:EquitySecuritiesMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel2Member us-gaap:EquitySecuritiesMember 2020-12-31 0000768411 us-gaap:FairValueInputsLevel3Member us-gaap:EquitySecuritiesMember 2020-12-31 0000768411 cybe:CustomerOneMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0000768411 country:JP 2020-01-01 2020-12-31 0000768411 cybe:OtherAsiaMember 2020-01-01 2020-12-31 0000768411 cybe:OtherGeographicLocationMember 2020-01-01 2020-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:ShortTermInvestmentsMember 2020-12-31 0000768411 srt:MinimumMember us-gaap:AccountingStandardsUpdate201409Member us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member 2021-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:ShortTermInvestmentsMember 2020-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:ShortTermInvestmentsMember 2020-12-31 0000768411 us-gaap:USTreasuryAndGovernmentMember us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 cybe:CorporateDebtSecuritiesAndCertificatesOfDepositMember us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 country:US 2020-12-31 0000768411 us-gaap:AssetBackedSecuritiesMember us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 us-gaap:EquitySecuritiesMember us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 srt:EuropeMember 2020-12-31 0000768411 cybe:AsiaAndOtherMember 2020-12-31 0000768411 us-gaap:TransferredOverTimeMember 2020-01-01 2020-12-31 0000768411 2020-12-31 0000768411 2020-01-01 2020-12-31 0000768411 us-gaap:TransferredAtPointInTimeMember 2020-01-01 2020-12-31 0000768411 us-gaap:ShortTermInvestmentsMember 2020-12-31 0000768411 us-gaap:OtherLongTermInvestmentsMember 2020-12-31 0000768411 srt:MaximumMember us-gaap:AccountingStandardsUpdate201409Member us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member 2021-12-31 0000768411 cybe:CustomerThreeMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2021-12-31 0000768411 cybe:JobsSupportProgramMember country:SG us-gaap:ReducedEmployeeExpensesMember 2021-01-01 2021-12-31 0000768411 cybe:CustomerOneMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2021-12-31 0000768411 srt:MinimumMember 2021-12-31 0000768411 2022-02-28 0000768411 2021-06-30 0000768411 srt:MaximumMember 2021-12-31 0000768411 srt:AffiliatedEntityMember 2021-01-01 2021-12-31 0000768411 srt:AffiliatedEntityMember 2020-01-01 2020-12-31 0000768411 2019-12-31 0000768411 cybe:NonEmployeeDirectorStockPlanMember 2020-05-14 2020-05-14 0000768411 cybe:CustomerTwoMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0000768411 cybe:CustomerFourMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2021-12-31 0000768411 us-gaap:AccountingStandardsUpdate201409Member us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member 2020-01-01 2020-12-31 0000768411 cybe:NonEmployeeDirectorStockPlanMember 2021-05-13 2021-05-13 0000768411 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0000768411 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2020-01-01 2020-12-31 0000768411 srt:AffiliatedEntityMember 2021-12-31 0000768411 srt:AffiliatedEntityMember 2020-12-31 shares pure utr:sqft utr:Q iso4217:USD iso4217:USD shares cybe:plan cybe:reporting_unit cybe:renewal_option NASDAQ MN P1Y P1Y P1Y MN false true false true false --12-31 Non-accelerated Filer P1Y P1Y 0000768411 CYBEROPTICS CORP false 2021 FY Yes false 10-K 2021-12-31 0-16577 41-1472057 5900 Golden Hills Drive MINNEAPOLIS 55416 (763) 542-5000 Common Stock, no par value CYBE No No Yes 288262267 7402683 13684000 8399000 7327000 8121000 355000 302000 19821000 14735000 27602000 20271000 808000 686000 864000 890000 70106000 53102000 17281000 14052000 3174000 3235000 375000 325000 1366000 1366000 2052000 2621000 0 418000 3668000 4597000 98022000 79716000 10275000 5118000 599000 823000 4418000 3893000 864000 819000 16156000 10653000 177000 134000 2369000 3244000 214000 157000 18916000 14188000 5000000 5000000 0 0 0 0 25000000 25000000 7391906 7391906 7294617 7294617 39052000 37817000 -1510000 -1102000 41564000 28813000 79106000 65528000 98022000 79716000 92774000 70117000 49608000 38900000 43166000 31217000 10857000 9572000 17973000 15648000 14336000 5997000 159000 357000 14495000 6354000 1744000 612000 12751000 5742000 1.74 0.8 1.69 0.77 7320000 7215000 7537000 7454000 12751000 5742000 -193000 190000 -272000 145000 -465000 335000 -57000 31000 -408000 304000 12343000 6046000 12751000 5742000 2560000 2629000 569000 521000 124000 -20000 983000 366000 8000 97000 1347000 1181000 13000 -18000 4792000 -1888000 8221000 5212000 -9000 -49000 5198000 -1903000 -177000 247000 589000 1321000 -830000 -772000 10089000 5958000 10601000 11576000 225000 0 13639000 13186000 1627000 1527000 254000 212000 -4694000 -3349000 428000 358000 787000 605000 247000 224000 -112000 -23000 2000 -23000 5285000 2563000 8399000 5836000 13684000 8399000 7155000 36659000 -1406000 23071000 58324000 135000 358000 0 358000 -23000 -605000 -605000 8000 0 0 1181000 1181000 20000 224000 224000 304000 304000 5742000 5742000 7295000 37817000 -1102000 28813000 65528000 100000 428000 0 428000 -18000 -787000 -787000 8000 0 0 1347000 1347000 7000 247000 247000 -408000 -408000 12751000 12751000 7392000 39052000 -1510000 41564000 79106000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; font-weight: bold;">NOTE <span style="border-left: none; border-right: none;">1</span></span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">–</span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">BUSINESS DESCRIPTION AND SIGNIFICANT ACCOUNTING POLICIES<br/><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Description of Business<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">We are a leading global developer and manufacturer of high precision 3D sensors and systems for inspection and metrology. We also develop and manufacture our WaferSense</span><span style="border: 0px; box-sizing: border-box; font-family: 'times new roman', times; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: #000000; font-size: 13.3333px; text-align: start; float: none; display: inline !important;">® products,</span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;"> a family of wireless, wafer-shaped sensors </span><span style="border: 0px; box-sizing: border-box; font-family: 'times new roman', times; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: #000000; font-size: 13.3333px; text-align: start; float: none; display: inline !important;">that provide measurements of critical factors in the semiconductor fabrication process.</span></span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">Our sensors and system products are used in surface mount technology (SMT) and semiconductor markets to significantly improve yields and productivity.<br/><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Principles of Consolidation<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">The consolidated financial statements include the accounts of CyberOptics Corporation and its wholly-owned subsidiaries. In these notes to the consolidated financial statements, these companies are collectively referred to as</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“CyberOptics,”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“we,”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“us,”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">or</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“our.”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">All significant inter-company accounts and transactions have been eliminated in consolidation.</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Segment Reporting<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">We operate in a single reportable segment that includes the design, development and manufacture of high precision sensing, inspection and metrology solutions for the SMT and semiconductor markets.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Use of Estimates<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The preparation of consolidated financial statements in conformity with generally accepted accounting principles requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ significantly from those estimates.</span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Cash and Cash Equivalents<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We consider all highly liquid investments purchased with an original maturity of </span><span style="font-size: 10pt;">90 days or less to be cash equivalents. Cash and cash equivalents consist of funds maintained in demand deposit accounts, money market accounts, certificate of deposits, corporate debt instruments and U.S. government backed obligations. Cash and cash equivalent balances, at times, may exceed federally insured limits.</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <div style="border-left: none; border-right: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Marketable Securities</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">We determine <span style="font-size: 10pt;">the classification of investment securities at the time of purchase. Marketable securities are classified as short-term or long-term in the consolidated balance sheets based on their maturity date and expectations regarding sales. All marketable securities are classified as available-for-sale and are a part of our asset/liability management strategy and may be sold in response to changes in interest rates, prepayment risk or other market factors.</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;">Cash and marketable securities held by foreign subsidiaries totaled</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">$588,000 at</span><span style="font-size: 10pt;"> </span>December 31, 2021<span style="font-size: 10pt;"> and</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">$<span style="border-left: none; border-right: none;">672,000</span> at</span><span style="font-size: 10pt;"> </span>December 31, 2020<span style="font-size: 10pt;">.</span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;"><span style="font-style: italic; font-weight: bold;">Debt Securities</span><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;"><span style="font-style: italic;"><br/></span></span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt; line-height: 120%; font-family: 'times new roman', times;">Debt securities consist of U.S. government and agency backed obligations, certificates of deposit, corporate debt instruments, or asset backed securities. </span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt; line-height: 120%; font-family: 'times new roman', times;"> </span></p> <p style="margin: 0in 0in 12pt; line-height: 120%; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt; line-height: 120%; font-family: 'times new roman', times;">Available-for-sale securities are carried at estimated fair value. Unrealized gains and losses for debt securities are reported as a separate component of stockholders’ equity in accumulated other comprehensive income (loss), net of applicable income taxes, until realized. Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The amortized cost and fair value of debt securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of debt securities sold and the resulting realized gains or losses are also determined by specific identification. Interest income and dividends are recognized in interest income on an accrual basis. Premiums and discounts on debt securities are amortized as an adjustment to interest income over the period to maturity of the related security using the effective interest method.</span></p> <div> </div> <p style="margin: 0in 0in 12pt; line-height: 120%; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10.0pt; line-height: 120%;"><span style="font-family: 'times new roman', times;">We monitor the carrying value of our debt securities compared to their fair value to determine whether an other-than-temporary impairment (“OTTI”) has occurred. Factors considered in determining whether a loss is other-than-temporary include the length of time and extent to which fair value has been less than the amortized cost basis, credit quality (considering factors such as adverse conditions specific to the issuer and the security and ratings agency actions) and our ability and intent to hold the investment for a period of time sufficient to allow for any anticipated recovery in market value. If a decline in fair value of our debt securities is determined to be other-than-temporary, the amount by which amortized cost exceeds the fair value of a debt security is separated into a component representing the credit loss, which is recognized in earnings, and a component related to all other factors, which is recognized in other comprehensive income (loss). The measurement of the credit loss component is equal to the difference between the debt security’s amortized cost basis and the present value of its expected future cash flows discounted at the security’s effective yield. If we intend to sell the security, or if it is more likely than not we will be required to sell the security before recovery, an OTTI write-down is recognized in earnings equal to the entire difference between the amortized cost basis and fair value of the security.</span></span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10.0pt; line-height: 120%;"><span style="font-family: 'times new roman', times;"><span style="font-style: italic; font-weight: bold;">Equity Securities</span><br/></span></span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10.0pt; line-height: 120%;"><span style="font-family: 'times new roman', times;"><span style="font-style: italic;"><br/></span></span></span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10.0pt; line-height: 120%;"><span style="font-family: 'times new roman', times;">Equity securities have readily determinable fair values.<span style="font-size: 10pt;"> Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The fair value of equity securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of equity securities sold and resulting realized gains or losses are also determined by specific identification. Dividends are recognized in interest income on an accrual basis. Unrealized gains and losses for equity securities are reported in net income. </span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;"><span style="font-style: italic;"><br/></span></span></p> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><strong><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Inventories</span></span></strong></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;">Inventories are stated at the lower of cost or net realizable value, with cost determined using the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business less cost to sell and considers our current assessment of general market and economic conditions, slow-moving inventory and future demand. Appropriate consideration is given to deterioration, obsolescence, and other factors in evaluating net realizable value.  </p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Accounts and Trade Notes Receivable</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">We extend unsecured credit to our customers in the normal course of business. We periodically provide financing to customers for the purchase of <span style="border: 0px; box-sizing: border-box; color: #333333; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><span style="border: 0px; box-sizing: border-box; color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span style="border: 0px; box-sizing: border-box; color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">SQ3000 Multi-Function system products. Trade notes receivable bear interest at annual effective rates ranging from approximately 5% to 7%, and are repayable over periods ranging from 18 to 36 months. The current portion of the trade notes are classified as accounts receivable in the accompanying balance sheets. </span></span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0px; text-indent: 0px;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span style="border: 0px; box-sizing: border-box; color: #333333; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><span style="border: 0px; box-sizing: border-box; color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span style="border: 0px; box-sizing: border-box; color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Interest income will be discontinued for any trade notes receivable with a specific reserve established if it is likely that we will be unable to collect all amounts due according to the original terms of the trade notes. For these trade notes receivable, cash collection will first be applied as a reduction to principal outstanding. Any cash received in excess of the outstanding principal payments will be recognized as interest income. Trade notes receivable may be removed from non-accrual status with respect to interest income based upon changes in customer circumstances, including a sustained history of payments. At December 31, 2021 and December 31, 2020, none of our trade notes receivable were in a non-accrual status with respect to interest income.</span></span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Allowance for Doubtful Accounts and Trade Notes <br/></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <span style="font-family: 'times new roman', times; font-size: 10pt;">Allowances for doubtful accounts are maintained for estimated losses resulting from the inability of our customers to make required payments. In making the determination of the appropriate allowance for doubtful accounts, we consider specific accounts, historical write-offs, changes in customer relationships and credit worthiness and concentrations of credit risk. Specific accounts and trade notes receivable are written-off once a determination is made that the account is uncollectible.</span> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Equipment and Leasehold Improvements<br/></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Equipment and leasehold improvements are stated at cost. Significant additions or improvements extending asset lives are capitalized, while repairs and maintenance are charged to expense as incurred. In-progress costs are capitalized with depreciation beginning when assets are placed in service. Depreciation is recorded using the straight-line method over the estimated useful lives of the equipment, ranging from</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="-sec-ix-hidden:Tag956">one</span> to</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">seven years. Leasehold improvements are amortized using the straight-line method over the shorter of the asset useful life or the underlying lease term, ranging from</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="-sec-ix-hidden:Tag955">one</span> to</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">eight years. Gains or losses on dispositions are included in current operations.</span></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Goodwill<br/></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Goodwill represents the excess of purchase price over the fair value of net assets acquired in a business combination. We have determined that we have</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">one reporting unit. <span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">We evaluate the carrying value of goodwill annually on December 31</span>st and more frequently if management believes indicators of impairment exist. Such indicators could include, but are not limited to (1) a significant adverse change in legal factors or in business climate, (2) unanticipated competition, or (3) an adverse action or assessment by a regulator. We first assess qualitative factors to determine whether it is more likely than not that our fair value is greater than carrying value (i.e. net book value). If we conclude that it is more likely than not that our fair value is greater than carrying value, no further testing is required. If we conclude that it is more likely than not that our fair value is less than carrying value, we estimate our fair value using the income approach. The income approach is a valuation technique under which we estimate future cash flows using financial forecasts. Future estimated cash flows are discounted to their present value to calculate fair value. When considering fair value, we also give consideration to the control premium in excess of our current market capitalization that might be obtained from a third party acquirer. Goodwill impairment is measured as the amount by which our carrying value exceeds our fair value, but not in an amount in excess of the carrying value of goodwill.</span></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">On December 31, 2021 and 2020, we performed a qualitative assessment to determine if there was any indication that our goodwill might be impaired. After considering all available evidence, including our financial performance, financial outlook and current market capitalization, we concluded that it is more likely than not that our fair value is greater than carrying value. As a result, no further testing was deemed necessary, and we determined that our goodwill was not impaired. Therefore, no amounts were recorded for goodwill impairment in <span style="display: inline;"><span style="border-left: none; border-right: none;">2021</span></span> or <span style="display: inline;"><span style="border-left: none; border-right: none;">2020</span></span>.</span></span></span></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Patents<br/></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Patents consist of legal and patent registration costs for protection of our proprietary technology. We amortize patent costs on a straight-line basis, based upon their estimated life.</span></p> <div style="border-left: none; border-right: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Long Lived Assets</span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Intangible assets subject to amortization and other long-lived assets are reviewed for impairment when events or changes in circumstances indicate that the carrying amount of the assets may not be recoverable. An impairment loss would be recognized when future undiscounted cash flows expected to result from use of the asset and eventual disposition are less than the carrying amount. </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Operating Leases</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">We determine if an arrangement is a lease at inception. Operating leases are recorded in operating lease right-of-use (ROU) assets, current operating lease liabilities, and long-term operating lease liabilities in our consolidated balance sheets. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Operating lease ROU assets and liabilities are recognized based on the present value of lease payments over the lease term. The operating lease ROU assets exclude lease incentives. As our leases do not provide an implicit rate, we use our incremental borrowing rate to determine the present value of lease payments. Our leases may include renewal options to extend the lease term, the exercise of which are at our sole discretion. In our accounting treatment of leases, the lease terms used do not include any option to extend the lease, because it is not reasonably certain that we will exercise the option. Lease expense is recognized on a straight-line basis over the lease term. We have lease agreements with lease and non-lease components (e.g., common-area or other maintenance costs) which are generally accounted for separately and expensed monthly. We do not recognize a ROU asset and lease liability for leases having a term of </span></span><span>12</span><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> months or less at the effective date.</span></span></span></p> </div> <p style="font-size: 7pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Revenue Recognition</span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10pt; line-height: inherit; color: #000000;">Revenue is measured based on consideration specified in the contract with a customer.<span style="border: 1pt none windowtext; padding: 0in; line-height: inherit;"> </span>A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account for purposes of revenue recognition. Revenue from all customers, including distributors, is recognized when a performance obligation is satisfied by transferring control of a product or service to a customer. Amounts billed to customers for shipping and handling are included in revenue. All shipping and handling costs associated with outbound freight are accounted for as fulfillment costs and are included in cost of sales. Taxes collected from customers and remitted to governmental authorities are excluded from revenue on the net basis of accounting. Accounts receivable are due under normal trade terms, typicall<span>y </span>150<span> d</span>ays or less.</span></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 12pt; font-family: 'Times New Roman', serif;"><br/></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10pt; line-height: inherit; color: #000000;"><span style="color: #000000; font-family: 'Times New Roman', serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Our performance obligations are mostly satisfied at a point in time and to a lesser extent over time as work progresses. Revenue for products and services transferred to customers at a point in time is recognized when obligations under the terms of the contract with our customer are satisfied; generally with the transfer of control upon shipment. Sales of some products may require customer acceptance due to performance or other acceptance criteria that is considered more than a formality. For these product sales, revenue is recognized upon notification of customer acceptance.</span></span></p> <p style="font-size: 7pt; line-height: 1.1; margin: 0pt;"><br/></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10pt; line-height: inherit; color: #000000;">Sales involving multiple performance obligations typically include the sale of an <span style="color: #000000; font-family: 'Times New Roman', serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important; line-height: inherit;">inspection or metrology systems</span> product, installation and training, and in some cases, an extended warranty. When a sale involves multiple performance obligations, we account for individual products and services separately if the customer can benefit from the product or service on its own or with other resources that are readily available to the customer and the product or service are separately identifiable from other promises in the arrangement.<span style="border: 1pt none windowtext; padding: 0in; line-height: inherit;"> Undelivered performance obligations in an arrangement are typically minimal, consisting of undelivered installation and training services. </span>The consideration is allocated between separate performance obligations in proportion to their estimated stand-alone selling price. If the stand-alone selling price is not directly observable, we use the cost plus margin approach to estimate stand-alone selling price. Costs related to products delivered are recognized in the period revenue is recognized; including product warranties for periods ranging from 1 to 3 years (see Note 9).</span></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; line-height: 120%; color: #000000;"><span>Periodically</span>, sensor product arrangements with our original equipment manufacturers (OEM's) will create an asset with no alternative use and include an enforceable right to payment. </span><span style="font-size: 10pt;">For these arrangements, control is transferred over the manufacturing process; therefore, revenue is recognized over time utilizing an input method based on actual costs incurred in the manufacturing process to date relative to total expected production costs. For certain longer duration 3D scanning service projects, we progress bill as the services are performed. </span><span style="font-size: 10pt;">These arrangements create an asset with no alternative use and include an enforceable right to payment.</span><span style="border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;"><span style="font-size: 10pt;"> For these arrangements, control is transferred over the hours incurred to complete the scanning project; therefore, revenue is recognized over time utilizing an input method based on actual hours incurred relative to total projected project hours. </span></span><span style="font-size: 10pt;">For maintenance and extended warranty contracts, revenue is recognized over time on a straight-line basis over the term of the contract as the customer simultaneously receives and consumes the benefits of the coverage.</span></span><br/></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><strong style="color: #000000; font-family: 'Times New Roman', serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><em>Practical Expedients </em></strong></span></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><strong style="color: #000000; font-family: 'Times New Roman', serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;"/>We generally expense the incremental costs of obtaining a contract when incurred because the amortization period for these costs would be less than one year. These costs primarily relate to sales commissions and are recorded in selling, general and administrative expense in our consolidated statements of operations. </span></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;">We do not disclose the value of unsatisfied performance obligations for contracts with an original expected length of one year or less, primarily consisting of product installation and training. We do not adjust the promised amount of consideration for the effects of a significant financing component if we expect, at contract inception, that the period between when we transfer a promised good or service to a customer and when the customer pays for that good or service will be one year or less.  </p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Foreign Currency Translation<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Financial position and results of operations of our international subsidiaries are measured using local currency as their functional currency. Assets and liabilities of these operations are translated at the exchange rates in effect at each fiscal year-end. Statements of operations accounts are translated at the average rates of exchange prevailing during the year. Translation adjustments arising from the use of differing exchange rates from period to period are included as a cumulative translation adjustment in stockholders’</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">equity.</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 8pt 0pt 0pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Foreign Currency Transactions<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Foreign currency transaction gains and losses are included in interest income and other, net in the statement of operations. We recognized foreign currency transaction losses of </span><span style="font-size: 10pt;"><span>$</span>11,000 in</span><span style="font-size: 10pt;"> 2021. We recognized foreign transaction gains of </span><span style="font-size: 10pt;">$27,000 in 2020</span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">.</span></span></span></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Research and Development<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Research and development (R&amp;D) costs, including product software development, are expensed when incurred. Product software development costs are required to be expensed until the point that technological feasibility and proven marketability of the product are established; costs otherwise capitalizable after such point also are expensed because they are insignificant. All other R&amp;D costs are expensed as incurred. R&amp;D expenses consist primarily of salaries, project materials, contract labor and other costs associated with ongoing product development and enhancement efforts.</span></p> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 10pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Advertising Costs<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We expense all advertising costs as incurred. Advertising expenses were</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">$252,000 in</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">2021 and </span></span><span style="font-size: 10pt;">$371,000 in</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">2020<span style="border-left: none; border-right: none;">.</span></span></span></span></p> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> <strong><span style="font-family: 'times new roman', times; font-size: 10pt;">Warranty Costs</span></strong> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 10pt;"> </p> <span style="font-family: 'times new roman', times; font-size: 10pt;">We provide for the estimated cost of product warranties, which cover products for periods ranging from <span style="-sec-ix-hidden:Tag954">one</span> to </span><span style="font-family: 'times new roman', times; font-size: 10pt;">three years</span><span style="font-family: 'times new roman', times; font-size: 10pt;"> at the time revenue is recognized. </span> <div><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> <div><span style="font-family: 'times new roman', times; font-size: 10pt;">See Note 9 to the consolidated financial statements for additional information related to warranty costs. </span></div> <div> </div> <div><br/></div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Income Taxes<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We evaluate uncertain tax positions using the</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“more likely than not”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">threshold (i.e., a likelihood of occurrence greater than fifty percent). The recognition threshold is met when an entity concludes that a tax position, based solely on its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are classified as a gross unrecognized tax benefit until the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statute of limitations. De-recognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained. Our net unrecognized tax benefit ("UTB") is a long-term income tax reserve within our consolidated balance sheets.</span></span></p> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 10pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt 0pt 8pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Only the portion of the UTB that is expected to be paid within<span> one</span> year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statute of limitations) or are not expected to be paid within <span>one year</span> are not classified as current. It is our policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Deferred income taxes are recorded to reflect the tax consequences in future years of differences between the financial reporting and tax bases of assets and liabilities. We have made an accounting policy election to record the U.S. income tax effect of future global intangible low-taxed income ("GILTI") inclusions in the period in which they arise, rather than establishing deferred taxes with respect to the expected future tax liabilities associated with future GILTI inclusion. Income tax expense is the sum of the tax currently payable and the change in the deferred tax assets and liabilities during the period, excluding changes in deferred tax assets recorded to goodwill or accumulated other comprehensive loss. Valuation allowances are established when, in the opinion of management, it is more likely than not that some portion or all of the deferred tax assets will not be realized. We assess the realizability of our deferred tax assets and the need for a valuation allowance based on all positive and negative evidence.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <div style="border-right: none; border-left: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Net Income Per Share</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">Basic net income per basic share is computed by dividing net income by the weighted average number of common shares outstanding during the period. Net income per diluted share is computed by dividing net income by the weighted average number of common and common equivalent shares outstanding during the period. Common equivalent shares consist of common shares to be issued upon exercise of stock options, vesting of restricted stock units, vesting of restricted shares and from purchases of shares under our employee stock purchase plan, as calculated using the treasury stock method. Common equivalent shares are excluded from the calculation of net income per diluted share if their effect is anti-dilutive.</span></span></p> <div style="border-right: none; border-left: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span><span style="font-weight: bold; font-family: 'times new roman', times; font-size: 10pt;"><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span><span style="font-weight: bold; font-family: 'times new roman', times; font-size: 10pt;">Comprehensive Income</span></span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span>Total comprehensive income and the components of accumulated other comprehensive loss are presented in the Consolidated Statements of Comprehensive Income and the Consolidated Statements of Stockholders' Equity. Accumulated other comprehensive loss is composed of foreign currency translation effects and unrealized gains and losses on available-for-sale marketable debt securities. We use the individual item approach for releasing income tax effects from accumulated other comprehensive loss. </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> </div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Fair Value of Financial Instruments <br/></span></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 8pt; font-family: 'Times New Roman', serif;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The carrying amounts of financial instruments such as cash equivalents, accounts receivable, other assets, accounts payable, advance customer payments, accrued expenses and other liabilities approximate their related fair values due to the short-term maturities of these instruments. The fair value for trade notes receivable is based on discounted future cash flows using current interest rates that would be offered for a similar transaction to a similarly situated customer. The difference between the carrying amount and estimated fair value for trade notes receivable is immaterial. </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">See Note 6 for information related to fair value of marketable securities. </span></p> <div><br/></div> <div style="border-right: none; border-left: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Share-Based Compensation<br/></span></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 8pt; font-family: 'Times New Roman', serif;"><br/></p> <p style="font-size: 10pt; line-height: 1.3; margin: 0pt 0pt 6pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; line-height: inherit;"><span style="font-size: 10pt; line-height: inherit;">All share-based payments to employees, including grants of stock options, are required to be recognized as an expense in our consolidated statements of operations based on the grant date fair value of the award. We utilize the straight-line method of expense recognition over the award’s service period for our graded vesting options. The fair value of stock options has been determined usi<span style="line-height: inherit;">ng the Black-Scholes model. We account for the impact of forfeitures related to employee share-based payment arrangements when the forfeitures occur. </span></span><span style="line-height: inherit;"><span style="font-size: 10pt; line-height: inherit;">We have classified employee share-based compensation within our consolidated statements of operations in the same manner as our cash based employee compensation costs.</span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">See Note 7 to the consolidated financial statements for additional information related to employee share-based compensation. </span></span></p> </div> <p style="font-size: 8pt; line-height: 120%; margin: 0pt;"><br/></p> <div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Related Party Transactions<br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We periodically sell or purchase products from companies for which our board members serve in an executive capacity and in some cases on the board of directors. These transactions occur in the normal course of business. Our cumulative sales to these companies </span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">were $387,000</span> in 2021 and $40,000 in 2020</span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">. <span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Accounts receivable due from related party sales were <span>$185,000 as of December 31, 2021 and $3,000</span> as of December 31, 2020. </span></span></span></span><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">Our cumulative purchases from these companies were $61,000 in 2021 and $<span style="border-right: none; border-left: none;"><span>59,000</span></span> in 2020. </span></span></span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <div style="border-left: none; border-right: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; line-height: inherit;">Recent Accounting Developments</span></p> <p style="font-size: 8pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; text-indent: 0pt; margin: 0pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: #000000; line-height: inherit;"><span style="font-family: 'times new roman', times; line-height: inherit;">In June 2016, the FASB issued ASU No. 2016-13, <i>Measurement of Credit Losses on Financial Instruments</i>, which revises guidance for the accounting for credit losses on financial instruments within its scope, and in November 2018, issued ASU No. 2018-19, which amended the standard. The new standard introduces an approach to estimating credit losses that is based on expected losses (referred to as the current expected credit losses model), and applies to most financial assets measured at amortized cost and certain other instruments, including available-for-sale marketable debt securities, trade and other receivables. The new standard is effective for us on January 1, 2023, with early adoption permitted. We are required to apply the standard’s provisions as a cumulative-effect adjustment to retained earnings as of the beginning of the first reporting period in which the guidance is adopted. We presently do not believe the new standard will have a material impact on our consolidated financial statements.</span></span><br/></p> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif; line-height: 1.1;"><br/></p> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif; line-height: 1.1;"><span style="font-size: 10pt; line-height: inherit;">No other new accounting pronouncements are expected to have a significant impact on our consolidated financial statements.</span></p> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Principles of Consolidation<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">The consolidated financial statements include the accounts of CyberOptics Corporation and its wholly-owned subsidiaries. In these notes to the consolidated financial statements, these companies are collectively referred to as</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“CyberOptics,”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“we,”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“us,”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">or</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“our.”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">All significant inter-company accounts and transactions have been eliminated in consolidation.</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Segment Reporting<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">We operate in a single reportable segment that includes the design, development and manufacture of high precision sensing, inspection and metrology solutions for the SMT and semiconductor markets.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Use of Estimates<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The preparation of consolidated financial statements in conformity with generally accepted accounting principles requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the reporting period. Actual results could differ significantly from those estimates.</span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Cash and Cash Equivalents<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We consider all highly liquid investments purchased with an original maturity of </span><span style="font-size: 10pt;">90 days or less to be cash equivalents. Cash and cash equivalents consist of funds maintained in demand deposit accounts, money market accounts, certificate of deposits, corporate debt instruments and U.S. government backed obligations. Cash and cash equivalent balances, at times, may exceed federally insured limits.</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Marketable Securities</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">We determine <span style="font-size: 10pt;">the classification of investment securities at the time of purchase. Marketable securities are classified as short-term or long-term in the consolidated balance sheets based on their maturity date and expectations regarding sales. All marketable securities are classified as available-for-sale and are a part of our asset/liability management strategy and may be sold in response to changes in interest rates, prepayment risk or other market factors.</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;">Cash and marketable securities held by foreign subsidiaries totaled</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">$588,000 at</span><span style="font-size: 10pt;"> </span>December 31, 2021<span style="font-size: 10pt;"> and</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">$<span style="border-left: none; border-right: none;">672,000</span> at</span><span style="font-size: 10pt;"> </span>December 31, 2020<span style="font-size: 10pt;">.</span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;"><span style="font-style: italic; font-weight: bold;">Debt Securities</span><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;"><span style="font-style: italic;"><br/></span></span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt; line-height: 120%; font-family: 'times new roman', times;">Debt securities consist of U.S. government and agency backed obligations, certificates of deposit, corporate debt instruments, or asset backed securities. </span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt; line-height: 120%; font-family: 'times new roman', times;"> </span></p> <p style="margin: 0in 0in 12pt; line-height: 120%; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10pt; line-height: 120%; font-family: 'times new roman', times;">Available-for-sale securities are carried at estimated fair value. Unrealized gains and losses for debt securities are reported as a separate component of stockholders’ equity in accumulated other comprehensive income (loss), net of applicable income taxes, until realized. Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The amortized cost and fair value of debt securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of debt securities sold and the resulting realized gains or losses are also determined by specific identification. Interest income and dividends are recognized in interest income on an accrual basis. Premiums and discounts on debt securities are amortized as an adjustment to interest income over the period to maturity of the related security using the effective interest method.</span></p> <div> </div> <p style="margin: 0in 0in 12pt; line-height: 120%; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10.0pt; line-height: 120%;"><span style="font-family: 'times new roman', times;">We monitor the carrying value of our debt securities compared to their fair value to determine whether an other-than-temporary impairment (“OTTI”) has occurred. Factors considered in determining whether a loss is other-than-temporary include the length of time and extent to which fair value has been less than the amortized cost basis, credit quality (considering factors such as adverse conditions specific to the issuer and the security and ratings agency actions) and our ability and intent to hold the investment for a period of time sufficient to allow for any anticipated recovery in market value. If a decline in fair value of our debt securities is determined to be other-than-temporary, the amount by which amortized cost exceeds the fair value of a debt security is separated into a component representing the credit loss, which is recognized in earnings, and a component related to all other factors, which is recognized in other comprehensive income (loss). The measurement of the credit loss component is equal to the difference between the debt security’s amortized cost basis and the present value of its expected future cash flows discounted at the security’s effective yield. If we intend to sell the security, or if it is more likely than not we will be required to sell the security before recovery, an OTTI write-down is recognized in earnings equal to the entire difference between the amortized cost basis and fair value of the security.</span></span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10.0pt; line-height: 120%;"><span style="font-family: 'times new roman', times;"><span style="font-style: italic; font-weight: bold;">Equity Securities</span><br/></span></span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10.0pt; line-height: 120%;"><span style="font-family: 'times new roman', times;"><span style="font-style: italic;"><br/></span></span></span></p> <p style="line-height: 120%; margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span style="font-size: 10.0pt; line-height: 120%;"><span style="font-family: 'times new roman', times;">Equity securities have readily determinable fair values.<span style="font-size: 10pt;"> Fair values are primarily determined using quoted market prices or valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The fair value of equity securities, for purposes of computing unrealized gains and losses, are determined by specific identification. The cost of equity securities sold and resulting realized gains or losses are also determined by specific identification. Dividends are recognized in interest income on an accrual basis. Unrealized gains and losses for equity securities are reported in net income. </span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt;"><span style="font-style: italic;"><br/></span></span></p> 588000 672000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><strong><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Inventories</span></span></strong></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;">Inventories are stated at the lower of cost or net realizable value, with cost determined using the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business less cost to sell and considers our current assessment of general market and economic conditions, slow-moving inventory and future demand. Appropriate consideration is given to deterioration, obsolescence, and other factors in evaluating net realizable value.  </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Accounts and Trade Notes Receivable</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">We extend unsecured credit to our customers in the normal course of business. We periodically provide financing to customers for the purchase of <span style="border: 0px; box-sizing: border-box; color: #333333; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><span style="border: 0px; box-sizing: border-box; color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span style="border: 0px; box-sizing: border-box; color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">SQ3000 Multi-Function system products. Trade notes receivable bear interest at annual effective rates ranging from approximately 5% to 7%, and are repayable over periods ranging from 18 to 36 months. The current portion of the trade notes are classified as accounts receivable in the accompanying balance sheets. </span></span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0px; text-indent: 0px;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span style="border: 0px; box-sizing: border-box; color: #333333; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><span style="border: 0px; box-sizing: border-box; color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span style="border: 0px; box-sizing: border-box; color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Interest income will be discontinued for any trade notes receivable with a specific reserve established if it is likely that we will be unable to collect all amounts due according to the original terms of the trade notes. For these trade notes receivable, cash collection will first be applied as a reduction to principal outstanding. Any cash received in excess of the outstanding principal payments will be recognized as interest income. Trade notes receivable may be removed from non-accrual status with respect to interest income based upon changes in customer circumstances, including a sustained history of payments. At December 31, 2021 and December 31, 2020, none of our trade notes receivable were in a non-accrual status with respect to interest income.</span></span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Allowance for Doubtful Accounts and Trade Notes <br/></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <span style="font-family: 'times new roman', times; font-size: 10pt;">Allowances for doubtful accounts are maintained for estimated losses resulting from the inability of our customers to make required payments. In making the determination of the appropriate allowance for doubtful accounts, we consider specific accounts, historical write-offs, changes in customer relationships and credit worthiness and concentrations of credit risk. Specific accounts and trade notes receivable are written-off once a determination is made that the account is uncollectible.</span> 0.05 0.07 P18M P36M <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Equipment and Leasehold Improvements<br/></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Equipment and leasehold improvements are stated at cost. Significant additions or improvements extending asset lives are capitalized, while repairs and maintenance are charged to expense as incurred. In-progress costs are capitalized with depreciation beginning when assets are placed in service. Depreciation is recorded using the straight-line method over the estimated useful lives of the equipment, ranging from</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="-sec-ix-hidden:Tag956">one</span> to</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">seven years. Leasehold improvements are amortized using the straight-line method over the shorter of the asset useful life or the underlying lease term, ranging from</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="-sec-ix-hidden:Tag955">one</span> to</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">eight years. Gains or losses on dispositions are included in current operations.</span></span></p> P7Y P8Y <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Goodwill<br/></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Goodwill represents the excess of purchase price over the fair value of net assets acquired in a business combination. We have determined that we have</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">one reporting unit. <span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">We evaluate the carrying value of goodwill annually on December 31</span>st and more frequently if management believes indicators of impairment exist. Such indicators could include, but are not limited to (1) a significant adverse change in legal factors or in business climate, (2) unanticipated competition, or (3) an adverse action or assessment by a regulator. We first assess qualitative factors to determine whether it is more likely than not that our fair value is greater than carrying value (i.e. net book value). If we conclude that it is more likely than not that our fair value is greater than carrying value, no further testing is required. If we conclude that it is more likely than not that our fair value is less than carrying value, we estimate our fair value using the income approach. The income approach is a valuation technique under which we estimate future cash flows using financial forecasts. Future estimated cash flows are discounted to their present value to calculate fair value. When considering fair value, we also give consideration to the control premium in excess of our current market capitalization that might be obtained from a third party acquirer. Goodwill impairment is measured as the amount by which our carrying value exceeds our fair value, but not in an amount in excess of the carrying value of goodwill.</span></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">On December 31, 2021 and 2020, we performed a qualitative assessment to determine if there was any indication that our goodwill might be impaired. After considering all available evidence, including our financial performance, financial outlook and current market capitalization, we concluded that it is more likely than not that our fair value is greater than carrying value. As a result, no further testing was deemed necessary, and we determined that our goodwill was not impaired. Therefore, no amounts were recorded for goodwill impairment in <span style="display: inline;"><span style="border-left: none; border-right: none;">2021</span></span> or <span style="display: inline;"><span style="border-left: none; border-right: none;">2020</span></span>.</span></span></span></p> 1 0 0 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Patents<br/></span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Patents consist of legal and patent registration costs for protection of our proprietary technology. We amortize patent costs on a straight-line basis, based upon their estimated life.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Long Lived Assets</span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Intangible assets subject to amortization and other long-lived assets are reviewed for impairment when events or changes in circumstances indicate that the carrying amount of the assets may not be recoverable. An impairment loss would be recognized when future undiscounted cash flows expected to result from use of the asset and eventual disposition are less than the carrying amount. </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Operating Leases</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">We determine if an arrangement is a lease at inception. Operating leases are recorded in operating lease right-of-use (ROU) assets, current operating lease liabilities, and long-term operating lease liabilities in our consolidated balance sheets. ROU assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Operating lease ROU assets and liabilities are recognized based on the present value of lease payments over the lease term. The operating lease ROU assets exclude lease incentives. As our leases do not provide an implicit rate, we use our incremental borrowing rate to determine the present value of lease payments. Our leases may include renewal options to extend the lease term, the exercise of which are at our sole discretion. In our accounting treatment of leases, the lease terms used do not include any option to extend the lease, because it is not reasonably certain that we will exercise the option. Lease expense is recognized on a straight-line basis over the lease term. We have lease agreements with lease and non-lease components (e.g., common-area or other maintenance costs) which are generally accounted for separately and expensed monthly. We do not recognize a ROU asset and lease liability for leases having a term of </span></span><span>12</span><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> months or less at the effective date.</span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Revenue Recognition</span></p> <p style="font-size: 6pt; line-height: 120%; margin: 0pt;"> </p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10pt; line-height: inherit; color: #000000;">Revenue is measured based on consideration specified in the contract with a customer.<span style="border: 1pt none windowtext; padding: 0in; line-height: inherit;"> </span>A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account for purposes of revenue recognition. Revenue from all customers, including distributors, is recognized when a performance obligation is satisfied by transferring control of a product or service to a customer. Amounts billed to customers for shipping and handling are included in revenue. All shipping and handling costs associated with outbound freight are accounted for as fulfillment costs and are included in cost of sales. Taxes collected from customers and remitted to governmental authorities are excluded from revenue on the net basis of accounting. Accounts receivable are due under normal trade terms, typicall<span>y </span>150<span> d</span>ays or less.</span></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 12pt; font-family: 'Times New Roman', serif;"><br/></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10pt; line-height: inherit; color: #000000;"><span style="color: #000000; font-family: 'Times New Roman', serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Our performance obligations are mostly satisfied at a point in time and to a lesser extent over time as work progresses. Revenue for products and services transferred to customers at a point in time is recognized when obligations under the terms of the contract with our customer are satisfied; generally with the transfer of control upon shipment. Sales of some products may require customer acceptance due to performance or other acceptance criteria that is considered more than a formality. For these product sales, revenue is recognized upon notification of customer acceptance.</span></span></p> <p style="font-size: 7pt; line-height: 1.1; margin: 0pt;"><br/></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10pt; line-height: inherit; color: #000000;">Sales involving multiple performance obligations typically include the sale of an <span style="color: #000000; font-family: 'Times New Roman', serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important; line-height: inherit;">inspection or metrology systems</span> product, installation and training, and in some cases, an extended warranty. When a sale involves multiple performance obligations, we account for individual products and services separately if the customer can benefit from the product or service on its own or with other resources that are readily available to the customer and the product or service are separately identifiable from other promises in the arrangement.<span style="border: 1pt none windowtext; padding: 0in; line-height: inherit;"> Undelivered performance obligations in an arrangement are typically minimal, consisting of undelivered installation and training services. </span>The consideration is allocated between separate performance obligations in proportion to their estimated stand-alone selling price. If the stand-alone selling price is not directly observable, we use the cost plus margin approach to estimate stand-alone selling price. Costs related to products delivered are recognized in the period revenue is recognized; including product warranties for periods ranging from 1 to 3 years (see Note 9).</span></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; line-height: 120%; color: #000000;"><span>Periodically</span>, sensor product arrangements with our original equipment manufacturers (OEM's) will create an asset with no alternative use and include an enforceable right to payment. </span><span style="font-size: 10pt;">For these arrangements, control is transferred over the manufacturing process; therefore, revenue is recognized over time utilizing an input method based on actual costs incurred in the manufacturing process to date relative to total expected production costs. For certain longer duration 3D scanning service projects, we progress bill as the services are performed. </span><span style="font-size: 10pt;">These arrangements create an asset with no alternative use and include an enforceable right to payment.</span><span style="border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;"><span style="font-size: 10pt;"> For these arrangements, control is transferred over the hours incurred to complete the scanning project; therefore, revenue is recognized over time utilizing an input method based on actual hours incurred relative to total projected project hours. </span></span><span style="font-size: 10pt;">For maintenance and extended warranty contracts, revenue is recognized over time on a straight-line basis over the term of the contract as the customer simultaneously receives and consumes the benefits of the coverage.</span></span><br/></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><strong style="color: #000000; font-family: 'Times New Roman', serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><em>Practical Expedients </em></strong></span></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><strong style="color: #000000; font-family: 'Times New Roman', serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-style: initial; text-decoration-color: initial;"/>We generally expense the incremental costs of obtaining a contract when incurred because the amortization period for these costs would be less than one year. These costs primarily relate to sales commissions and are recorded in selling, general and administrative expense in our consolidated statements of operations. </span></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;">We do not disclose the value of unsatisfied performance obligations for contracts with an original expected length of one year or less, primarily consisting of product installation and training. We do not adjust the promised amount of consideration for the effects of a significant financing component if we expect, at contract inception, that the period between when we transfer a promised good or service to a customer and when the customer pays for that good or service will be one year or less.  </p> P150D P1Y P3Y <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Foreign Currency Translation<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Financial position and results of operations of our international subsidiaries are measured using local currency as their functional currency. Assets and liabilities of these operations are translated at the exchange rates in effect at each fiscal year-end. Statements of operations accounts are translated at the average rates of exchange prevailing during the year. Translation adjustments arising from the use of differing exchange rates from period to period are included as a cumulative translation adjustment in stockholders’</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">equity.</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 8pt 0pt 0pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Foreign Currency Transactions<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Foreign currency transaction gains and losses are included in interest income and other, net in the statement of operations. We recognized foreign currency transaction losses of </span><span style="font-size: 10pt;"><span>$</span>11,000 in</span><span style="font-size: 10pt;"> 2021. We recognized foreign transaction gains of </span><span style="font-size: 10pt;">$27,000 in 2020</span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">.</span></span></span></p> <p style="font-size: 7pt; line-height: 120%; margin: 0pt;"><br/></p> -11000 27000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Research and Development<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Research and development (R&amp;D) costs, including product software development, are expensed when incurred. Product software development costs are required to be expensed until the point that technological feasibility and proven marketability of the product are established; costs otherwise capitalizable after such point also are expensed because they are insignificant. All other R&amp;D costs are expensed as incurred. R&amp;D expenses consist primarily of salaries, project materials, contract labor and other costs associated with ongoing product development and enhancement efforts.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Advertising Costs<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We expense all advertising costs as incurred. Advertising expenses were</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">$252,000 in</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">2021 and </span></span><span style="font-size: 10pt;">$371,000 in</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">2020<span style="border-left: none; border-right: none;">.</span></span></span></span></p> 252000 371000 <strong><span style="font-family: 'times new roman', times; font-size: 10pt;">Warranty Costs</span></strong> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 10pt;"> </p> <span style="font-family: 'times new roman', times; font-size: 10pt;">We provide for the estimated cost of product warranties, which cover products for periods ranging from <span style="-sec-ix-hidden:Tag954">one</span> to </span><span style="font-family: 'times new roman', times; font-size: 10pt;">three years</span><span style="font-family: 'times new roman', times; font-size: 10pt;"> at the time revenue is recognized. </span> P3Y <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Income Taxes<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We evaluate uncertain tax positions using the</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">“more likely than not”</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">threshold (i.e., a likelihood of occurrence greater than fifty percent). The recognition threshold is met when an entity concludes that a tax position, based solely on its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are classified as a gross unrecognized tax benefit until the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statute of limitations. De-recognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained. Our net unrecognized tax benefit ("UTB") is a long-term income tax reserve within our consolidated balance sheets.</span></span></p> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 10pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt 0pt 8pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Only the portion of the UTB that is expected to be paid within<span> one</span> year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statute of limitations) or are not expected to be paid within <span>one year</span> are not classified as current. It is our policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Deferred income taxes are recorded to reflect the tax consequences in future years of differences between the financial reporting and tax bases of assets and liabilities. We have made an accounting policy election to record the U.S. income tax effect of future global intangible low-taxed income ("GILTI") inclusions in the period in which they arise, rather than establishing deferred taxes with respect to the expected future tax liabilities associated with future GILTI inclusion. Income tax expense is the sum of the tax currently payable and the change in the deferred tax assets and liabilities during the period, excluding changes in deferred tax assets recorded to goodwill or accumulated other comprehensive loss. Valuation allowances are established when, in the opinion of management, it is more likely than not that some portion or all of the deferred tax assets will not be realized. We assess the realizability of our deferred tax assets and the need for a valuation allowance based on all positive and negative evidence.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Net Income Per Share</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">Basic net income per basic share is computed by dividing net income by the weighted average number of common shares outstanding during the period. Net income per diluted share is computed by dividing net income by the weighted average number of common and common equivalent shares outstanding during the period. Common equivalent shares consist of common shares to be issued upon exercise of stock options, vesting of restricted stock units, vesting of restricted shares and from purchases of shares under our employee stock purchase plan, as calculated using the treasury stock method. Common equivalent shares are excluded from the calculation of net income per diluted share if their effect is anti-dilutive.</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span><span style="font-weight: bold; font-family: 'times new roman', times; font-size: 10pt;"><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span><span style="font-weight: bold; font-family: 'times new roman', times; font-size: 10pt;">Comprehensive Income</span></span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span>Total comprehensive income and the components of accumulated other comprehensive loss are presented in the Consolidated Statements of Comprehensive Income and the Consolidated Statements of Stockholders' Equity. Accumulated other comprehensive loss is composed of foreign currency translation effects and unrealized gains and losses on available-for-sale marketable debt securities. We use the individual item approach for releasing income tax effects from accumulated other comprehensive loss. </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Fair Value of Financial Instruments <br/></span></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 8pt; font-family: 'Times New Roman', serif;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The carrying amounts of financial instruments such as cash equivalents, accounts receivable, other assets, accounts payable, advance customer payments, accrued expenses and other liabilities approximate their related fair values due to the short-term maturities of these instruments. The fair value for trade notes receivable is based on discounted future cash flows using current interest rates that would be offered for a similar transaction to a similarly situated customer. The difference between the carrying amount and estimated fair value for trade notes receivable is immaterial. </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">See Note 6 for information related to fair value of marketable securities. </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Share-Based Compensation<br/></span></p> <p style="margin: 0in 0in 0.0001pt; line-height: 1.1; font-size: 8pt; font-family: 'Times New Roman', serif;"><br/></p> <p style="font-size: 10pt; line-height: 1.3; margin: 0pt 0pt 6pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; line-height: inherit;"><span style="font-size: 10pt; line-height: inherit;">All share-based payments to employees, including grants of stock options, are required to be recognized as an expense in our consolidated statements of operations based on the grant date fair value of the award. We utilize the straight-line method of expense recognition over the award’s service period for our graded vesting options. The fair value of stock options has been determined usi<span style="line-height: inherit;">ng the Black-Scholes model. We account for the impact of forfeitures related to employee share-based payment arrangements when the forfeitures occur. </span></span><span style="line-height: inherit;"><span style="font-size: 10pt; line-height: inherit;">We have classified employee share-based compensation within our consolidated statements of operations in the same manner as our cash based employee compensation costs.</span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">See Note 7 to the consolidated financial statements for additional information related to employee share-based compensation. </span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Related Party Transactions<br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We periodically sell or purchase products from companies for which our board members serve in an executive capacity and in some cases on the board of directors. These transactions occur in the normal course of business. Our cumulative sales to these companies </span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">were $387,000</span> in 2021 and $40,000 in 2020</span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">. <span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Accounts receivable due from related party sales were <span>$185,000 as of December 31, 2021 and $3,000</span> as of December 31, 2020. </span></span></span></span><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">Our cumulative purchases from these companies were $61,000 in 2021 and $<span style="border-right: none; border-left: none;"><span>59,000</span></span> in 2020. </span></span></span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> 387000 40000 185000 3000 61000 59000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; line-height: inherit;">Recent Accounting Developments</span></p> <p style="font-size: 8pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; text-indent: 0pt; margin: 0pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', serif; color: #000000; line-height: inherit;"><span style="font-family: 'times new roman', times; line-height: inherit;">In June 2016, the FASB issued ASU No. 2016-13, <i>Measurement of Credit Losses on Financial Instruments</i>, which revises guidance for the accounting for credit losses on financial instruments within its scope, and in November 2018, issued ASU No. 2018-19, which amended the standard. The new standard introduces an approach to estimating credit losses that is based on expected losses (referred to as the current expected credit losses model), and applies to most financial assets measured at amortized cost and certain other instruments, including available-for-sale marketable debt securities, trade and other receivables. The new standard is effective for us on January 1, 2023, with early adoption permitted. We are required to apply the standard’s provisions as a cumulative-effect adjustment to retained earnings as of the beginning of the first reporting period in which the guidance is adopted. We presently do not believe the new standard will have a material impact on our consolidated financial statements.</span></span><br/></p> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif; line-height: 1.1;"><br/></p> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif; line-height: 1.1;"><span style="font-size: 10pt; line-height: inherit;">No other new accounting pronouncements are expected to have a significant impact on our consolidated financial statements.</span></p> <div style="font-family: 'times new roman', times; font-size: 10pt; margin: 0px; text-indent: 0px;"> <p style="margin: 0px; text-indent: 0px;"><span style="font-weight: bold; font-size: 10pt;"><span>NOTE</span> 2 - COVID-19 PANDEMIC</span><br/></p> </div> <div style="font-family: 'times new roman', times; font-size: 10pt; margin: 0px; text-indent: 0px;"><br/></div> <div style="font-family: 'times new roman', times; font-size: 10pt;"><span style="font-weight: bold;">Effect of Covid-19 Outbreak on Business Operations </span></div> <div style="font-family: 'times new roman', times; font-size: 10pt;"><br/></div> <div style="font-family: 'times new roman', times; font-size: 10pt;">Covid-19 was first identified in December 2019, and in March 2020, the World Health Organization categorized Covid-19 as a pandemic. The Covid-19 pandemic is affecting our customers, suppliers, service providers and employees to varying degrees, and the ultimate impacts of Covid-19, including the potential impact of known and future variants, on our business, results of operations, liquidity and prospects are not fully known at this time. Overall, the Covid-19 outbreak has not had a significant impact on our business to date. However, the following factors have affected and may continue to affect our business: </div> <ul style="list-style-type: disc;"> <li class="mylistitemclass" style="font-family: 'times new roman', times; font-size: 10pt;">Our key factories are located in Minnesota and Singapore. Both of these locations have been subject to government mandated shelter-in-place orders. Because our operations have been deemed essential, we were able to keep our factories up and running while the shelter-in-place mandates were in effect. If the pandemic worsens, it is possible that our operations may not be deemed essential under future government mandated shelter-in-place orders, and we may be required to shut-down factory operations. We have periodically implemented split-shifts for our factory operations to minimize the number of employees in our facilities at any given time, but these measures have not affected our production capacity. Since the start of the pandemic, many of our non-factory employees have spent the majority of their time working remotely. To date, the shelter-in-place mandates and remote work arrangements have had a minimal impact on operations, but material negative effects on our business could result if the pandemic worsens and continues for an extended period of time.</li> </ul> <ul style="list-style-type: disc;"> <li class="mylistitemclass" style="font-family: 'times new roman', times; font-size: 10pt;">Sales of some products, mainly our SQ3000 Multi-Function systems and MX memory module inspection products, require customer acceptance due to performance or other criteria that is considered more than a formality. Most of our customer’s factories have remained open during the Covid-19 pandemic because they are deemed to be essential under government shelter-in-place mandates. However, global travel restrictions and quarantine measures have hindered our ability to obtain some customer acceptances of certain products at various times during the Covid-19 pandemic. Continuing or new global travel restrictions and quarantine measures could hinder our ability to obtain customer acceptances in a timely manner in the future, and therefore impact the timing of revenue recognition.</li> </ul> <ul style="list-style-type: disc;"> <li class="mylistitemclass" style="font-family: 'times new roman', times; font-size: 10pt;">The Covid-19 pandemic has caused disruptions in the global supply chain, including shortages of raw materials, parts and labor, and shipping and logistics issues, including delays in ocean freight and port congestion. Key supply chain disruptions impacting our business have been resolved to date. On-hand inventories have been sufficient to enable us to mitigate any supply disruptions with minimal impact on our sales or ability to service customers. However, it has become increasingly difficult to obtain adequate supplies of certain key components and labor for product assembly. Port congestion and tight booking for global sea freight have caused delays in product deliveries. The inability to obtain adequate supply of components or labor could result in the inability to meet customer demands and deliver one or more of our products for a period of several months or longer. Supply chain disruptions are expected to continue for the foreseeable future and may increase if the pandemic worsens or continues for an extended period of time.</li> </ul> <p style="line-height: 1.1; font-family: 'times new roman', times; font-size: 10pt;"><span style="font-size: 10pt;">Although we cannot estimate the continuing impact of the Covid-19 outbreak at this time, it may have an adverse effect on our results of future operations, financial position and liquidity in 2022 and beyond. </span></p> <p style="line-height: 1.1; font-family: 'times new roman', times; font-size: 10pt;"><span style="font-size: 10pt;"><br/></span></p> <div> </div> <p style="line-height: 1.1; margin: 0px; text-indent: 0px; font-family: 'times new roman', times;"><span style="font-size: 10pt; font-weight: bold;">Singapore Jobs Support Program</span></p> <p style="line-height: 1.1; margin: 0px; text-indent: 0px;"><span style="font-size: 10pt;"> </span></p> <p style="margin: 0px; line-height: 1.3; font-size: 10pt; font-family: 'times new roman', times; text-indent: 0px;"><span style="font-size: 10pt; line-height: inherit;">The Singapore Government implemented a jobs support program in 2020 that was intended to support businesses and encourage retention of employees during the period of economic uncertainty caused by the Covid-19 pandemic. Under the jobs support program, the Singapore Government co-funded a portion of the gross monthly wages paid to local employees, which reduced our operating expense by $410,000 in 2020. We did not receive any material benefit from the Singapore jobs support program in 2021</span>.<br/></p> 410000 <div> <div class="pageBreak" style="font-size: 10pt; text-align: left;"> <div> <div class="pageBreak" style="font-size: 10pt; text-align: left; background-color: #ffffff;"> <div><strong style="font-size: 13.3333px;"><em><strong style="font-size: 10pt; font-style: normal;">NOTE 3 – REVENUE RECOGNITION</strong></em></strong><br/></div> </div> </div> </div> </div> <div><span style="font-family: 'times new roman', times;"><strong style="font-size: 13.3333px;"><em><strong style="font-size: 10pt; font-style: normal; background-color: #ffffff;"><br/></strong></em></strong></span></div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><em><strong>Performance Obligations  </strong></em><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;">Our revenue <span style="font-family: 'times new roman', times;">performance obligations are primarily satisfied at a point in time and limited revenue streams are satisfied over time as work progresses.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">The following is a summary of our revenue performance obligations:</span></p> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></p> <div style="border-left: none; border-right: none;"> <table border="0" style="height: 94px; width: 98.9798%; border-collapse: collapse; margin-left: 0.1px; font-family: 'times new roman'; font-size: 10pt;"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: bottom; height: 17px;"><br/></td> <td style="text-align: center; vertical-align: bottom; height: 17px;"><br/></td> <td colspan="11" style="text-align: center; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"><span style="font-weight: bold; font-size: 8pt;">For the Year Ended December 31,</span></td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; height: 17px;"><br/></td> <td style="text-align: center; vertical-align: bottom; height: 17px;"><br/></td> <td colspan="5" style="text-align: center; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"><span style="font-weight: bold; font-size: 8pt;">2021</span></td> <td style="text-align: center; vertical-align: bottom; height: 17px;"><br/></td> <td colspan="5" style="text-align: center; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"><span style="font-weight: bold; font-size: 8pt;">2020</span></td> </tr> <tr style="height: 10px;"> <td style="height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"> <p style="text-align: left;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>(In thousands)</strong></span></p> </td> <td style="text-align: center; height: 10px; vertical-align: bottom;" valign="bottom"><br/></td> <td colspan="2" style="text-align: center; height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"> <p><span style="font-size: 8pt; font-weight: bold;">Revenues</span><br/></p> </td> <td style="text-align: center; height: 10px; vertical-align: bottom;" valign="bottom"><br/></td> <td colspan="2" style="text-align: center; height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"> <p style="line-height: 1.1;"><span style="font-weight: bold; font-size: 8pt; line-height: inherit;">Percent of Revenues</span><br/></p> </td> <td style="height: 10px; text-align: center; vertical-align: bottom;" valign="bottom"><br/></td> <td colspan="2" style="text-align: center; height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Revenues</strong></span><br/></td> <td style="height: 10px; vertical-align: bottom;" valign="bottom"><br/></td> <td colspan="2" style="height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"> <p style="text-align: center; line-height: 1.1;"><span style="font-size: 8pt; line-height: inherit;"><strong><span style="font-family: 'times new roman', times; line-height: inherit;">Percent of Revenues</span></strong></span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="height: 18px; background-color: #d6f3e8; width: 57%;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Revenue recognized over time</span></td> <td style="background-color: #d6f3e8; height: 18px; width: 1%;"><br/></td> <td style="background-color: #d6f3e8; height: 18px; width: 1%;">$</td> <td style="background-color: #d6f3e8; height: 18px; text-align: right; width: 8%;">2,253</td> <td style="background-color: #d6f3e8; height: 18px; width: 2%;"><br/></td> <td style="background-color: #d6f3e8; height: 18px; text-align: right; width: 8%;">2.4</td> <td style="background-color: #d6f3e8; height: 18px; width: 1%;">%</td> <td style="height: 18px; background-color: #d6f3e8; width: 2%;"><br/></td> <td style="height: 18px; background-color: #d6f3e8; text-align: left; width: 1%;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></td> <td style="height: 18px; text-align: right; background-color: #d6f3e8; font-family: 'times new roman', times; font-size: 10pt; width: 8%;">1,715</td> <td style="height: 18px; background-color: #d6f3e8; width: 2%;"><br/></td> <td style="height: 18px; text-align: right; background-color: #d6f3e8; font-family: 'times new roman', times; font-size: 10pt; width: 8%;">2.4</td> <td style="height: 18px; background-color: #d6f3e8; width: 1%;"><span style="font-family: symbol; font-size: 10pt;">%</span></td> </tr> <tr style="height: 18px;"> <td style="height: 18px;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Revenue recognized at a point in time</span></td> <td style="height: 18px;"><br/></td> <td style="height: 18px; border-bottom: 1px solid #000000;"><br/></td> <td style="height: 18px; text-align: right; border-bottom: 1px solid #000000;">90,521</td> <td style="height: 18px;"><br/></td> <td style="height: 18px; text-align: right; border-bottom: 1px solid #000000;">97.6</td> <td style="height: 18px; border-bottom: 1px solid #000000;">%</td> <td style="height: 18px;"><br/></td> <td style="height: 18px; text-align: left; border-bottom: 1px solid #000000;"><br/></td> <td style="height: 18px; text-align: right; font-family: 'times new roman', times; font-size: 10pt; border-bottom: 1px solid #000000;">68,402</td> <td style="height: 18px;"><br/></td> <td style="height: 18px; text-align: right; font-family: 'times new roman', times; font-size: 10pt; border-bottom: 1px solid #000000;">97.6</td> <td style="height: 18px; border-bottom: 1px solid #000000;"><span style="font-family: 'times new roman', times; font-size: 10pt;">%</span></td> </tr> <tr style="height: 14px; background-color: #d6f3e8;"> <td style="height: 14px; background-color: #d6f3e8;"><br/></td> <td style="background-color: #d6f3e8; height: 14px;"><br/></td> <td style="background-color: #d6f3e8; border-bottom: 2.8pt double #000000; height: 14px;">$</td> <td style="background-color: #d6f3e8; height: 14px; border-bottom: 2.8pt double #000000; text-align: right;">92,774</td> <td style="background-color: #d6f3e8; height: 14px;"><br/></td> <td style="background-color: #d6f3e8; height: 14px; border-bottom: 2.8pt double #000000; text-align: right;">100.0</td> <td style="background-color: #d6f3e8; height: 14px; border-bottom: 2.8pt double #000000;">%</td> <td style="height: 14px; background-color: #d6f3e8;"><br/></td> <td style="height: 14px; background-color: #d6f3e8; border-top: 1pt solid #000000; border-bottom: 2.8pt double #000000; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></td> <td style="height: 14px; text-align: right; border-bottom: 2.8pt double #000000; background-color: #d6f3e8; font-family: 'times new roman', times; font-size: 10pt;">70,117</td> <td style="height: 14px; background-color: #d6f3e8;"><br/></td> <td style="height: 14px; text-align: right; border-bottom: 2.8pt double #000000; background-color: #d6f3e8; font-family: 'times new roman', times; font-size: 10pt;">100.0</td> <td style="height: 14px; background-color: #d6f3e8; border-top: 1pt solid #000000; border-bottom: 2.8pt double #000000;"><span style="font-family: symbol; font-size: 10pt;">%</span></td> </tr> </tbody> </table> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 1; margin: 0pt;"><span style="line-height: inherit;"><span class="selected" style="font-family: 'times new roman', times; line-height: inherit;">See Note 13 for additional information regarding disaggregation of revenue. </span></span></p> <p style="font-size: 10pt; line-height: 1; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 1; margin: 5pt 0pt 0pt; text-indent: 0pt;"><span style="line-height: inherit;"><span style="font-family: 'times new roman', times; font-size: 10pt; line-height: inherit;"><em><strong>Contract</strong></em></span><span style="font-family: 'times new roman', times; font-size: 10pt; line-height: inherit;"><em><strong> Balances </strong></em></span></span></p> <p style="font-size: 10pt; line-height: 1; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">Contract assets consist of unbilled amounts from sales where we recognize the revenue over time and the revenue recognized exceeds the amount billed to the customer at a point in time. Accounts and trade notes receivable are recorded when the right to payment becomes unconditional. Contract liabilities consist of payments received in advance of performance under the contract. Contract liabilities are recognized as revenue when we perform under the contract.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">The following summarizes our contract assets and contract liabilities: </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <div style="border-left: none; border-right: none;"> <div style="border-right: none; border-left: none;"> <div id="t_ft_2D4H9C065C00000000000000000000b"> <table border="0" cellpadding="0" style="width: 100%; margin-left: 0px; border-collapse: collapse; height: 66px; margin-right: 0px; text-indent: 0px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 10px;"> <td style="padding: 0px; height: 10px; border-bottom: 1px solid #000000; width: 66.916%;" valign="bottom"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">(In thousands)</span></b><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="padding: 0px; height: 10px; width: 0.997506%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 10.0pt;"> </span></b><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td colspan="3" style="padding: 0px; height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000; width: 15%;" valign="bottom"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">December 31, 2021</span></b></p> </td> <td style="padding: 0px; height: 10px; width: 1.99501%;" valign="top"/> <td colspan="3" style="padding: 0px; height: 10px; vertical-align: bottom; width: 15%; border-bottom: 1px solid #000000;" valign="bottom"> <p style="margin: 0in 0px 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: 0px;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">December 31, 2020</span></b></p> </td> </tr> <tr style="height: 20px; background-color: #d6f3e8;"> <td style="background: #d6f3e8; padding: 0px; height: 20px; width: 66.916%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Contract assets, included in other current assets </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 0.997506%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 13%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10.0pt;">7 </span></span><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1.99501%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 13%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> 2 </span><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> </tr> <tr style="height: 20px;"> <td style="padding: 0px; height: 20px; width: 66.916%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Contract liabilities - advance customer payments </span></p> </td> <td style="padding: 0in; height: 20px; width: 0.997506%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="padding: 0in; height: 20px; width: 13%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10.0pt;">289</span></span><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="padding: 0in; height: 20px; width: 1.99501%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">   </span></p> </td> <td style="padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="padding: 0in; height: 20px; width: 13%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">567</span><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> </tr> <tr style="height: 16px; background-color: #d6f3e8;"> <td style="padding: 0px; height: 16px; background-color: #d6f3e8; width: 66.916%;">Contract liabilities - deferred warranty revenue</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 0.997506%;"><br/></td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1%;">$</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; text-align: right; width: 13%;">445</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1%;"><br/></td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1.99501%;"><br/></td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1%;">$</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; text-align: right; width: 13%;">344</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1%;"><br/></td> </tr> </tbody> </table> </div> </div> </div> <div style="border-left: none; border-right: none;"><br/></div> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif; line-height: 1.2;"><span style="font-size: 10pt; line-height: inherit;">Changes in contract assets in 2021 and 2020 resulted from unbilled amounts under sensor product arrangements and longer duration 3D scanning service projects in which revenue is recognized over time. Changes in contract liabilities primarily resulted from reclassification of beginning contract liabilities to revenue as performance obligations were satisfied or from cash received in advance and not recognized as revenue. See Note 9 for changes in contractual obligations related to deferred warranty revenue. <span style="color: #000000; line-height: inherit;">Unsatisfied performance obligations for deferred warranty revenue are generally expected to be recognized as revenue over the<span> next </span><span style="-sec-ix-hidden:Tag973">one</span><span> t</span>o three years. There were no impairment losses for contract assets in 2021 or 2020.</span></span><span style="font-size: 10pt; line-height: inherit;"><span style="color: #000000; line-height: inherit;"><br/></span></span></p> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"><span style="color: #000000;"><br/></span></span></p> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"><span style="color: #000000;">The following summarizes the amounts reclassified from beginning contract liabilities to revenue:</span></span></p> <div id="t_ft_R0LDJ4YQLC00000000000000000000b"> <table border="0" cellpadding="0" style="width: 100%; border-collapse: collapse; height: 62px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 8px;"> <td style="padding: 0in; height: 8px;"/> <td style="padding: 0in; height: 8px;"/> <td colspan="7" style="padding: 0in; height: 8px;"/> </tr> <tr style="height: 12px;"> <td style="padding: 0in; height: 12px;"/> <td style="padding: 0in; height: 12px;"/> <td colspan="7" style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"> <p style="text-align: center; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong><span style="font-size: 8.0pt;">Year Ended December 31,</span></strong></p> </td> </tr> <tr style="height: 7px;"> <td style="padding: 0in; height: 7px; border-bottom: 1px solid #000000;" valign="bottom"> <p style="margin: 0in 0in 0in 0.2pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">(In thousands)</span></b></p> </td> <td style="padding: 0in; height: 7px;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 10.0pt;"> </span></b></p> </td> <td colspan="3" style="padding: 0in; height: 7px; border-bottom: 1px solid #000000;" valign="bottom"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong><span style="font-size: 8.0pt;">2021</span></strong></p> </td> <td style="padding: 0in; height: 7px;" valign="top"/> <td colspan="3" style="padding: 0in; height: 7px; border-bottom: 1px solid #000000;" valign="bottom"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">2020</span></b></p> </td> </tr> <tr style="height: 13px;"> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 69%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Amounts reclassified from beginning contract liabilities to revenue </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 12%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">393 </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 2%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 12%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> 171 </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> </tr> <tr style="height: 12px;"> <td style="padding: 0in; height: 12px;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Amounts reclassified from deferred warranty revenue </span></p> </td> <td style="padding: 0in; height: 12px;"/> <td colspan="2" style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">263</span></p> </td> <td style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"/> <td style="padding: 0in; height: 12px;"/> <td colspan="2" style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">193</span></p> </td> <td style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"/> </tr> <tr style="height: 10px;"> <td style="background: #d6f3e8; padding: 0in; height: 10px;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Total </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px;"/> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">656</span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"/> <td style="background: #d6f3e8; padding: 0in; height: 10px;"/> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">364</span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"/> </tr> </tbody> </table> </div> The following is a summary of our revenue performance obligations: <table border="0" style="height: 94px; width: 98.9798%; border-collapse: collapse; margin-left: 0.1px; font-family: 'times new roman'; font-size: 10pt;"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: bottom; height: 17px;"><br/></td> <td style="text-align: center; vertical-align: bottom; height: 17px;"><br/></td> <td colspan="11" style="text-align: center; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"><span style="font-weight: bold; font-size: 8pt;">For the Year Ended December 31,</span></td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; height: 17px;"><br/></td> <td style="text-align: center; vertical-align: bottom; height: 17px;"><br/></td> <td colspan="5" style="text-align: center; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"><span style="font-weight: bold; font-size: 8pt;">2021</span></td> <td style="text-align: center; vertical-align: bottom; height: 17px;"><br/></td> <td colspan="5" style="text-align: center; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"><span style="font-weight: bold; font-size: 8pt;">2020</span></td> </tr> <tr style="height: 10px;"> <td style="height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"> <p style="text-align: left;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>(In thousands)</strong></span></p> </td> <td style="text-align: center; height: 10px; vertical-align: bottom;" valign="bottom"><br/></td> <td colspan="2" style="text-align: center; height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"> <p><span style="font-size: 8pt; font-weight: bold;">Revenues</span><br/></p> </td> <td style="text-align: center; height: 10px; vertical-align: bottom;" valign="bottom"><br/></td> <td colspan="2" style="text-align: center; height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"> <p style="line-height: 1.1;"><span style="font-weight: bold; font-size: 8pt; line-height: inherit;">Percent of Revenues</span><br/></p> </td> <td style="height: 10px; text-align: center; vertical-align: bottom;" valign="bottom"><br/></td> <td colspan="2" style="text-align: center; height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Revenues</strong></span><br/></td> <td style="height: 10px; vertical-align: bottom;" valign="bottom"><br/></td> <td colspan="2" style="height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000;" valign="bottom"> <p style="text-align: center; line-height: 1.1;"><span style="font-size: 8pt; line-height: inherit;"><strong><span style="font-family: 'times new roman', times; line-height: inherit;">Percent of Revenues</span></strong></span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="height: 18px; background-color: #d6f3e8; width: 57%;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Revenue recognized over time</span></td> <td style="background-color: #d6f3e8; height: 18px; width: 1%;"><br/></td> <td style="background-color: #d6f3e8; height: 18px; width: 1%;">$</td> <td style="background-color: #d6f3e8; height: 18px; text-align: right; width: 8%;">2,253</td> <td style="background-color: #d6f3e8; height: 18px; width: 2%;"><br/></td> <td style="background-color: #d6f3e8; height: 18px; text-align: right; width: 8%;">2.4</td> <td style="background-color: #d6f3e8; height: 18px; width: 1%;">%</td> <td style="height: 18px; background-color: #d6f3e8; width: 2%;"><br/></td> <td style="height: 18px; background-color: #d6f3e8; text-align: left; width: 1%;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></td> <td style="height: 18px; text-align: right; background-color: #d6f3e8; font-family: 'times new roman', times; font-size: 10pt; width: 8%;">1,715</td> <td style="height: 18px; background-color: #d6f3e8; width: 2%;"><br/></td> <td style="height: 18px; text-align: right; background-color: #d6f3e8; font-family: 'times new roman', times; font-size: 10pt; width: 8%;">2.4</td> <td style="height: 18px; background-color: #d6f3e8; width: 1%;"><span style="font-family: symbol; font-size: 10pt;">%</span></td> </tr> <tr style="height: 18px;"> <td style="height: 18px;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Revenue recognized at a point in time</span></td> <td style="height: 18px;"><br/></td> <td style="height: 18px; border-bottom: 1px solid #000000;"><br/></td> <td style="height: 18px; text-align: right; border-bottom: 1px solid #000000;">90,521</td> <td style="height: 18px;"><br/></td> <td style="height: 18px; text-align: right; border-bottom: 1px solid #000000;">97.6</td> <td style="height: 18px; border-bottom: 1px solid #000000;">%</td> <td style="height: 18px;"><br/></td> <td style="height: 18px; text-align: left; border-bottom: 1px solid #000000;"><br/></td> <td style="height: 18px; text-align: right; font-family: 'times new roman', times; font-size: 10pt; border-bottom: 1px solid #000000;">68,402</td> <td style="height: 18px;"><br/></td> <td style="height: 18px; text-align: right; font-family: 'times new roman', times; font-size: 10pt; border-bottom: 1px solid #000000;">97.6</td> <td style="height: 18px; border-bottom: 1px solid #000000;"><span style="font-family: 'times new roman', times; font-size: 10pt;">%</span></td> </tr> <tr style="height: 14px; background-color: #d6f3e8;"> <td style="height: 14px; background-color: #d6f3e8;"><br/></td> <td style="background-color: #d6f3e8; height: 14px;"><br/></td> <td style="background-color: #d6f3e8; border-bottom: 2.8pt double #000000; height: 14px;">$</td> <td style="background-color: #d6f3e8; height: 14px; border-bottom: 2.8pt double #000000; text-align: right;">92,774</td> <td style="background-color: #d6f3e8; height: 14px;"><br/></td> <td style="background-color: #d6f3e8; height: 14px; border-bottom: 2.8pt double #000000; text-align: right;">100.0</td> <td style="background-color: #d6f3e8; height: 14px; border-bottom: 2.8pt double #000000;">%</td> <td style="height: 14px; background-color: #d6f3e8;"><br/></td> <td style="height: 14px; background-color: #d6f3e8; border-top: 1pt solid #000000; border-bottom: 2.8pt double #000000; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></td> <td style="height: 14px; text-align: right; border-bottom: 2.8pt double #000000; background-color: #d6f3e8; font-family: 'times new roman', times; font-size: 10pt;">70,117</td> <td style="height: 14px; background-color: #d6f3e8;"><br/></td> <td style="height: 14px; text-align: right; border-bottom: 2.8pt double #000000; background-color: #d6f3e8; font-family: 'times new roman', times; font-size: 10pt;">100.0</td> <td style="height: 14px; background-color: #d6f3e8; border-top: 1pt solid #000000; border-bottom: 2.8pt double #000000;"><span style="font-family: symbol; font-size: 10pt;">%</span></td> </tr> </tbody> </table> 2253000 0.024 1715000 0.024 90521000 0.976 68402000 0.976 92774000 1 70117000 1 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">The following summarizes our contract assets and contract liabilities: </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <div style="border-left: none; border-right: none;"> <div style="border-right: none; border-left: none;"> <div id="t_ft_2D4H9C065C00000000000000000000b"> <table border="0" cellpadding="0" style="width: 100%; margin-left: 0px; border-collapse: collapse; height: 66px; margin-right: 0px; text-indent: 0px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 10px;"> <td style="padding: 0px; height: 10px; border-bottom: 1px solid #000000; width: 66.916%;" valign="bottom"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">(In thousands)</span></b><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="padding: 0px; height: 10px; width: 0.997506%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 10.0pt;"> </span></b><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td colspan="3" style="padding: 0px; height: 10px; vertical-align: bottom; border-bottom: 1px solid #000000; width: 15%;" valign="bottom"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">December 31, 2021</span></b></p> </td> <td style="padding: 0px; height: 10px; width: 1.99501%;" valign="top"/> <td colspan="3" style="padding: 0px; height: 10px; vertical-align: bottom; width: 15%; border-bottom: 1px solid #000000;" valign="bottom"> <p style="margin: 0in 0px 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: 0px;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">December 31, 2020</span></b></p> </td> </tr> <tr style="height: 20px; background-color: #d6f3e8;"> <td style="background: #d6f3e8; padding: 0px; height: 20px; width: 66.916%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Contract assets, included in other current assets </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 0.997506%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 13%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10.0pt;">7 </span></span><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1.99501%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 13%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> 2 </span><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> </tr> <tr style="height: 20px;"> <td style="padding: 0px; height: 20px; width: 66.916%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Contract liabilities - advance customer payments </span></p> </td> <td style="padding: 0in; height: 20px; width: 0.997506%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="padding: 0in; height: 20px; width: 13%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10.0pt;">289</span></span><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="padding: 0in; height: 20px; width: 1.99501%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">   </span></p> </td> <td style="padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="padding: 0in; height: 20px; width: 13%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">567</span><span style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"/></p> </td> <td style="padding: 0in; height: 20px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> </tr> <tr style="height: 16px; background-color: #d6f3e8;"> <td style="padding: 0px; height: 16px; background-color: #d6f3e8; width: 66.916%;">Contract liabilities - deferred warranty revenue</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 0.997506%;"><br/></td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1%;">$</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; text-align: right; width: 13%;">445</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1%;"><br/></td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1.99501%;"><br/></td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1%;">$</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; text-align: right; width: 13%;">344</td> <td style="padding: 0in; height: 16px; background-color: #d6f3e8; width: 1%;"><br/></td> </tr> </tbody> </table> </div> </div> </div> 7000 2000 289000 567000 445000 344000 P3Y 0 0 <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"><span style="color: #000000;">The following summarizes the amounts reclassified from beginning contract liabilities to revenue:</span></span></p> <div id="t_ft_R0LDJ4YQLC00000000000000000000b"> <table border="0" cellpadding="0" style="width: 100%; border-collapse: collapse; height: 62px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 8px;"> <td style="padding: 0in; height: 8px;"/> <td style="padding: 0in; height: 8px;"/> <td colspan="7" style="padding: 0in; height: 8px;"/> </tr> <tr style="height: 12px;"> <td style="padding: 0in; height: 12px;"/> <td style="padding: 0in; height: 12px;"/> <td colspan="7" style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"> <p style="text-align: center; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong><span style="font-size: 8.0pt;">Year Ended December 31,</span></strong></p> </td> </tr> <tr style="height: 7px;"> <td style="padding: 0in; height: 7px; border-bottom: 1px solid #000000;" valign="bottom"> <p style="margin: 0in 0in 0in 0.2pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">(In thousands)</span></b></p> </td> <td style="padding: 0in; height: 7px;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 10.0pt;"> </span></b></p> </td> <td colspan="3" style="padding: 0in; height: 7px; border-bottom: 1px solid #000000;" valign="bottom"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong><span style="font-size: 8.0pt;">2021</span></strong></p> </td> <td style="padding: 0in; height: 7px;" valign="top"/> <td colspan="3" style="padding: 0in; height: 7px; border-bottom: 1px solid #000000;" valign="bottom"> <p style="margin: 0in 0in 0.0001pt; text-align: center; font-size: 12pt; font-family: 'Times New Roman', serif;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 8.0pt;">2020</span></b></p> </td> </tr> <tr style="height: 13px;"> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 69%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Amounts reclassified from beginning contract liabilities to revenue </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 12%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">393 </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 2%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: center; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 12%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> 171 </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 13px; width: 1%;" valign="top"> <p style="margin: 0in 0in 0.0001pt; text-align: right; line-height: 11.25pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   </span></p> </td> </tr> <tr style="height: 12px;"> <td style="padding: 0in; height: 12px;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Amounts reclassified from deferred warranty revenue </span></p> </td> <td style="padding: 0in; height: 12px;"/> <td colspan="2" style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">263</span></p> </td> <td style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"/> <td style="padding: 0in; height: 12px;"/> <td colspan="2" style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">193</span></p> </td> <td style="padding: 0in; height: 12px; border-bottom: 1px solid #000000;"/> </tr> <tr style="height: 10px;"> <td style="background: #d6f3e8; padding: 0in; height: 10px;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> Total </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px;"/> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">656</span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"/> <td style="background: #d6f3e8; padding: 0in; height: 10px;"/> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;"> $ </span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">364</span></p> </td> <td style="background: #d6f3e8; padding: 0in; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"/> </tr> </tbody> </table> </div> 393000 171000 263000 193000 656000 364000 <p style="font-size: 10pt; line-height: 1; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span><span style="font-weight: bold;"><br/></span></span></span></p> <p style="font-size: 10pt; line-height: 1; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span><span style="font-weight: bold;">NOTE 4</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;">–</span><span style="font-weight: bold;"> </span></span><span style="font-weight: bold;"><span>MARKETABLE SECURITIES</span><br/></span></span></p> <p style="font-size: 10pt; line-height: 1; margin: 0pt;"><br/></p> <div style="border-right: none; border-left: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt 0pt 5pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Our investments in marketable securities are classified as available-for-sale and consist of the following: </span></p> <div style="border-right: none; border-left: none;"> <div id="t_ft_D3S48P18Z400000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 229px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="15" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> December 31, 2021 </span></strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Amortized Cost </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unrealized</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Gains</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unrealized</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Losses</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Fair Value </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; text-decoration: underline;"> Short-Term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 48%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,005 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 13 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: left; height: 18px; width: 1%;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,018 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,177 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 8 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(2</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: left; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,183 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 125 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1</span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="border-bottom: 0.75pt solid #000000; text-align: left; vertical-align: bottom; padding: 0px; height: 18px;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 126 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketable securities – short-term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,307 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 22 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(2</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; text-align: left; height: 19px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,327 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; text-decoration: underline;"> Long-Term </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,921 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(57</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: left; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,869 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,869 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">9</span></span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(18</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: left; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,860 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,511 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">9</span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(11</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: left; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,509 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equity security </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; text-align: left; height: 18px; padding: 0px;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 43 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketable securities – long-term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 17,343 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(86</span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; text-align: left; height: 19px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 17,281 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> <br/> <table cellpadding="0" style="border-collapse: collapse; width: 100%; margin-left: 0.1px; height: 229px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; line-height: 1;"><br/></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="15" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> December 31, 2020 </span></strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Amortized Cost </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unrealized</span></span><br/><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Gains</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unrealized</span></span><br/><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Losses</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Fair Value </span></span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; text-decoration: underline;"> Short-Term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 48%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,817 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">36</span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 18px; width: 1%;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,853 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,113 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">21</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,134 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 133 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">1</span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="border-bottom: 0.75pt solid #000000; text-align: left; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 134 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketable securities – short-term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 8,063 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">58</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 19px;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 8,121 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; text-decoration: underline;"> Long-Term </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="text-align: left; padding: 0px; vertical-align: bottom; height: 19px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,529 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 66 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,595 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,975 </span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">61</span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(1</span></p> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,035 </span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,347 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">45</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,392 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equity security </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> — </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(12</span></p> </td> <td style="border-bottom: 0.75pt solid #000000; text-align: left; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketable securities – long-term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 13,893 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; height: 19px; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 172 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (13 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 19px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14,052 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">    </span></p> </td> </tr> </tbody> </table> </div> </div> </div> <div style="line-height: 120%; font-size: 10pt;"> <div style="padding-left: 0px; text-indent: 0px; line-height: normal;"> <table cellpadding="0" style="font-family: 'times new roman'; font-size: 10pt; border-collapse: collapse; text-align: left; width: 100%; margin-left: 0.1px; height: 207px;" width="100%"> <tbody> <tr style="height: 16px;"> <td colspan="17" style="vertical-align: bottom; padding: 2px; height: 16px;"><br/></td> </tr> <tr style="height: 26px;"> <td style="vertical-align: bottom; padding: 2px; height: 26px;"> <div style="font-size: 8pt; text-align: right;"><br/></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 26px;"/> <td colspan="7" style="vertical-align: bottom; padding: 2px; height: 26px; border-bottom: 1px solid #000000;"> <div style="font-size: 8pt; text-align: center;"><strong style="font-size: 8pt;"><span style="font-family: 'times new roman', times;">In Unrealized Loss Position For</span></strong><br/></div> <div style="font-size: 8pt; text-align: center;"> <div style="font-size: 8pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;">Less Than 12 Months</span></strong></span></div> </div> </td> <td style="vertical-align: bottom; padding: 2px; height: 26px;"> <div style="font-size: 8pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="7" style="vertical-align: bottom; padding: 2px; height: 26px; border-bottom: 1px solid #000000;"> <div style="font-size: 8pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span><strong><span style="font-family: 'times new roman', times;">In Unrealized Loss Position For </span></strong></div> <div style="font-size: 8pt; text-align: center;"><strong><span style="font-family: 'times new roman', times;">Greater Than 12 Months</span></strong></div> </td> </tr> <tr style="height: 10px;"> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 2px; height: 10px;"> <div style="font-size: 8pt;"><span style="font-family: 'times new roman', times;">(In thousands)  </span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 10px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 2px; height: 10px;"> <div style="text-align: center; font-size: 8pt;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;">Fair Value</span></strong></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 10px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 2px; height: 10px;"> <div style="text-align: center; font-size: 8pt;"><span style="color: #000000; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-family: 'times new roman', times; font-weight: bold; float: none; display: inline !important;">Gross Unrealized</span><br/><span style="color: #000000; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-family: 'times new roman', times; font-weight: bold; float: none; display: inline !important;">Losses</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 10px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 2px; height: 10px;"> <div style="text-align: center; font-size: 8pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Fair Value</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 10px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 2px; height: 10px; margin-left: 0.1px; vertical-align: bottom;"> <div style="text-align: center; font-size: 8pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Gross Unrealized</span><br/><span style="color: #000000; font-family: 'times new roman', times; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Losses</span></div> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="font-size: 10pt;"><strong><span style="font-family: 'times new roman', times;">December 31, 2021</span></strong></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding-left: 2px; padding-top: 2px; padding-bottom: 2px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding-left: 2px; padding-top: 2px; padding-bottom: 2px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding-left: 2px; padding-top: 2px; padding-bottom: 2px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding-left: 2px; padding-top: 2px; padding-bottom: 2px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> </tr> <tr style="height: 17px;"> <td style="padding: 2px 2px 2px 12px; height: 17px; vertical-align: bottom; width: 48%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">U.S. government and agency obligations</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; width: 1%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 10%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">9,250</span></span></div> </td> <td style="vertical-align: bottom; height: 17px; width: 1%; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 10%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(57</span></span></div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 17px; width: 1%;" valign="bottom">)</td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 10%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">—</span></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"/> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 10%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">—</span></span></div> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;" valign="bottom"/> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 12px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">Corporate debt securities and certificates of deposit</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">5,188</span></span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(18</span></span></div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 17px; background-color: #d6f3e8;" valign="bottom">)</td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">355</span></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"/> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(2</span></span></div> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;" valign="bottom">)</td> </tr> <tr> <td style="padding: 2px 2px 2px 12px; height: 17px; vertical-align: bottom;"> <div style="font-size: 10pt;">Asset backed securities</div> </td> <td style="vertical-align: bottom; padding: 2px;"> <div style="overflow: hidden; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;">1,278</div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px;"> <div style="overflow: hidden; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;">(11</div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; border-bottom: 1px solid #000000;">)</td> <td style="vertical-align: bottom; padding: 0px;"> <div style="overflow: hidden; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;">—</div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"><br/></td> <td style="vertical-align: bottom; padding: 0px;"> <div style="overflow: hidden; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;">—</div> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000;"><br/></td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 20px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">Marketable securities</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">15,716</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; height: 18px; background-color: #d6f3e8; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(86</span></span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; text-align: left; background-color: #d6f3e8; vertical-align: middle; padding: 0px;" valign="middle">)</td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">355</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"/> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(2</span></span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; background-color: #d6f3e8; vertical-align: middle; padding: 0px;" valign="middle">)</td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; padding: 2px; height: 17px;"> <div style="font-size: 10pt;"><strong><span style="font-family: 'times new roman', times;">December 31, 2020</span></strong></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="text-align: left; padding: 0px; vertical-align: bottom; height: 17px;" valign="bottom"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 12px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">U.S. government and agency obligations</span></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">330</span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">—</span></span></div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 17px; background-color: #d6f3e8;" valign="bottom"/> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"/> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"/> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 12px; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">Corporate debt securities and certificates of deposit</span></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">411</span></div> </td> <td style="vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">(1</span></div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;" valign="bottom">)</td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"/> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"/> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 20px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">Marketable securities</span></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="border-bottom: 3px double #000000; padding: 0px; height: 18px; vertical-align: bottom; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">741</span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; vertical-align: bottom; background-color: #d6f3e8; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">(1</span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; margin-left: 0.1px; text-align: left; vertical-align: middle; background-color: #d6f3e8; padding: 0px;" valign="bottom"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">)</span></td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; vertical-align: bottom; background-color: #d6f3e8; padding: 0px;"/> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; vertical-align: bottom; background-color: #d6f3e8; padding: 0px;"/> </tr> </tbody> </table> </div> </div> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 10pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span style="font-size: 10pt; font-family: 'times new roman', times;"><span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">Our long-term investments</span><span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> in marketable debt securities all have maturities of <span>less than </span></span>5<span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> years. </span>Net pre-tax unrealized <span>losses</span> for marketable debt securities of $</span>43,000<span style="font-size: 10pt; font-family: 'times new roman', times;"> at December 31, 2021<span> and net pre-tax unrealized gains of $</span></span>229,000<span style="font-size: 10pt; font-family: 'times new roman', times;"> at December 31, 2020 have been recorded as a component of accumulated other comprehensive loss in stockholders’ equity. We only invest in highly rated investment grade securities. </span><span style="font-size: 10pt; font-family: 'times new roman', times;">We have determined that the net pre-tax unrealized gains and losses for marketable debt securities at <span style="border-left: none; border-right: none;">December 31, 2021</span> and December 31, 2020 were caused by fluctuations in interest rates and are temporary in nature. We review our marketable debt securities to identify and evaluate investments that have indications of possible impairment. Factors considered in determining whether a loss is other-than-temporary include the length of time and extent to which fair value has been less than the cost basis, the investment grade credit quality of our debt securities and our ability and intent to hold the investment for a period of time sufficient to allow for any anticipated recovery in market value. We received proceeds of $225,000 from the sale of marketable securities in 2021. The gain recognized on the sale was insignificant. No marketable securities were sold in <span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">2020.</span></span><span style="font-size: 10pt; font-family: 'times new roman', times;"> See Note 6 for additional information regarding the fair value of our investments in marketable securities.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">Investments in marketable debt securities classified as cash equivalents of $8.8 million at December 31, 2021 and $1.3 million at December 31, 2020, consist of corporate debt securities and certificates of deposit. There were no unrealized gains or losses associated with any of these securities at December 31, 2021 or December 31, 2020.  </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt 0pt 5pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Our investments in marketable securities are classified as available-for-sale and consist of the following: </span></p> <div style="border-right: none; border-left: none;"> <div id="t_ft_D3S48P18Z400000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 229px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="15" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> December 31, 2021 </span></strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Amortized Cost </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unrealized</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Gains</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unrealized</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Losses</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Fair Value </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; text-decoration: underline;"> Short-Term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 48%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,005 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 13 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: left; height: 18px; width: 1%;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,018 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,177 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 8 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(2</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: left; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,183 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 125 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1</span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="border-bottom: 0.75pt solid #000000; text-align: left; vertical-align: bottom; padding: 0px; height: 18px;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 126 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketable securities – short-term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,307 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 22 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(2</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; text-align: left; height: 19px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,327 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; text-decoration: underline;"> Long-Term </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,921 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(57</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: left; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,869 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,869 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">9</span></span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(18</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: left; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,860 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,511 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">9</span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(11</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: left; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,509 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equity security </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; text-align: left; height: 18px; padding: 0px;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 43 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketable securities – long-term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 17,343 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(86</span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; text-align: left; height: 19px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 17,281 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> <br/> <table cellpadding="0" style="border-collapse: collapse; width: 100%; margin-left: 0.1px; height: 229px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; line-height: 1;"><br/></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="15" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> December 31, 2020 </span></strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Amortized Cost </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unrealized</span></span><br/><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Gains</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unrealized</span></span><br/><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Losses</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Fair Value </span></span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; text-decoration: underline;"> Short-Term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 48%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,817 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">36</span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 18px; width: 1%;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,853 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,113 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">21</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,134 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 133 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">1</span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="border-bottom: 0.75pt solid #000000; text-align: left; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 134 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketable securities – short-term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 8,063 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">58</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 19px;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 8,121 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold; text-decoration: underline;"> Long-Term </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="text-align: left; padding: 0px; vertical-align: bottom; height: 19px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,529 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 66 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,595 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,975 </span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">61</span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(1</span></p> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,035 </span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,347 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">45</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,392 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equity security </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> — </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(12</span></p> </td> <td style="border-bottom: 0.75pt solid #000000; text-align: left; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketable securities – long-term </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 13,893 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; height: 19px; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 172 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (13 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 19px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14,052 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">    </span></p> </td> </tr> </tbody> </table> </div> </div> 3005000 13000 0 3018000 4177000 8000 2000 4183000 125000 1000 0 126000 7307000 22000 2000 7327000 9921000 5000 57000 9869000 4869000 9000 18000 4860000 2511000 9000 11000 2509000 42000 1000 0 43000 17343000 24000 86000 17281000 4817000 36000 0 4853000 3113000 21000 0 3134000 133000 1000 0 134000 8063000 58000 0 8121000 7529000 66000 0 7595000 3975000 61000 1000 4035000 2347000 45000 0 2392000 42000 0 12000 30000 13893000 172000 13000 14052000 <table cellpadding="0" style="font-family: 'times new roman'; font-size: 10pt; border-collapse: collapse; text-align: left; width: 100%; margin-left: 0.1px; height: 207px;" width="100%"> <tbody> <tr style="height: 16px;"> <td colspan="17" style="vertical-align: bottom; padding: 2px; height: 16px;"><br/></td> </tr> <tr style="height: 26px;"> <td style="vertical-align: bottom; padding: 2px; height: 26px;"> <div style="font-size: 8pt; text-align: right;"><br/></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 26px;"/> <td colspan="7" style="vertical-align: bottom; padding: 2px; height: 26px; border-bottom: 1px solid #000000;"> <div style="font-size: 8pt; text-align: center;"><strong style="font-size: 8pt;"><span style="font-family: 'times new roman', times;">In Unrealized Loss Position For</span></strong><br/></div> <div style="font-size: 8pt; text-align: center;"> <div style="font-size: 8pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;">Less Than 12 Months</span></strong></span></div> </div> </td> <td style="vertical-align: bottom; padding: 2px; height: 26px;"> <div style="font-size: 8pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="7" style="vertical-align: bottom; padding: 2px; height: 26px; border-bottom: 1px solid #000000;"> <div style="font-size: 8pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span><strong><span style="font-family: 'times new roman', times;">In Unrealized Loss Position For </span></strong></div> <div style="font-size: 8pt; text-align: center;"><strong><span style="font-family: 'times new roman', times;">Greater Than 12 Months</span></strong></div> </td> </tr> <tr style="height: 10px;"> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 2px; height: 10px;"> <div style="font-size: 8pt;"><span style="font-family: 'times new roman', times;">(In thousands)  </span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 10px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 2px; height: 10px;"> <div style="text-align: center; font-size: 8pt;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;">Fair Value</span></strong></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 10px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 2px; height: 10px;"> <div style="text-align: center; font-size: 8pt;"><span style="color: #000000; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-family: 'times new roman', times; font-weight: bold; float: none; display: inline !important;">Gross Unrealized</span><br/><span style="color: #000000; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-family: 'times new roman', times; font-weight: bold; float: none; display: inline !important;">Losses</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 10px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 2px; height: 10px;"> <div style="text-align: center; font-size: 8pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Fair Value</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 10px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></div> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 2px; height: 10px; margin-left: 0.1px; vertical-align: bottom;"> <div style="text-align: center; font-size: 8pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Gross Unrealized</span><br/><span style="color: #000000; font-family: 'times new roman', times; font-size: 8pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Losses</span></div> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="font-size: 10pt;"><strong><span style="font-family: 'times new roman', times;">December 31, 2021</span></strong></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding-left: 2px; padding-top: 2px; padding-bottom: 2px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding-left: 2px; padding-top: 2px; padding-bottom: 2px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding-left: 2px; padding-top: 2px; padding-bottom: 2px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding-left: 2px; padding-top: 2px; padding-bottom: 2px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> </tr> <tr style="height: 17px;"> <td style="padding: 2px 2px 2px 12px; height: 17px; vertical-align: bottom; width: 48%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">U.S. government and agency obligations</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; width: 1%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 10%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">9,250</span></span></div> </td> <td style="vertical-align: bottom; height: 17px; width: 1%; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 10%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(57</span></span></div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 17px; width: 1%;" valign="bottom">)</td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 10%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">—</span></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"/> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 1%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; width: 10%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">—</span></span></div> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;" valign="bottom"/> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 12px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">Corporate debt securities and certificates of deposit</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">5,188</span></span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(18</span></span></div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 17px; background-color: #d6f3e8;" valign="bottom">)</td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">355</span></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"/> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(2</span></span></div> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;" valign="bottom">)</td> </tr> <tr> <td style="padding: 2px 2px 2px 12px; height: 17px; vertical-align: bottom;"> <div style="font-size: 10pt;">Asset backed securities</div> </td> <td style="vertical-align: bottom; padding: 2px;"> <div style="overflow: hidden; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;">1,278</div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px;"> <div style="overflow: hidden; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;">(11</div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; border-bottom: 1px solid #000000;">)</td> <td style="vertical-align: bottom; padding: 0px;"> <div style="overflow: hidden; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;">—</div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"><br/></td> <td style="vertical-align: bottom; padding: 0px;"> <div style="overflow: hidden; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;">—</div> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000;"><br/></td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 20px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">Marketable securities</span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">15,716</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; height: 18px; background-color: #d6f3e8; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(86</span></span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; text-align: left; background-color: #d6f3e8; vertical-align: middle; padding: 0px;" valign="middle">)</td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">355</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"/> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">(2</span></span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; background-color: #d6f3e8; vertical-align: middle; padding: 0px;" valign="middle">)</td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; padding: 2px; height: 17px;"> <div style="font-size: 10pt;"><strong><span style="font-family: 'times new roman', times;">December 31, 2020</span></strong></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="text-align: left; padding: 0px; vertical-align: bottom; height: 17px;" valign="bottom"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 12px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">U.S. government and agency obligations</span></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">330</span></div> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">—</span></span></div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 17px; background-color: #d6f3e8;" valign="bottom"/> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"/> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; background-color: #d6f3e8;"/> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 12px; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">Corporate debt securities and certificates of deposit</span></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">411</span></div> </td> <td style="vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">(1</span></div> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;" valign="bottom">)</td> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"/> <td style="vertical-align: bottom; padding: 0px; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 17px; border-bottom: 1px solid #000000;"/> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="vertical-align: bottom; padding: 2px 2px 2px 20px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span><span style="font-family: 'times new roman', times;">Marketable securities</span></span></div> </td> <td style="vertical-align: bottom; padding: 2px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="border-bottom: 3px double #000000; padding: 0px; height: 18px; vertical-align: bottom; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">741</span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; vertical-align: bottom; background-color: #d6f3e8; padding: 0px;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">(1</span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; margin-left: 0.1px; text-align: left; vertical-align: middle; background-color: #d6f3e8; padding: 0px;" valign="bottom"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">)</span></td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; vertical-align: bottom; background-color: #d6f3e8; padding: 0px;"/> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; background-color: #d6f3e8;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times;">—</span></div> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; vertical-align: bottom; background-color: #d6f3e8; padding: 0px;"/> </tr> </tbody> </table> 9250000 57000 0 0 5188000 18000 355000 2000 1278000 11000 0 0 15716000 86000 355000 2000 330000 0 0 0 411000 1000 0 0 741000 1000 0 0 P5Y 43000 229000 225000 0 8800000 1300000 0 0 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="font-weight: bold;">NOTE 5</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;">–</span><span style="font-weight: bold;"> OTHER </span><span style="font-weight: bold;">COMPREHENSIVE INCOME (LOSS) <br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; line-height: inherit;">There <span>were no r</span>eclassification adjustments in 2021 or 2020. </span><span style="font-size: 10pt;">Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss) are as follows:</span></p> <div style="border-right: none; border-left: none;"> <table cellpadding="0" style="border-collapse: collapse; margin: 0px auto; width: 99.6%; height: 82px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-size: 8pt;"/></span><br/></p> </td> <td colspan="11" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1pt solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"><span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Year Ended </span>December 31, 2021</span></strong></span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td colspan="11" style="border-bottom: 0.75pt solid #000000; padding: 2px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> Year Ended December 31, 2020 </span></strong></span></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Before Tax</span></span></p> </td> <td style="padding: 2px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Tax Effect </span></span></p> </td> <td style="padding: 2px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Net of Tax<br/>Amount</span></span></p> </td> <td style="padding: 2px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Before Tax </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Tax Effect </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; border-top: 0.75pt solid #000000; padding: 2px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Net of Tax<br/>Amount</span></span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 40%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign currency translation adjustments </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(193</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(193</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td style="border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></span></p> </td> <td style="border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">190</span></span></p> </td> <td style="border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8; width: 1%;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">190</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"/> </tr> <tr style="height: 18px;"> <td style="padding: 0pt 1.5pt 1.5pt 0pt; height: 18px; vertical-align: bottom;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Unrealized gains (losses) on available-for-sale securities</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">(272</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: left; height: 18px; border-bottom: 1pt solid #000000;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">57</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">(215</span></span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 145 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(31</span></span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; border-bottom: 1pt solid #000000;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">114</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"/> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other comprehensive income (loss)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(465</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">57</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(408</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">335</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(31</span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"><span style="font-family: 'times new roman', times; font-size: 10pt;">)</span></td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">304</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"/> </tr> </tbody> </table> </div> <p style="margin: 0pt;"><br/></p> <div style="border-right: none; border-left: none;"> <div> <div style="border-right: none; border-left: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">At <span style="border-left: none; border-right: none;">December 31, 2021 and</span> December 31, 2020 components of accumulated other comprehensive loss is as follows:</span><br/></p> <div style="border-right: none; border-left: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0px; width: 99.946%; height: 136px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 27px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 27px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 27px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 27px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Foreign</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Currency</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Translation</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Adjustments</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 27px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 27px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Available-</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">for-Sale</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Securities</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 27px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 27px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Accumulated</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Other</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Comprehensive</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Loss</span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 55%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balances at December 31, 2019 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 12%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,475 </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 12%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">69</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"/> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 12%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,406 </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other comprehensive income for the year ended December 31, 2020</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">190</span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"/> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">114</span></p> </td> <td style="padding: 2px 0px; margin-left: 0.1px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"/> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">304</span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"/> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balances at December 31, 2020 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,285 </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">183</span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"/> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,102 </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> )  </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">Other comprehensive loss for the year ended December 31, 2021</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(193</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;">)</td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(215</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;">)</td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(408</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;">)</td> </tr> <tr style="height: 19px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"><span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Balances at </span>December 31, 2021</span><br/></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">$</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,478</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">) </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(32</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;">)</td> <td style="padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,510</span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8; border-bottom: 2.8pt double #000000;"><span style="font-family: 'times new roman', times; font-size: 10pt;">)</span></td> </tr> </tbody> </table> </div> </div> </div> </div> 0 0 Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss) are as follows: <div style="border-right: none; border-left: none;"> <table cellpadding="0" style="border-collapse: collapse; margin: 0px auto; width: 99.6%; height: 82px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-size: 8pt;"/></span><br/></p> </td> <td colspan="11" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1pt solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"><span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Year Ended </span>December 31, 2021</span></strong></span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td colspan="11" style="border-bottom: 0.75pt solid #000000; padding: 2px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> Year Ended December 31, 2020 </span></strong></span></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Before Tax</span></span></p> </td> <td style="padding: 2px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Tax Effect </span></span></p> </td> <td style="padding: 2px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Net of Tax<br/>Amount</span></span></p> </td> <td style="padding: 2px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Before Tax </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Tax Effect </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; border-top: 0.75pt solid #000000; padding: 2px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Net of Tax<br/>Amount</span></span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 40%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign currency translation adjustments </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(193</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(193</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td style="border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></span></p> </td> <td style="border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">190</span></span></p> </td> <td style="border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8; width: 1%;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 7%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">190</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"/> </tr> <tr style="height: 18px;"> <td style="padding: 0pt 1.5pt 1.5pt 0pt; height: 18px; vertical-align: bottom;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Unrealized gains (losses) on available-for-sale securities</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">(272</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: left; height: 18px; border-bottom: 1pt solid #000000;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">57</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">(215</span></span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 145 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(31</span></span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; border-bottom: 1pt solid #000000;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">114</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1pt solid #000000;"/> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other comprehensive income (loss)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(465</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">57</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(408</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; background-color: #d6f3e8;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">335</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"/> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(31</span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px; height: 18px; background-color: #d6f3e8;"><span style="font-family: 'times new roman', times; font-size: 10pt;">)</span></td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">304</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"/> </tr> </tbody> </table> </div> -193000 0 -193000 190000 0 190000 -272000 -57000 -215000 145000 31000 114000 -465000 -57000 -408000 335000 31000 304000 <div> <div style="border-right: none; border-left: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">At <span style="border-left: none; border-right: none;">December 31, 2021 and</span> December 31, 2020 components of accumulated other comprehensive loss is as follows:</span><br/></p> <div style="border-right: none; border-left: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0px; width: 99.946%; height: 136px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 27px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 27px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 27px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 27px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Foreign</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Currency</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Translation</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Adjustments</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 27px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 27px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Available-</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">for-Sale</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Securities</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 27px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 27px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Accumulated</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Other</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Comprehensive</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Loss</span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 55%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balances at December 31, 2019 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 12%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,475 </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 12%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">69</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"/> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 12%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,406 </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other comprehensive income for the year ended December 31, 2020</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">190</span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"/> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">114</span></p> </td> <td style="padding: 2px 0px; margin-left: 0.1px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"/> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">304</span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"/> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balances at December 31, 2020 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,285 </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">183</span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"/> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,102 </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> )  </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">Other comprehensive loss for the year ended December 31, 2021</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(193</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;">)</td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(215</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;">)</td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(408</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;">)</td> </tr> <tr style="height: 19px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"><span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Balances at </span>December 31, 2021</span><br/></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">$</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,478</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">) </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(32</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;">)</td> <td style="padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,510</span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8; border-bottom: 2.8pt double #000000;"><span style="font-family: 'times new roman', times; font-size: 10pt;">)</span></td> </tr> </tbody> </table> </div> </div> </div> -1475000 69000 -1406000 190000 114000 304000 -1285000 183000 -1102000 -193000 -215000 -408000 -1478000 -32000 -1510000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span><span style="font-weight: bold;">NOTE 6</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;">–</span><span style="font-weight: bold;"> </span></span><span style="font-weight: bold;"><span>FAIR VALUE MEASUREMENTS</span><br/><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">We determine the fair value of our assets and liabilities based on the exchange price that would be received for an asset or paid to transfer a liability (exit price) in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Valuation techniques used to measure fair value maximize the use of observable inputs and minimize the use of unobservable inputs. We use a fair value hierarchy with three levels of inputs, of which the first two are considered observable and the last is considered unobservable, to measure fair value. The fair value hierarchy gives the highest priority to quoted prices in active markets for identical assets or liabilities (Level <span style="border-left: none; border-right: none;">1</span>). The next highest priority is based on observable inputs other than Level 1 inputs including quoted prices for similar assets or liabilities in active markets or quoted prices for identical or similar assets or liabilities in less active markets or other observable inputs (Level <span style="border-left: none; border-right: none;">2</span>). The lowest priority is given to unobservable inputs (Level <span style="border-left: none; border-right: none;">3</span>). The following provides information regarding fair value measurements for our marketable securities as of December 31, 2021 and December 31, 2020 according to the three-level fair value hierarchy.</span></p> <div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></p> <div> <table cellpadding="0" style="height: 172px; border-collapse: collapse; width: 99%; margin-left: 0.1px; font-family: 'times new roman'; font-size: 10pt;" width="99%"> <tbody> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="15" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">Fair Value Measurements at</span><span style="font-weight: bold;"> </span></span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">December 31, 2021 Using</span></p> </td> </tr> <tr style="height: 59px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Balance</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">December 31, 2021</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Quoted Prices</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">in Active</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Markets for</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Identical</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Assets</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">1</span>)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Significant</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Other Observable Inputs</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">2</span>)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Significant</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unobservable Inputs</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">3</span>)</span></span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"> Marketable securities: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px; width: 48%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 12,887 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 12,887 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,043 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,043 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,635 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,635 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equity security </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 43 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 43 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total marketable securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24,608 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 43 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24,565 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> <div> <table cellpadding="0" style="border-collapse: collapse; width: 99%; margin-left: 0.1px; font-family: 'times new roman'; font-size: 10pt;" width="99%"> <tbody> <tr> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="15" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Fair Value Measurements at</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>December 31, 2020</strong><span style="font-weight: bold;"> Using</span></span></p> </td> </tr> <tr> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Balance</strong></span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">December 31, 2020</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Quoted Prices</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">in Active</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Markets for</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Identical</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Assets</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">1</span>)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Significant</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Other Observable Inputs</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">2</span>)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Significant</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unobservable Inputs</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">3</span>)</span></span></p> </td> </tr> <tr> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"> Marketable securities: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; width: 48%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 12,448 </span></p> </td> <td style="vertical-align: bottom; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 12,448 </span></p> </td> <td style="vertical-align: bottom; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,169 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,169 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,526 </span></p> </td> <td style="vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,526 </span></p> </td> <td style="vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equity security </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total marketable securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 22,173 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 22,143 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">During 2021 and 2020, we owned no Level 3 securities and there were no transfers within the three level hierarchy. A significant transfer is recognized when the inputs used to value a security have been changed which merit a transfer between the levels of the valuation hierarchy.<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The fair value for our U.S. government and agency obligations, corporate debt securities and certificates of deposit and asset backed securities are determined based on valuations provided by external investment managers who obtain them from a variety of industry standard data providers. The fair value for our equity security is based on a quoted market price obtained from an active market. The carrying amounts of financial instruments included in cash equivalents approximate their related fair values due to the short-term maturities of those instruments. <span style="color: #333333; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;"><span style="color: #000000;">See Note 4 for additional information regarding our investments in marketable securities</span>. </span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Non-financial assets such as equipment and leasehold improvements, goodwill and intangible assets and right-of-use assets for operating leases are subject to non-recurring fair value measurements if they are deemed impaired. We had<span> </span></span>no<span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span> </span>re-measurements of non-financial assets to fair value in<span> </span></span><span style="border-left: none; border-right: none;">2021</span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span> </span>or<span> </span></span><span style="border-left: none; border-right: none;">2020</span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">.</span><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The fair value for trade notes receivable is based on discounted future cash flows using current interest rates that would be offered for a similar transaction to a similarly situated customer. The difference between the carrying amount and estimated fair value for trade notes receivable is immaterial. If measured at fair value in the financial statements, these financial instruments would be classified as Level 3 in the fair value hierarchy.</span></p> The following provides information regarding fair value measurements for our marketable securities as of December 31, 2021 and December 31, 2020 according to the three-level fair value hierarchy. <div> <table cellpadding="0" style="height: 172px; border-collapse: collapse; width: 99%; margin-left: 0.1px; font-family: 'times new roman'; font-size: 10pt;" width="99%"> <tbody> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="15" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">Fair Value Measurements at</span><span style="font-weight: bold;"> </span></span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">December 31, 2021 Using</span></p> </td> </tr> <tr style="height: 59px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Balance</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">December 31, 2021</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Quoted Prices</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">in Active</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Markets for</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Identical</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Assets</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">1</span>)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Significant</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Other Observable Inputs</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">2</span>)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 59px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Significant</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unobservable Inputs</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">3</span>)</span></span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"> Marketable securities: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px; width: 48%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 12,887 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 12,887 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,043 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,043 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,635 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,635 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equity security </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 43 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 43 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total marketable securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24,608 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 43 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24,565 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> <div> <table cellpadding="0" style="border-collapse: collapse; width: 99%; margin-left: 0.1px; font-family: 'times new roman'; font-size: 10pt;" width="99%"> <tbody> <tr> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="15" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Fair Value Measurements at</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>December 31, 2020</strong><span style="font-weight: bold;"> Using</span></span></p> </td> </tr> <tr> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Balance</strong></span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">December 31, 2020</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Quoted Prices</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">in Active</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Markets for</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Identical</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Assets</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">1</span>)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Significant</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Other Observable Inputs</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">2</span>)</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Significant</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Unobservable Inputs</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="font-weight: bold;">(Level</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="border-left: none; border-right: none;">3</span>)</span></span></p> </td> </tr> <tr> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"> Marketable securities: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; width: 48%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> U.S. government and agency obligations </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 12,448 </span></p> </td> <td style="vertical-align: bottom; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 12,448 </span></p> </td> <td style="vertical-align: bottom; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Corporate debt securities and certificates of deposit </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,169 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,169 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asset backed securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,526 </span></p> </td> <td style="vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,526 </span></p> </td> <td style="vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equity security </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total marketable securities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 22,173 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 22,143 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> 12887000 0 12887000 0 9043000 0 9043000 0 2635000 0 2635000 0 43000 43000 0 0 24608000 43000 24565000 0 12448000 0 12448000 0 7169000 0 7169000 0 2526000 0 2526000 0 30000 30000 0 0 22173000 30000 22143000 0 0 0 <p style="font-size: 10pt; line-height: 120%; margin: 0pt; text-align: left;"><span style="font-size: 10pt; font-family: 'times new roman', times;"><span style="font-weight: bold;">NOTE 7</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;">–</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;"><span style="font-size: 13.3333px;">SHARE-BASED COMPENSATION</span><br/><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">We have <span>three</span> share-based compensation plans that are administered by the Compensation Committee of the Board of Directors. We have (a) an Employee Stock Incentive Plan for officers, other employees, consultants and independent contractors under which we have granted options and restricted stock units to officers and other employees, (b) an Employee Stock Purchase Plan under which shares of our common stock may be acquired by employees at discounted prices, and (c) a Non-Employee Director Stock Plan that provides for automatic grants of restricted shares of our common stock to non-employee directors. New shares of our common stock are issued upon stock option exercises, vesting of restricted stock units, issuances of shares to board members and issuances of shares under the Employee Stock Purchase Plan.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <div> <span style="font-size: 10pt; font-weight: bold;">Employee Stock Incentive Plan</span><br/></div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">As of December 31, 2021, there <span>are </span>87,507<span><span><span> shares</span> </span>of</span> common stock reserved in the aggregate for issuance pursuant to future awards under our Employee Stock Incentive Plan and 397,726 shares of common stock reserved in the aggregate for issuance pursuant to outstanding awards under such plan. Although our Compensation Committee has authority to issue options, restricted stock, restricted stock units, share grants and other share-based benefits under our Employee Stock Incentive Plan, to date only restricted stock units and stock options have been granted under the plan. Options have been granted at an option price per share equal to the market value of our common stock on the date of grant, vest over a four year period and expire seven years after the date of grant. Restricted stock units vest over a four year period and entitle the holders to one share of our common stock for each restricted stock unit. Reserved shares underlying outstanding awards, including options and restricted stock units, that are forfeited are available under the Employee Stock Incentive Plan for future grant.</span><br/><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><strong>Non-Employee Director Stock Plan</strong></span><br/><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; font-weight: bold;"><span style="color: #000000; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box; font-family: 'times new roman', times; font-size: 10pt;">As of December 31, 2021, there were </span><span><span style="font-family: 'times new roman', times;">36,000</span></span><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box; font-family: 'times new roman', times;"><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box; font-size: 10pt;"> shares of common stock reserved in the aggregate for issuance pursuant to future restricted share grants under our Non-Employee Director Stock Plan and 8,000 shares of common stock reserved in the aggregate for issuance pursuant to outstanding stock option awards under our Non-Employee Director Stock Plan (which previously authorized the granting of stock options to non-employee directors). </span></span></span></span><span style="font-size: 10pt; font-weight: bold;"><span style="color: #000000; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Under the terms of the plan, each non-employee director receives annual restricted share grants of 2,000 shares of our common stock on the date of each annual meeting at which such director is elected to serve on the board</span></span><span style="font-size: 10pt; font-weight: bold;"><span style="color: #000000; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">. The <span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">annual restricted share grants of common stock vest in <span>four</span> equal quarterly installments during the year after the grant date, provided the non-employee director is still serving as a director on the applicable vesting date.</span> </span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">On the dates <span>of our </span>2021</span><span><span style="font-size: 10pt;"> an<span>d </span>2020 annual meetings, we issued </span><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box;">8,000</span></span><span style="font-size: 10pt;"> shares of our common stock to our non-employee directors, which were restricted as specified in the Non-Employee Director Stock Plan. The shares granted at the 2021 annual meeting had an aggregate fair market value on the <span>date of grant equal to $</span></span><span><span><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box;">224,000</span></span><span style="font-size: 10pt;"> (grant date fair value of $</span></span>27.96<span style="font-size: 10pt;"><span> per </span>share). As of December 31, 2021, 4,000 of these shares were vested. <span>The aggregate fair value of the </span>4,000<span> unvested shares b</span>ased on the closing price of our common stock on December 31, 2021 was $186,000. The shares granted at the </span></span><span style="border-right: none; border-left: none;"><span style="border-right: none; border-left: none;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">2</span></span></span><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box; font-family: 'times new roman', times; font-size: 10pt; color: #000000;"><span style="border-left: none; border-right: none;">020</span></span></span></span><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box; font-family: 'times new roman', times; font-size: 10pt; color: #000000;"> annual meeting</span><span style="font-family: 'times new roman', times;"> had an aggregate fair market value on the date of grant equal to $227,000<span> (grant date fair value of $</span>28.34<span><span> </span>per shar</span>e). As of December 31, 2021, all of the shares granted at the 2020 annual meeting were vested.</span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box; font-family: 'times new roman', times; font-size: 10pt; color: #000000;"><strong>Stock Option Activity </strong><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">The following is a summary of activity in stock options for 2021:<br/></span></p> <div style="border-right: none; border-left: none;"> <div id="t_ft_OMFNWY73LS00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 151px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 32px; margin-left: 0.1px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"><br/></td> <td style="padding: 1.5pt 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Options Outstanding </span></p> </td> <td style="padding: 1.5pt 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 0px 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Weighted Average Exercise</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Price Per Share</span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Outstanding, December 31, 2020 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 419,100 </span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 15.22 </span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 66%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Granted </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 15%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24,000 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 15%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42.90 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 14px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 14px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Exercised </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 14px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 14px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="border-left: none; border-right: none;">(89,500</span></span></span></p> </td> <td style="padding: 0px; margin-left: 0.1px; vertical-align: bottom; height: 14px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 14px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 14px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 11.26 </span></span></p> </td> <td style="vertical-align: bottom; height: 14px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;">Forfeited</td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"><br/></td> <td style="padding: 0px; border-bottom: 1px solid #000000; height: 17px; margin-left: 0.1px; background-color: #d6f3e8; text-align: right; vertical-align: bottom;">(1,775</td> <td style="padding: 0px; margin-left: 0.1px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 17px; background-color: #d6f3e8;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px; background-color: #d6f3e8;"><br/></td> <td colspan="2" style="padding: 0px; border-bottom: 1px solid #000000; height: 17px; margin-left: 0.1px; background-color: #d6f3e8; text-align: right; vertical-align: bottom;">17.52</td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; height: 17px; background-color: #d6f3e8; padding: 0px;"><br/></td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Outstanding, December 31, 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 351,825 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 18.11 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Exercisable, December 31, 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 257,026 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14.82 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> <div><br/></div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">The intrinsic value of an option is the amount by which the market price of the underlying common stock exceeds the option's exercise price. For options outstanding at </span>December 31, 2021<span style="font-size: 10pt; font-family: 'times new roman', times;">, the weighted average remaining contractual term of all outstanding options was </span>3.41<span style="font-size: 10pt; font-family: 'times new roman', times;"> years and their aggregate intrinsic value was $</span>10.0<span style="font-size: 10pt;"> million. At </span>December 31, 2021<span style="font-size: 10pt; font-family: 'times new roman', times;">, the weighted average remaining contractual term of options that were exercisable was </span><span><span style="border-left: none; border-right: none;">2.6</span></span><span style="font-size: 10pt; font-family: 'times new roman', times;"><span> years </span>and their aggregate intrinsic value was $</span>8.1<span style="font-size: 10pt; font-family: 'times new roman', times;"> million. The aggregate intrinsic value of stock options exercised was $2.7 million </span><span style="font-size: 10pt;">in </span>2021<span style="font-size: 10pt; font-family: 'times new roman', times;"> and <span>$2.7</span> million </span><span style="font-size: 10pt; font-family: 'times new roman', times;">in </span>2020<span style="border-left: none; border-right: none;">. </span><span style="font-size: 10pt; font-family: 'times new roman', times;">We received proceeds from stock option exer<span style="font-family: 'times new roman', times; font-size: 10pt;">cises of $</span>428,000 in <span style="border-left: none; border-right: none; font-size: 10pt; font-family: 'times new roman', times;">2021 and</span> $358,000 in <span style="border-left: none; border-right: none; font-size: 10pt; font-family: 'times new roman', times;">2020</span>. The aggregate fair value of options that vested was $491,000 in 2021 and $456,000 in 2020.  </span></span></span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The fair value of stock options granted to our employees was estimated on the date of grant using the Black-Scholes model. The Black-Scholes valuation model incorporates ranges of assumptions that are disclosed in the table below. The risk-free interest rate is based on the United States Treasury yield curve at the time of grant with a remaining term equal to the expected life of the awards. We used historical experience to estimate the expected term, representing the length of time in years, that the options are expected to be outstanding. Expected volatility was computed based on historical fluctuations in the daily price of our common stock.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">For stock options granted in the two-year period ended December 31, 2021, we utilized the fair value of our common stock on the date of grant and employed the following key assumptions in computing fair value using the Black-Scholes option-pricing model:</span></p> <div style="border-right: none; border-left: none;"> <div id="t_ft_F6VGE1AG3K00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 100px;" width="100%"> <tbody> <tr style="height: 10px;"> <td style="vertical-align: middle; width: 62.3512%; height: 10px;"><br/></td> <td style="vertical-align: middle; width: 5.05952%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 3.27381%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 3.42262%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 3.42262%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 3.42262%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.93452%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 16.9643%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> </tr> <tr style="height: 15px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="5" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">2021</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> <span style="border-left: none; border-right: none;">2020</span> </span></p> </td> </tr> <tr style="height: 15px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Risk-free interest rates </span></p> </td> <td colspan="5" style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">1.15% - 1.18%</span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.44% - 0.50% </span></p> </td> </tr> <tr style="height: 15px;"> <td style="padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Expected life in years </span></p> </td> <td colspan="5" style="padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">5.19 -<span> 5.64 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5.12 - <span>5.55 </span></span></p> </td> </tr> <tr style="height: 15px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Expected volatility </span></p> </td> <td colspan="5" style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 58.02% - 58.44%</span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 59.43% - 59.81% </span></p> </td> </tr> <tr style="height: 15px;"> <td style="padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Dividend yield </span></p> </td> <td colspan="5" style="padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">0.00%</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.00% </span></p> </td> </tr> <tr style="height: 15px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Weighted average fair value on grant date </span></p> </td> <td colspan="5" style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$22.24</span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $14.58 </span></p> </td> </tr> </tbody> </table> </div> </div> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;"> </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Restricted Shares and Restricted Stock Units </span></p> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;"> </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">Restricted shares are granted under our Non-Employee Director Stock Plan. Restricted stock units are granted under our Employee Stock Incentive Plan. The fair value of restricted shares and restricted stock units is equal to the market value of our common stock on the date of grant. There were 24,100 restricted shares and restricted stock units granted in <span style="border-left: none; border-right: none;">2021</span> (weighted average grant date fair value of $37.94 each). There were 30,700 restricted shares and restricted stock units granted in <span style="border-left: none; border-right: none;">2020</span> (weighted average grant date fair value of <span><span>$</span></span>28.33 each). The aggregate fair value of outstanding restricted shares and restricted stock units based on the closing share price of our common stock as of December 31, 2021 w<span class="selected">as<span> $2.7 million. </span>T</span>he aggregate fair value of restricted shares and stock units that vested, based on the closing share price of our common stock on the vesting date, was $1.4 million in 2021 and $857,000 in 2020.</span></p> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">The following is a summary of activity in restricted shares and restricted stock units for 2021:</span></p> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 7pt;"> </p> <div style="border-right: none; border-left: none;"> <div id="t_ft_9TXP1VGAN400000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 93px;" width="100%"> <tbody> <tr style="height: 29px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt;"><strong><span style="font-size: 8pt; font-family: 'times new roman', times;"> Non-vested restricted stock units </span></strong></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Shares </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Weighted Average Grant Date</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Fair Value</span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Non-vested at December 31, 2020 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 68,454 </span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 21.45 </span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px; width: 66%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Granted </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 15%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24,100 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; width: 15%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 37.94 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Vested </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="border-left: none; border-right: none;">(33,322</span></span></span></p> </td> <td style="padding: 0px; vertical-align: middle; height: 17px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; background-color: #d6f3e8;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-style: none; margin-left: 0.1px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 21.56 </span></span></p> </td> <td style="height: 17px; border-bottom: 1pt none #000000; background-color: #d6f3e8; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; border-bottom-width: 1px;">Forfeited</td> <td style="padding: 1.5pt; vertical-align: bottom; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; text-align: right;">(1,331</td> <td style="padding: 0px; margin-left: 0.1px; vertical-align: middle; border-bottom: 1px solid #000000;">)</td> <td style="padding: 0px; vertical-align: bottom; border-bottom-width: 1px;"><br/></td> <td colspan="2" style="padding: 0px; border-bottom: 1px solid #000000; margin-left: 0.1px; text-align: right; vertical-align: bottom;">23.03</td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px;"><br/></td> </tr> <tr style="height: 13px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Non-vested at December 31, 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 57,901 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 13px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 28.21 </span></span></p> </td> <td style="vertical-align: bottom; height: 13px; border-bottom: 2.8pt double #000000; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"><span>Employee Stock Purchase Plan</span><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span style="font-family: 'times new roman', times; font-size: 10pt;">We have an Employee Stock Purchase Plan available to eligible U.S. employees. Under terms of the plan, eligible employees may designate from </span>1<span style="font-family: 'times new roman', times; font-size: 10pt;">% to </span>10<span style="font-family: 'times new roman', times; font-size: 10pt;">% of their compensation to be withheld through payroll deductions, up to a maximum of $</span>6,500<span style="font-family: 'times new roman', times; font-size: 10pt;"> in each plan year, for the purchase of common stock at </span>85<span style="font-family: 'times new roman', times; font-size: 10pt;">% of the lower of the market price on the first or last day of the offering period. Purchases under this plan were 7,380 shares in 2021 and 19,897 shares in 2020</span><span style="font-family: 'times new roman', times; font-size: 10pt;">. As of December 31, 2021, </span>129,411<span style="font-family: 'times new roman', times; font-size: 10pt;"> shares remain available for future issuance under this plan.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Share-Based Compensation Information<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">Pre-tax share-based compensation expense for <span style="border-left: none; border-right: none;">2021</span> includes $993,000 for stock options and restricted stock units, $130,000 for our employee stock purchase plan, and $224,000 for restricted shares issued to board members. Pre-tax share-based compensation expense for <span style="border-left: none; border-right: none;">2020</span> includes $876,000 for stock options and restricted stock units, $111,000 for our employee stock purchase plan, and $194,000 for restricted shares issued to board members.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 68px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle;"><br/></td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">   </span></p> </td> <td colspan="2" style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> <span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">2021</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> <span style="border-left: none; border-right: none;">2020</span> </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 74%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Pre-tax share-based compensation expense </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 17px; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1,347</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; width: 1%;"><br/></td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,181 </span></p> </td> <td style="background-color: #d6f3e8; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Income tax benefits related to share-based compensation </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 17px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">833</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right;"><br/></td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 17px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 712 </span></p> </td> <td style="vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> <div><br/></div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">At December 31, 2021, the total unrecognized compensation cost related to non-vested share-based compensation arrangements was $2.9 million and the related weighted average period over which such cost is expected to be recognize<span>d is 2.9 ye</span>ars. </span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"><br/></span></p> <div> </div> 3 87507 397726 P4Y P7Y P4Y 1 36000 8000 2000 4 8000 8000 224000 27.96 4000 4000 186000 227000 28.34 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">The following is a summary of activity in stock options for 2021:<br/></span></p> <div style="border-right: none; border-left: none;"> <div id="t_ft_OMFNWY73LS00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 151px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 32px; margin-left: 0.1px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"><br/></td> <td style="padding: 1.5pt 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Options Outstanding </span></p> </td> <td style="padding: 1.5pt 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 0px 2px 2px; vertical-align: bottom; height: 32px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Weighted Average Exercise</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Price Per Share</span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Outstanding, December 31, 2020 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 419,100 </span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 15.22 </span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 66%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Granted </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 15%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24,000 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8; width: 15%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42.90 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 14px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 14px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Exercised </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 14px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 14px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="border-left: none; border-right: none;">(89,500</span></span></span></p> </td> <td style="padding: 0px; margin-left: 0.1px; vertical-align: bottom; height: 14px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 14px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 14px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 11.26 </span></span></p> </td> <td style="vertical-align: bottom; height: 14px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;">Forfeited</td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"><br/></td> <td style="padding: 0px; border-bottom: 1px solid #000000; height: 17px; margin-left: 0.1px; background-color: #d6f3e8; text-align: right; vertical-align: bottom;">(1,775</td> <td style="padding: 0px; margin-left: 0.1px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 17px; background-color: #d6f3e8;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px; background-color: #d6f3e8;"><br/></td> <td colspan="2" style="padding: 0px; border-bottom: 1px solid #000000; height: 17px; margin-left: 0.1px; background-color: #d6f3e8; text-align: right; vertical-align: bottom;">17.52</td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; height: 17px; background-color: #d6f3e8; padding: 0px;"><br/></td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Outstanding, December 31, 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 351,825 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 18.11 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Exercisable, December 31, 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 257,026 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14.82 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> 419100 15.22 24000 42.9 89500 11.26 1775 17.52 351825 18.11 257026 14.82 P3Y4M28D 10000000 P2Y7M6D 8100000 2700000 2700000 428000 358000 491000 456000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">For stock options granted in the two-year period ended December 31, 2021, we utilized the fair value of our common stock on the date of grant and employed the following key assumptions in computing fair value using the Black-Scholes option-pricing model:</span></p> <div style="border-right: none; border-left: none;"> <div id="t_ft_F6VGE1AG3K00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 100px;" width="100%"> <tbody> <tr style="height: 10px;"> <td style="vertical-align: middle; width: 62.3512%; height: 10px;"><br/></td> <td style="vertical-align: middle; width: 5.05952%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 3.27381%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 3.42262%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 3.42262%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 3.42262%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.93452%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> <td style="vertical-align: middle; width: 16.9643%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 7pt;">   </span></p> </td> </tr> <tr style="height: 15px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="5" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">2021</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> <span style="border-left: none; border-right: none;">2020</span> </span></p> </td> </tr> <tr style="height: 15px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Risk-free interest rates </span></p> </td> <td colspan="5" style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">1.15% - 1.18%</span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.44% - 0.50% </span></p> </td> </tr> <tr style="height: 15px;"> <td style="padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Expected life in years </span></p> </td> <td colspan="5" style="padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">5.19 -<span> 5.64 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5.12 - <span>5.55 </span></span></p> </td> </tr> <tr style="height: 15px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Expected volatility </span></p> </td> <td colspan="5" style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 58.02% - 58.44%</span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 59.43% - 59.81% </span></p> </td> </tr> <tr style="height: 15px;"> <td style="padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Dividend yield </span></p> </td> <td colspan="5" style="padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">0.00%</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.00% </span></p> </td> </tr> <tr style="height: 15px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 62.3512%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Weighted average fair value on grant date </span></p> </td> <td colspan="5" style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 18.6012%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$22.24</span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 1.93452%; height: 15px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: top; width: 16.9643%; height: 15px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $14.58 </span></p> </td> </tr> </tbody> </table> </div> </div> 0.0115 0.0118 0.0044 0.005 P5Y2M8D P5Y7M20D P5Y1M13D P5Y6M18D 0.5802 0.5844 0.5943 0.5981 0 0 22.24 14.58 24100 37.94 30700 28.33 2700000 1400000 857000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">The following is a summary of activity in restricted shares and restricted stock units for 2021:</span></p> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 7pt;"> </p> <div style="border-right: none; border-left: none;"> <div id="t_ft_9TXP1VGAN400000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 93px;" width="100%"> <tbody> <tr style="height: 29px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt;"><strong><span style="font-size: 8pt; font-family: 'times new roman', times;"> Non-vested restricted stock units </span></strong></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Shares </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 29px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Weighted Average Grant Date</span><br/><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Fair Value</span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Non-vested at December 31, 2020 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 68,454 </span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 21.45 </span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px; width: 66%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Granted </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 15%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 24,100 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; width: 15%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 37.94 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Vested </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="border-left: none; border-right: none;">(33,322</span></span></span></p> </td> <td style="padding: 0px; vertical-align: middle; height: 17px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; background-color: #d6f3e8;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-style: none; margin-left: 0.1px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom: 1pt none #000000; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 21.56 </span></span></p> </td> <td style="height: 17px; border-bottom: 1pt none #000000; background-color: #d6f3e8; border-top-style: none; border-right-style: none; border-left-style: none; margin-left: 0.1px; vertical-align: bottom; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; border-bottom-width: 1px;">Forfeited</td> <td style="padding: 1.5pt; vertical-align: bottom; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; text-align: right;">(1,331</td> <td style="padding: 0px; margin-left: 0.1px; vertical-align: middle; border-bottom: 1px solid #000000;">)</td> <td style="padding: 0px; vertical-align: bottom; border-bottom-width: 1px;"><br/></td> <td colspan="2" style="padding: 0px; border-bottom: 1px solid #000000; margin-left: 0.1px; text-align: right; vertical-align: bottom;">23.03</td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px;"><br/></td> </tr> <tr style="height: 13px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> Non-vested at December 31, 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 57,901 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 13px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 13px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 28.21 </span></span></p> </td> <td style="vertical-align: bottom; height: 13px; border-bottom: 2.8pt double #000000; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> 68454 21.45 24100 37.94 33322 21.56 1331 23.03 57901 28.21 0.01 0.10 6500 0.85 7380 19897 129411 993000 130000 224000 876000 111000 194000 <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 68px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle;"><br/></td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">   </span></p> </td> <td colspan="2" style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> <span style="color: #000000; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">2021</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> <span style="border-left: none; border-right: none;">2020</span> </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 74%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Pre-tax share-based compensation expense </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 17px; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1,347</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; width: 1%;"><br/></td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,181 </span></p> </td> <td style="background-color: #d6f3e8; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 17px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Income tax benefits related to share-based compensation </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 17px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">833</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right;"><br/></td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 17px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 712 </span></p> </td> <td style="vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> 1347000 1181000 833000 712000 2900000 P2Y10M24D <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; font-weight: bold;">NOTE 8</span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">–</span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">NET INCOME PER SHARE<br/><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Net income per basic share is computed by dividing net income by the weighted average number of common shares outstanding during the period. Net income per diluted share is computed by dividing net income by the weighted average number of common and common equivalent shares outstanding during the period. Common equivalent shares consist of common shares to be issued upon exercise of stock options, vesting of restricted stock units, vesting of restricted shares and from purchases of shares under our Employee Stock Purchase Plan, as calculated using the treasury stock method.<span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;"> Common equivalent shares are excluded from the calculation of net income per diluted share if their effect is anti-dilutive. </span></span><span style="font-size: 10pt; color: #000000;">The components of net income per basic and diluted share were as follows:</span></span></p> <table cellpadding="0" style="border-collapse: collapse; width: 99.5%; margin-left: 0px; font-family: 'times new roman'; font-size: 10pt; height: 212px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="padding: 0px; height: 17px; width: 48.0406%;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> </span></td> <td style="padding: 0px; height: 17px; width: 1.1611%;"/> <td style="padding: 0px; height: 17px; width: 1.45138%;"/> <td style="padding: 0px; height: 17px; width: 13.7881%;"/> <td style="padding: 0px; height: 17px; width: 1.01597%;"/> <td style="padding: 0px; height: 17px; width: 1.1611%;"/> <td style="padding: 0px; height: 17px; width: 14.8041%;"/> <td style="padding: 0px; height: 17px; width: 1.01597%;"> </td> <td style="padding: 0px; height: 17px; width: 1.1611%;"/> <td style="padding: 0px; height: 17px; width: 1.45138%;"/> <td style="padding: 0px; height: 17px; width: 13.7881%;"/> <td style="padding: 0px; height: 17px; width: 1.45138%;"/> </tr> <tr style="height: 26px;"> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px; height: 26px; width: 48.0406%;"> <div style="font-size: 8pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;"><strong>(In thousands except per share amounts)</strong></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 26px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;"> </span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px; height: 26px; width: 16.2554%;"> <div style="text-align: center; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Net Income</strong></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 26px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong> </strong></span></div> </td> <td colspan="2" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px; height: 26px; width: 15.82%;"> <div style="text-align: center; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Weighted Average Shares Outstanding</strong></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 26px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong> </strong></span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px; height: 26px; width: 16.6909%;"> <div style="text-align: center; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Per Share Amount</strong></span></div> </td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 48.0406%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"><strong>Year Ended 12/31/2021:</strong></span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.45138%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 13.7881%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.01597%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 14.8041%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.01597%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 15.2395%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.45138%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-size: 10pt;"><br/></span></div> </td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; padding: 0px; width: 48.0406%; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Basic</span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.1611%; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.45138%; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 13.7881%; height: 17px;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">12,751</span></span></div> </td> <td style="vertical-align: bottom; width: 1.01597%; padding: 0px; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.1611%; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 14.8041%; height: 17px;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">7,320</span></span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.01597%; height: 17px;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.1611%; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.45138%; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 13.7881%; height: 17px;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1.74</span></span></div> </td> <td style="vertical-align: bottom; width: 1.45138%; padding: 0px; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-size: 10pt;"><br/></span></div> </td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 48.0406%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Dilutive effect of common equivalent shares</span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 15.2395%;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.01597%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 14.8041%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">217</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.01597%;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span> </span></span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 15.2395%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(0.05</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.45138%;">)</td> </tr> <tr style="height: 18px;"> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 48.0406%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Dilutive</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.45138%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 13.7881%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">12,751</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.01597%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 14.8041%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">7,537</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.01597%;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span> </span></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.45138%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 13.7881%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1.69</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.45138%;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> </tr> <tr style="height: 18px;"> <td style="vertical-align: middle; width: 48.0406%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.1611%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.45138%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 13.7881%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.01597%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.1611%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 14.8041%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.01597%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.1611%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.45138%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 13.7881%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.45138%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 13px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 13px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands except per share amounts) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 13px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 13px; width: 16.2554%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Net Income </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 13px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 13px; width: 15.82%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Weighted Average Shares Outstanding </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 13px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 13px; width: 16.6909%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Per Share Amount </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"> Year Ended 12/31/2020: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 15.2395%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 14.8041%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 15.2395%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; width: 1.45138%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Basic </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1.45138%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 13.7881%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,742 </span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 14.8041%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,215 </span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1.45138%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 13.7881%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.80 </span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1.45138%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Dilutive effect of common equivalent shares </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px; width: 15.2395%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px; width: 14.8041%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 239 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px; width: 15.2395%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(0.03</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px; width: 1.45138%;">)</td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Dilutive </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 1.45138%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 13.7881%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,742 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 14.8041%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,454 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 1.45138%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 13.7881%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.77 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; width: 1.45138%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> <br/> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">Potentially dilutive shares consist of stock options, restricted stock units, restricted shares and purchases of shares under our Employee Stock Purchase Plan. Potentially dilutive shares excluded from the calculations of net income per diluted share due to their anti-dilutive effect were as follows: </span><span style="font-size: 10pt;">50,000 shares in 2021</span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;"> and </span></span><span style="font-size: 10pt;">57,000 shares in 2020</span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">.</span></span></span></p> The components of net income per basic and diluted share were as follows: <table cellpadding="0" style="border-collapse: collapse; width: 99.5%; margin-left: 0px; font-family: 'times new roman'; font-size: 10pt; height: 212px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="padding: 0px; height: 17px; width: 48.0406%;"><span style="font-size: 10pt; font-family: 'times new roman', times;"> </span></td> <td style="padding: 0px; height: 17px; width: 1.1611%;"/> <td style="padding: 0px; height: 17px; width: 1.45138%;"/> <td style="padding: 0px; height: 17px; width: 13.7881%;"/> <td style="padding: 0px; height: 17px; width: 1.01597%;"/> <td style="padding: 0px; height: 17px; width: 1.1611%;"/> <td style="padding: 0px; height: 17px; width: 14.8041%;"/> <td style="padding: 0px; height: 17px; width: 1.01597%;"> </td> <td style="padding: 0px; height: 17px; width: 1.1611%;"/> <td style="padding: 0px; height: 17px; width: 1.45138%;"/> <td style="padding: 0px; height: 17px; width: 13.7881%;"/> <td style="padding: 0px; height: 17px; width: 1.45138%;"/> </tr> <tr style="height: 26px;"> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px; height: 26px; width: 48.0406%;"> <div style="font-size: 8pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;"><strong>(In thousands except per share amounts)</strong></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 26px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;"> </span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px; height: 26px; width: 16.2554%;"> <div style="text-align: center; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Net Income</strong></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 26px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong> </strong></span></div> </td> <td colspan="2" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px; height: 26px; width: 15.82%;"> <div style="text-align: center; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Weighted Average Shares Outstanding</strong></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 26px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong> </strong></span></div> </td> <td colspan="3" style="vertical-align: bottom; border-bottom: 1px solid #000000; padding: 0px; height: 26px; width: 16.6909%;"> <div style="text-align: center; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Per Share Amount</strong></span></div> </td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 48.0406%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;"><strong>Year Ended 12/31/2021:</strong></span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.45138%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 13.7881%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.01597%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 14.8041%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.01597%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 15.2395%;"> <div style="text-align: right; font-size: 8pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.45138%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-size: 10pt;"><br/></span></div> </td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; padding: 0px; width: 48.0406%; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Basic</span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.1611%; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.45138%; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 13.7881%; height: 17px;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">12,751</span></span></div> </td> <td style="vertical-align: bottom; width: 1.01597%; padding: 0px; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.1611%; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 14.8041%; height: 17px;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">7,320</span></span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.01597%; height: 17px;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.1611%; height: 17px;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 1.45138%; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></div> </td> <td style="vertical-align: bottom; padding: 0px; width: 13.7881%; height: 17px;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1.74</span></span></div> </td> <td style="vertical-align: bottom; width: 1.45138%; padding: 0px; height: 17px;"> <div style="text-align: left; font-size: 10pt;"><span style="font-size: 10pt;"><br/></span></div> </td> </tr> <tr style="height: 17px;"> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 48.0406%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Dilutive effect of common equivalent shares</span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 15.2395%;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.01597%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 14.8041%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">217</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.01597%;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span> </span></span></div> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td colspan="2" style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 15.2395%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(0.05</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 1px solid #000000; background-color: #d6f3e8; padding: 0px; height: 17px; width: 1.45138%;">)</td> </tr> <tr style="height: 18px;"> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 48.0406%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Dilutive</span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.45138%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 13.7881%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">12,751</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.01597%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 14.8041%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">7,537</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.01597%;"> <div style="text-align: right; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span> </span></span></div> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 1.1611%;"> <div style="overflow: hidden; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.45138%;"> <div style="text-align: left; font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">$</span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 13.7881%;"> <div style="text-align: right; font-size: 10pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1.69</span></span></div> </td> <td style="vertical-align: bottom; border-bottom: 3px double #000000; padding: 0px; height: 18px; width: 1.45138%;"> <div style="text-align: left; font-size: 10pt;"><br/></div> </td> </tr> <tr style="height: 18px;"> <td style="vertical-align: middle; width: 48.0406%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.1611%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.45138%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 13.7881%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.01597%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.1611%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 14.8041%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.01597%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.1611%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.45138%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 13.7881%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.45138%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 13px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 13px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands except per share amounts) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 13px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 13px; width: 16.2554%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Net Income </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 13px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 13px; width: 15.82%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Weighted Average Shares Outstanding </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 13px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 13px; width: 16.6909%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Per Share Amount </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"> Year Ended 12/31/2020: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 15.2395%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 14.8041%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 15.2395%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 17px; width: 1.45138%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Basic </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1.45138%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 13.7881%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,742 </span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 14.8041%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,215 </span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 1.45138%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; width: 13.7881%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.80 </span></p> </td> <td style="vertical-align: bottom; height: 17px; width: 1.45138%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Dilutive effect of common equivalent shares </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px; width: 15.2395%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px; width: 14.8041%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 239 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 17px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 17px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px; width: 15.2395%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(0.03</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 17px; width: 1.45138%;">)</td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 48.0406%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Dilutive </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 1.45138%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 13.7881%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,742 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 14.8041%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,454 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; width: 1.01597%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.1611%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 1.45138%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 13.7881%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.77 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 18px; width: 1.45138%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> 12751000 7320000 1.74 217000 -0.05 12751000 7537000 1.69 5742000 7215000 0.8 239000 -0.03 5742000 7454000 0.77 50000 57000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><strong>NOTE</strong><span style="font-weight: bold;"> 9</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;">–</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;">OTHER FINANCIAL STATEMENT DATA<br/><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Inventories consist of the following:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 101px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; height: 17px; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 10.0249%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 9.942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 1.07705%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 73.9022%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 25.0207%; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>December 31,</strong></span></p> </td> </tr> <tr style="height: 17px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 12.0133%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 12.0132%; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Raw materials and purchased parts </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 10.0249%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 18,013 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 9.942%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 11,903 </span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 1.07705%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Work in process </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; width: 11.0191%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,655 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.9362%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,459 </span></p> </td> <td style="vertical-align: bottom; height: 10px; padding: 0px; width: 1.07705%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Finished goods </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 11.0191%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6,859 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 10.9362%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,208 </span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; padding: 0px; width: 1.07705%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 73.9022%;"><span>Demonstration inventories, net</span></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 0.9942%;"><br/></td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 11.0191%; border-bottom: 1px solid #000000;">1,075</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 0.9942%; border-bottom: 1px solid #000000;"><br/></td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 0.9942%;"><br/></td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; text-align: right; width: 10.9362%; border-bottom: 1px solid #000000;">1,701</td> <td style="vertical-align: bottom; height: 10px; padding: 0px; width: 1.07705%; border-bottom: 1px solid #000000;"><br/></td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total inventories </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 10.0249%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 27,602 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 9.942%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 20,271 </span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; padding: 0px; width: 1.07705%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">Demonstration inventories are stated at cost less accumulated amortization, generally based on a 36 month useful life. Accumulated amortization for demonstration inventories totaled $<span style="border-left: none; border-right: none;"><span>2.8</span></span> million at December 31, 2021 and $<span>2.7</span> million at December 31, 2020. Amortization expense related to demonstration inventories was $709,000 in 2021 and $770,000 in 2020.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">Equipment</span><span style="font-family: 'times new roman', times; font-size: 10pt;"> and leasehold improvements consist of the following: <br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 94px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>December 31,</strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 74%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equipment </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 16,051 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 10px; width: 1%; padding: 0px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 15,070 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 10px; width: 1%; padding: 0px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Leasehold improvements </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,070 </span></span></p> </td> <td style="border-bottom: 1px solid #000000; vertical-align: bottom; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,072 </span></p> </td> <td style="border-bottom: 1px solid #000000; vertical-align: bottom; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 16px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 19,121 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 16px; padding: 0px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 18,142 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 16px; padding: 0px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Accumulated depreciation and amortization </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(15,947</span></span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (14,907 </span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,174 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,235 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Depreciation and amortization expense related to equipment and leasehold improvements was $1.6 million in 2021 and $1.7 million in 2020.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Intangible assets consist of the following:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 98px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; width: 25%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.43195%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 0.887574%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.72781%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.28402%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.43195%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 0.887574%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.87574%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.18343%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.28402%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.18343%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="11" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; width: 36.5385%; height: 17px;"> <p style="margin: 0pt; text-align: center;"><strong><span style="font-family: 'times new roman', times; font-size: 8pt;"> December 31, 2021 </span></strong></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="11" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; width: 35.9467%; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> December 31, 2020 </span></strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 25%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 10.7988%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Gross Carrying<br/>Amount </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 11.6864%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Accumulated Amortization </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 11.2426%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Net </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 10.7988%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Gross Carrying<br/>Amount </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 11.5385%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Accumulated Amortization </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 10.9467%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Net </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Patents </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.43195%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,972 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 0.887574%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.72781%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,614</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.28402%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 358 </span></span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.43195%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,832 </span></p> </td> <td style="vertical-align: bottom; width: 0.887574%; background-color: #d6f3e8; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.87574%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,542 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.18343%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.28402%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 290 </span></p> </td> <td style="vertical-align: bottom; width: 1.18343%; background-color: #d6f3e8; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Software </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.43195%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">206</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 0.887574%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 10.2071%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(206</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 17px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.76331%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> —</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.91124%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 206 </span></p> </td> <td style="vertical-align: bottom; width: 0.887574%; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 10.355%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (200 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.18343%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.76331%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6 </span></p> </td> <td style="vertical-align: bottom; width: 1.18343%; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketing assets and customer relationships </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.43195%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 86 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 0.887574%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 10.2071%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(69</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 10px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.76331%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 17</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.91124%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 101 </span></p> </td> <td style="vertical-align: bottom; width: 0.887574%; background-color: #d6f3e8; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 10.355%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (72 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.18343%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.76331%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 29 </span></p> </td> <td style="vertical-align: bottom; width: 1.18343%; background-color: #d6f3e8; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.43195%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,264 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 0.887574%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.72781%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,889</span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.28402%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 375 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; width: 1.47929%; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.43195%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,139 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; width: 0.887574%; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.87574%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,814 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.18343%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.28402%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 325 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; width: 1.18343%; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Amortization expense in 2021 and 2020 was</span><span style="font-family: 'times new roman', times; font-size: 10pt;"> as follows:</span><br/></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 137px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></p> </td> <td rowspan="2" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 34px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> Weighted Avg. Remaining Life-Years at December 31, 2021</span></strong></span></p> </td> </tr> <tr style="height: 17px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 49%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Patents </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 187 </span></span></p> </td> <td style="vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 153 </span></p> </td> <td style="vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 24%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1.6 </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Software </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 29 </span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> — </span></span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketing assets and customer relationships </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 8 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9 </span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2.2 </span></span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 201 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 191 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Estimated aggregate amortization expense based on current intangible assets for the next three years is expected to be as follows<span>: $</span>190,000<span> in <span style="border-left: none; border-right: none;">2022;</span> $</span>141,000<span> in <span style="border-left: none; border-right: none;">2023; and</span> $</span>44,000<span> in <span style="border-left: none; border-right: none;">2024</span></span><span><span style="border-left: none; border-right: none;">.</span> </span></span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt 0pt 5pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Accrued expenses consist of the following:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 127px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1pt solid #000000; width: 26.9231%; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>December 31,</strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 12.7219%; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 12.8698%; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Wages and benefits </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 0.8285%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10.4141%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,966 </span></span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 9.91124%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,768 </span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Warranty liability </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; width: 11.2426%; height: 18px; vertical-align: bottom;" valign="bottom"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 949 </span></span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 11.3905%; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 793 </span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; background-color: #d6f3e8; margin-left: 0.1px; text-align: left; height: 18px;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Income taxes payable</span></td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; margin-left: 0.1px; height: 18px;"><br/></td> <td colspan="2" style="padding: 0px; width: 11.2426%; background-color: #d6f3e8; margin-left: 0.1px; vertical-align: bottom; text-align: right; height: 18px;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">341</span></span></td> <td style="vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; margin-left: 0.1px; height: 18px; padding: 0px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; margin-left: 0.1px; height: 18px;"><br/></td> <td colspan="2" style="padding: 0px; width: 11.3905%; background-color: #d6f3e8; margin-left: 0.1px; text-align: right; vertical-align: bottom; height: 18px;"><span style="font-family: 'times new roman', times; font-size: 10pt;">269</span></td> <td style="vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; margin-left: 0.1px; height: 18px; padding: 0px;"><br/></td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 11.2426%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 162 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; width: 1.47929%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 11.3905%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 63 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; width: 1.47929%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; width: 0.8285%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; width: 10.4141%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,418 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; width: 1.47929%; height: 19px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; width: 9.91124%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,893 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; width: 1.47929%; height: 19px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Other</span><span style="font-family: 'times new roman', times; font-size: 10pt;"> liabilities consist of the following:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin: 0px auto; width: 100%; height: 127px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px; width: 72.6331%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 9.91124%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 0.887574%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.33136%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 9.91124%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47493%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.6331%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 26.4749%; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong><span>December 31,</span></strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.6331%;"> <p style="margin: 0pt; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12.2781%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33136%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12.8655%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; width: 72.6331%; height: 18px; margin-left: 0.1px; vertical-align: bottom; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Deferred warranty revenue</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 9.91124%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 135 </span></span></p> </td> <td style="vertical-align: bottom; width: 0.887574%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 9.91124%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 88 </span></p> </td> <td style="vertical-align: bottom; width: 1.47493%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.6331%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Warranty liability </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; width: 11.3905%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.887574%; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.33136%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; width: 11.3905%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 46 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1.47493%; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px; margin-left: 0.1px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 72.6331%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 19px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 19px; width: 9.91124%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 177 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 19px; width: 0.887574%; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px; width: 1.33136%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 19px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 19px; width: 9.91124%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 134 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 19px; width: 1.47493%; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="color: #000000; font-family: 'Times New Roman', serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><span> </span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="color: #000000; font-family: 'Times New Roman', serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">See Note 3 for additional information related to contract liabilities.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">    </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Warranty</span><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"> costs:</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">    </span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">We provide for the estimated cost of product warranties, which cover products for periods ranging from <span style="border-left: none; border-right: none;"><span style="-sec-ix-hidden:Tag976">one</span></span> to <span style="border-left: none; border-right: none;"><span style="border-left: none; border-right: none;">three years</span></span>, at the time revenue is recognized. While we engage in extensive product quality programs and processes, including actively monitoring and evaluating the quality of components provided by suppliers, warranty obligations do arise. These obligations are affected by product failure rates, the costs of materials used in correcting product failures and service delivery expenses incurred to make these corrections. If actual product failure rates and material or service delivery costs differ from our estimates, revisions to the estimated warranty liability are required and could be material. At the end of each reporting period, we revise our estimated warranty liability based on these factors. The current portion of our warranty liability is included as a component of accrued expenses. The long-term portion of our warranty liability is included as a component of other liabilities.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">A reconciliation of the changes in our estimated warranty liability is as follows:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; width: 100%; margin-left: 0px; height: 172px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span><strong> </strong><strong> </strong></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020</span> </p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 74%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balance at beginning of period </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 1%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 1%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 10%; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 839 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; width: 1%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 1%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 1%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 10%; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 798 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; width: 1%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Accrual for warranties </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,024 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 836 </span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Warranty revision </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><br/></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(53</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; height: 18px; vertical-align: bottom;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">43</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"/> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Settlements made during the period </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(819</span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (838 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balance at end of period </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">991</span></p> </td> <td style="background-color: #d6f3e8; text-align: left; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 839 </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Current portion of estimated warranty liability</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(949</span></span></p> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (793 </span></p> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Long-term estimated warranty liability </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 46 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 10px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">Deferred warranty revenue:</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The current portion of our deferred warranty revenue is included as a component of advance customer payments. The long-term portion of our deferred warranty revenue is included as a component of other liabilities. A reconciliation of the changes in our deferred warranty revenue is as follows:<br/></span></p> <table cellpadding="0" style="height: 0px; border-collapse: collapse; width: 100%; margin-left: 0px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span><strong> </strong></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020</span> </p> </td> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 74%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balance at beginning of period </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 344 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 275 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Revenue deferrals </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 575 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 434 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Amortization of deferred revenue </span></span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(474</span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (365 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total deferred warranty revenue </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 445 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 344 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Current portion of deferred warranty revenue </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(310</span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (256 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Long-term deferred warranty revenue</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 135 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 88 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Inventories consist of the following:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 101px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; height: 17px; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 10.0249%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 9.942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px; width: 1.07705%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 73.9022%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 25.0207%; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>December 31,</strong></span></p> </td> </tr> <tr style="height: 17px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px; width: 12.0133%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 17px; width: 12.0132%; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Raw materials and purchased parts </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 10.0249%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 18,013 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 9.942%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 11,903 </span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 1.07705%; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Work in process </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; width: 11.0191%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,655 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.9362%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,459 </span></p> </td> <td style="vertical-align: bottom; height: 10px; padding: 0px; width: 1.07705%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Finished goods </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 11.0191%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6,859 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 10.9362%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,208 </span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; padding: 0px; width: 1.07705%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 73.9022%;"><span>Demonstration inventories, net</span></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 0.9942%;"><br/></td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 11.0191%; border-bottom: 1px solid #000000;">1,075</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 0.9942%; border-bottom: 1px solid #000000;"><br/></td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 0.9942%;"><br/></td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; text-align: right; width: 10.9362%; border-bottom: 1px solid #000000;">1,701</td> <td style="vertical-align: bottom; height: 10px; padding: 0px; width: 1.07705%; border-bottom: 1px solid #000000;"><br/></td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 73.9022%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total inventories </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 10.0249%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 27,602 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 0.9942%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; width: 9.942%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 20,271 </span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; padding: 0px; width: 1.07705%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> 18013000 11903000 1655000 2459000 6859000 4208000 1075000 1701000 27602000 20271000 P36M 2800000 2700000 709000 770000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">Equipment</span><span style="font-family: 'times new roman', times; font-size: 10pt;"> and leasehold improvements consist of the following: <br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 94px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>December 31,</strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 74%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equipment </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 16,051 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 10px; width: 1%; padding: 0px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 15,070 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 10px; width: 1%; padding: 0px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Leasehold improvements </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,070 </span></span></p> </td> <td style="border-bottom: 1px solid #000000; vertical-align: bottom; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,072 </span></p> </td> <td style="border-bottom: 1px solid #000000; vertical-align: bottom; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 16px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 19,121 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 16px; padding: 0px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 16px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 18,142 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 16px; padding: 0px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Accumulated depreciation and amortization </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(15,947</span></span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (14,907 </span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,174 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,235 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> 16051000 15070000 3070000 3072000 19121000 18142000 15947000 14907000 3174000 3235000 1600000 1700000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Intangible assets consist of the following:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 98px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; width: 25%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.43195%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 0.887574%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.72781%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.28402%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.43195%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 0.887574%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.87574%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.18343%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 8.28402%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; width: 1.18343%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="11" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; width: 36.5385%; height: 17px;"> <p style="margin: 0pt; text-align: center;"><strong><span style="font-family: 'times new roman', times; font-size: 8pt;"> December 31, 2021 </span></strong></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="11" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; width: 35.9467%; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> December 31, 2020 </span></strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 25%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 10.7988%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Gross Carrying<br/>Amount </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 11.6864%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Accumulated Amortization </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 11.2426%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Net </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 10.7988%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Gross Carrying<br/>Amount </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 11.5385%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Accumulated Amortization </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 10.9467%; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Net </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Patents </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.43195%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,972 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 0.887574%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.72781%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,614</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.28402%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 358 </span></span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.43195%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,832 </span></p> </td> <td style="vertical-align: bottom; width: 0.887574%; background-color: #d6f3e8; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.87574%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,542 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.18343%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.28402%; background-color: #d6f3e8; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 290 </span></p> </td> <td style="vertical-align: bottom; width: 1.18343%; background-color: #d6f3e8; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Software </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.43195%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">206</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 0.887574%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 10.2071%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(206</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 17px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.76331%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> —</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.91124%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 206 </span></p> </td> <td style="vertical-align: bottom; width: 0.887574%; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 10.355%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (200 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.18343%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.76331%; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6 </span></p> </td> <td style="vertical-align: bottom; width: 1.18343%; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketing assets and customer relationships </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 8.43195%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 86 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 0.887574%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 10.2071%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(69</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 10px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.76331%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 17</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.91124%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 101 </span></p> </td> <td style="vertical-align: bottom; width: 0.887574%; background-color: #d6f3e8; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 10.355%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (72 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.18343%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 9.76331%; background-color: #d6f3e8; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 29 </span></p> </td> <td style="vertical-align: bottom; width: 1.18343%; background-color: #d6f3e8; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 25%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.43195%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,264 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 0.887574%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.72781%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,889</span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.28402%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 375 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; width: 1.47929%; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.43195%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,139 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; width: 0.887574%; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.87574%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,814 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.18343%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; width: 8.28402%; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 325 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; width: 1.18343%; height: 10px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> 1972000 1614000 358000 1832000 1542000 290000 206000 206000 0 206000 200000 6000 86000 69000 17000 101000 72000 29000 2264000 1889000 375000 2139000 1814000 325000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Amortization expense in 2021 and 2020 was</span><span style="font-family: 'times new roman', times; font-size: 10pt;"> as follows:</span><br/></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; font-family: 'times new roman'; font-size: 10pt; height: 137px;" width="100%"> <tbody> <tr style="height: 17px;"> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="vertical-align: middle; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></p> </td> <td rowspan="2" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 34px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> Weighted Avg. Remaining Life-Years at December 31, 2021</span></strong></span></p> </td> </tr> <tr style="height: 17px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 49%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Patents </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 187 </span></span></p> </td> <td style="vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 153 </span></p> </td> <td style="vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 24%; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1.6 </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Software </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 29 </span></p> </td> <td style="vertical-align: bottom; height: 17px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> — </span></span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Marketing assets and customer relationships </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 8 </span></span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9 </span></p> </td> <td style="vertical-align: bottom; height: 17px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: center;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2.2 </span></span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 201 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 191 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> 187000 153000 P1Y7M6D 6000 29000 8000 9000 P2Y2M12D 201000 191000 190000 141000 44000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt 0pt 5pt; text-indent: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Accrued expenses consist of the following:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 127px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1pt solid #000000; width: 26.9231%; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>December 31,</strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 12.7219%; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; width: 12.8698%; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Wages and benefits </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 0.8285%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 10.4141%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,966 </span></span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 9.91124%; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,768 </span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Warranty liability </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; width: 11.2426%; height: 18px; vertical-align: bottom;" valign="bottom"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 949 </span></span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; width: 11.3905%; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 793 </span></p> </td> <td style="vertical-align: bottom; width: 1.47929%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; background-color: #d6f3e8; margin-left: 0.1px; text-align: left; height: 18px;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Income taxes payable</span></td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; margin-left: 0.1px; height: 18px;"><br/></td> <td colspan="2" style="padding: 0px; width: 11.2426%; background-color: #d6f3e8; margin-left: 0.1px; vertical-align: bottom; text-align: right; height: 18px;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">341</span></span></td> <td style="vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; margin-left: 0.1px; height: 18px; padding: 0px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; background-color: #d6f3e8; margin-left: 0.1px; height: 18px;"><br/></td> <td colspan="2" style="padding: 0px; width: 11.3905%; background-color: #d6f3e8; margin-left: 0.1px; text-align: right; vertical-align: bottom; height: 18px;"><span style="font-family: 'times new roman', times; font-size: 10pt;">269</span></td> <td style="vertical-align: bottom; width: 1.47929%; background-color: #d6f3e8; margin-left: 0.1px; height: 18px; padding: 0px;"><br/></td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 11.2426%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 162 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; width: 1.47929%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 11.3905%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 63 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; width: 1.47929%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; width: 72.4852%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33136%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; width: 0.8285%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; width: 10.4141%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,418 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; width: 1.47929%; height: 19px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; width: 1.47929%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; width: 9.91124%; height: 19px; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,893 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; width: 1.47929%; height: 19px; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> 2966000 2768000 949000 793000 341000 269000 162000 63000 4418000 3893000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Other</span><span style="font-family: 'times new roman', times; font-size: 10pt;"> liabilities consist of the following:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; margin: 0px auto; width: 100%; height: 127px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px; width: 72.6331%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 9.91124%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 0.887574%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.33136%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 9.91124%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47493%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.6331%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 26.4749%; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong><span>December 31,</span></strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.6331%;"> <p style="margin: 0pt; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12.2781%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33136%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12.8655%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; width: 72.6331%; height: 18px; margin-left: 0.1px; vertical-align: bottom; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Deferred warranty revenue</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 9.91124%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 135 </span></span></p> </td> <td style="vertical-align: bottom; width: 0.887574%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.33136%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 1.47929%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; width: 9.91124%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 88 </span></p> </td> <td style="vertical-align: bottom; width: 1.47493%; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.6331%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Warranty liability </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.47929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; width: 11.3905%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.887574%; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.33136%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; width: 11.3905%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 46 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1.47493%; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px; margin-left: 0.1px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 72.6331%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 19px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 19px; width: 9.91124%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 177 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 19px; width: 0.887574%; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px; width: 1.33136%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 19px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 19px; width: 9.91124%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 134 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 19px; width: 1.47493%; background-color: #d6f3e8; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> </div> 135000 88000 42000 46000 177000 134000 P3Y <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">A reconciliation of the changes in our estimated warranty liability is as follows:<br/></span></p> <div style="border-left: none; border-right: none;"> <table cellpadding="0" style="border-collapse: collapse; width: 100%; margin-left: 0px; height: 172px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span><strong> </strong><strong> </strong></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020</span> </p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 74%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balance at beginning of period </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; width: 1%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 1%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 10%; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 839 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; width: 1%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 1%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 1%; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; width: 10%; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 798 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; width: 1%; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Accrual for warranties </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,024 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 836 </span></p> </td> <td style="vertical-align: bottom; height: 18px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Warranty revision </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><br/></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(53</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; height: 18px; vertical-align: bottom;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">43</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"/> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Settlements made during the period </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(819</span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (838 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balance at end of period </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">991</span></p> </td> <td style="background-color: #d6f3e8; text-align: left; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 839 </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Current portion of estimated warranty liability</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(949</span></span></p> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (793 </span></p> </td> <td style="padding: 0px; text-align: left; vertical-align: bottom; height: 18px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Long-term estimated warranty liability </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 42 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 46 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding: 0px; text-align: left; vertical-align: bottom; height: 10px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> 839000 798000 1024000 836000 -53000 43000 819000 838000 991000 839000 949000 793000 42000 46000 A reconciliation of the changes in our deferred warranty revenue is as follows:<br/> <table cellpadding="0" style="height: 0px; border-collapse: collapse; width: 100%; margin-left: 0px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span><strong> </strong></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020</span> </p> </td> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 74%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Balance at beginning of period </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 344 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 275 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Revenue deferrals </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 575 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 434 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Amortization of deferred revenue </span></span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(474</span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (365 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total deferred warranty revenue </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 445 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 344 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Current portion of deferred warranty revenue </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(310</span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;" valign="bottom">)</td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (256 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Long-term deferred warranty revenue</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 135 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 88 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; padding: 0px;"> <p style="margin: 0pt;"><span style="font-family: 'Times New Roman'; font-size: 10pt;">  </span></p> </td> </tr> </tbody> </table> 344000 275000 575000 434000 474000 365000 445000 344000 310000 256000 135000 88000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="font-weight: bold;">NOTE</span><span style="font-weight: bold;"> 10</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;">–</span><span style="font-weight: bold;"> </span><span style="font-weight: bold;">INCOME TAXES</span></span></p> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 8pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">Income before income taxes consists of the following:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_3COVZMC4PS00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 87px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Sources of income before income taxes: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 74%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> United States </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">12,741</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">4,876</span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1%; border-bottom-width: 1px;"/> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 2px 2px 2px 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1,754</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,478 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; vertical-align: bottom; padding: 0px; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total income before income taxes </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $  </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14,495 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6,354 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">The provision</span><span style="font-family: 'times new roman', times;"> for income taxes consists of the following:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_ZREZBUS08W00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 157px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 25.0137%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; border-bottom: 1px solid #000000; vertical-align: bottom; height: 10px; width: 12.0153%;" valign="bottom"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 12.0153%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Current: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt;"><br/></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Federal </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">417</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">26</span></span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 1px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> State </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 46 </span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 19 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">298</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000; width: 1.03768%;"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">201</span></p> </td> <td style="border-bottom: 1px solid #000000; vertical-align: bottom; padding: 0px; height: 10px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total current </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $  </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; height: 10px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">761</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 1.03768%;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">246</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; vertical-align: bottom; padding: 0px; height: 10px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Deferred: </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Federal </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: right; height: 10px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">960</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">361</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> State </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">24</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000; width: 1.03768%;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">5</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total deferred </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; height: 10px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">983</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000; width: 1.03768%;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">366</span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 10px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total provision for income taxes</span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 10px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1,744</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 10px; width: 1.03768%;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.8pt double #000000; padding: 0px; height: 10px; width: 0.983069%; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.8pt double #000000; padding: 0px; height: 10px; width: 9.99454%; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">612</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; border-bottom: 2.8pt double #000000; height: 10px; width: 1.03768%; vertical-align: bottom;"><br/></td> </tr> </tbody> </table> </div> </div> <div> <div id="t_ft_TCW5L12FB400000000000000000000b"><br/></div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">A reconciliation of the statutory rate to the effective income tax rate is as follows:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_0KZC7OU4QO00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 223px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="5" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 26.4881%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 10.7143%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 1.93452%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong><span> </span></strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12.6488%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Federal statutory rate </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 21.0 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> % </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 21.0 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> % </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> State income taxes, net of federal benefit </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.3 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.2 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span> Global Intangible Low-Taxed Income (GILTI)/Foreign Derived Intangible Income (FDII)</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(2.9</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2.1 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Share-based compensation </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(3.8</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(7.4</span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1.93452%; border-bottom-width: 1px;"><span style="font-family: 'times new roman', times; font-size: 10pt;">)</span></td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Research and experimentation (R&amp;D) credit </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(2.3</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (3.2 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 16px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; width: 72.0238%; height: 16px; border-bottom-width: 1px;"><span>Foreign tax credit</span></td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33929%; height: 16px; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; text-align: right; width: 10.7143%; height: 16px; border-bottom-width: 1px;">(1.0</td> <td style="padding: 0px; vertical-align: bottom; width: 1.93452%; height: 16px; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.19048%; height: 16px; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; width: 10.7143%; height: 16px; text-align: right; border-bottom-width: 1px;">(2.2</td> <td style="padding: 0px; vertical-align: bottom; width: 1.93452%; height: 16px; border-bottom-width: 1px;">)</td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign rate difference </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(0.4</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(1.1</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;">)</td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Valuation allowance </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">0.5</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; border-bottom-width: 1px;"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(4.2</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; border-bottom-width: 1px;">)</td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; width: 72.0238%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;">Expiring and unrecognized deferred tax attributes </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33929%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; text-align: right; width: 10.7143%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;">—</td> <td style="padding: 0px; vertical-align: bottom; width: 1.93452%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; width: 1.19048%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; text-align: right; width: 10.7143%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;">3.7</td> <td style="vertical-align: bottom; padding: 0px; width: 1.93452%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"><br/></td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other, net </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; height: 10px; width: 10.7143%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.6 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 1.93452%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.7 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Effective tax rate </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 1px double #000000; height: 10px; width: 10.7143%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">12.0</span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px double #000000; height: 10px; width: 1.93452%; background-color: #d6f3e8;"><span style="font-family: 'times new roman', times; font-size: 10pt;">%</span></td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><br/></p> </td> <td style="border-bottom: 1px double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">9.6</span></p> </td> <td style="border-bottom: 1px double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; background-color: #d6f3e8;">%</td> </tr> </tbody> </table> </div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="color: #000000;"><span style="font-family: 'times new roman', times;"><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="color: #000000;"><span style="font-family: 'times new roman', times;">Our effective tax rate in 2021 was favorably impacted by GILTI, FDII, $605,000 of excess tax benefits from employee share-based compensation and favorable benefits from U.S. federal R&amp;D tax credits and foreign tax credits. Our effective tax rate in 2020 was favorably impacted by $497,000 of excess tax benefits from employee share-based compensation and <span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">favorable benefits from U.S. federal R&amp;D tax credits and foreign tax credits, offset in part by </span>GILTI. All of our remaining federal net operating loss carry forwards were fully utilized in 2020.</span></span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">A reconciliation</span><span style="font-family: 'times new roman', times;"> of the beginning and ending amount of gross unrecognized tax benefits (“UTB”) is as follows:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_8PSX5T1UI800000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 181px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; width: 1.55652%; border-bottom-width: 1px;"><br/></td> <td style="vertical-align: middle; height: 19px; width: 10.3495%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.05118%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.4746%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 9.99454%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 0.983069%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt; font-family: 'times new roman', times;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; width: 26.3379%;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt; font-family: 'times new roman', times;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%;"> <p style="margin: 0pt;"><span style="font-size: 8pt; font-weight: bold; font-family: 'times new roman', times;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; width: 12.9572%;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt; font-family: 'times new roman', times;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12.4522%;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt; font-weight: bold; font-family: 'times new roman', times;"> 2020 </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Gross UTB balance at beginning of year </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; width: 1.55652%; vertical-align: bottom; border-bottom-width: 1px;">$</td> <td style="background-color: #d6f3e8; padding: 0px; height: 18px; width: 10.3495%; vertical-align: bottom; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">1,789 </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 1.05118%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 1.4746%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 9.99454%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,761 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Additions based on tax positions related to the current year </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; width: 11.906%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 231</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.05118%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; width: 11.4691%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 137 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Additions for tax positions of prior years </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: right; width: 11.906%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 1.05118%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 11.4691%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">60</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Reductions for tax positions of prior years </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; width: 11.906%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(39</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.05118%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; width: 11.4691%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (169 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.983069%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Gross UTB balance at end of year</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; width: 1.55652%; text-align: left; background-color: #d6f3e8;">$</td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; width: 10.3495%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,982 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; width: 1.05118%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 1.4746%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 9.99454%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,789 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Net UTB balance at end of year </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; width: 1.55652%; text-align: left;">$</td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; width: 10.3495%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 214 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; width: 1.05118%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 1.4746%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 197 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <div> <span style="font-size: 10pt;">The difference between the gross and net ending UTB and the difference between the changes in the gross and net UTB during the year are related to the required netting of UTB balances against positions that have an established deferred tax asset, such as our federal and state R&amp;D tax credits. The increase in our gross UTB balance as of December 31, 2021 was primarily related to federal and state R&amp;D tax credits. The increase in our net UTB at December 31, 2021 is primarily related to various inconsequential state tax matters. The net UTB is a long-term income tax reserve within our consolidated balance sheets. We recognize interest and penalties related to unrecognized tax benefits in tax expense. Accrued interest and penalties on a gross basis and estimated gross interest and penalties included in the above amounts for all years were inconsequential. The gross UTB at December 31, 2021 and 2020, if recognized, would favorably impact our effective tax rate.</span><br/></div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box;">We file income tax returns in the United States and various state and foreign jurisdictions. Our federal income tax returns for years after 2017 are still subject to examination by the Internal Revenue Service. We are no longer subject to state and local income tax examinations for years prior to 2017. </span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="border: 0px; margin: 0px; padding: 0px; box-sizing: border-box;"><br/></span></span></p> <p style="border: 0px; box-sizing: border-box; margin: 0pt; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; line-height: 16px;"><span style="border: 0px; box-sizing: border-box; font-family: 'times new roman', times;"><span style="border: 0px; box-sizing: border-box; font-size: 10pt;">The Inland Revenue Authority of Singapore has initiated a routine compliance review of our 2018 income tax return. We presently anticipate that the outcome of this audit will not have a significant impact on our financial position or results of operations. </span></span><br/></p> <p style="margin: 0px; clear: left; font-family: 'times new roman'; font-size: 10pt;"> </p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">Deferred tax assets and liabilities consist of the following:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_C6TZDXW99C00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 298px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;">December 31, 2021</span></strong></span><br/></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="border-bottom: 1px solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> December 31, 2020 </span></strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> Assets </span></strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Liabilities</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Assets </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Liabilities </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 48%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equipment, leaseholds and intangible amortization, net </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 185 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 230 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 176 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 251 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Operating lease liabilities</span></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"> <p style="text-align: right;">672<br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 17px; border-bottom-width: 1px;"><span>—</span></td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; text-align: right; height: 17px; border-bottom-width: 1px;"><span>839</span></td> <td style="vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; text-align: right; height: 17px; border-bottom-width: 1px;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">—</span></td> <td style="vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> </tr> <tr style="background-color: #d6f3e8; height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Right-of-use assets (operating leases)</span></td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"> <p style="text-align: right;"><span>—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"> <p>369<br/></p> </td> <td style="padding: 0px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; text-align: right; height: 17px; border-bottom-width: 1px;"><span>—</span></td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; text-align: right; height: 17px; border-bottom-width: 1px;"><span>478</span></td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Inventory allowances </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 550 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 20 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 549 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Accrued expenses </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 130 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 129 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Warranty accrual </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 214 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 182 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Deferred revenue </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 312 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 214 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Federal and state tax credits </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,992 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,960 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">State net operating loss carry forwards </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 233 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 275 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Share-based compensation </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 361 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 358 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other, net </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 131 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 113 </span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">50</span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Subtotal </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,780 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 619 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6,795 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 784 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Valuation allowance </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,493</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;">)</td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,414 </span></p> </td> <td style="padding-bottom: 1.5pt; padding-right: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total deferred tax assets and liabilities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,287 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 619 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,381 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 784 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">    </span></p> </td> </tr> </tbody> </table> </div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="border: 0px; box-sizing: border-box; margin: 0pt; color: #333333; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; line-height: 16px;"><span style="border: 0px; box-sizing: border-box; font-family: 'times new roman', times; font-size: 10pt; color: #000000;">We have significant deferred tax assets as a result of temporary differences between the taxable income on our tax returns and U.S. GAAP income, R&amp;D tax credit carry forwards and state net operating loss carry forwards. A deferred tax asset generally represents future tax benefits to be received when temporary differences previously reported in our consolidated financial statements become deductible for income tax purposes, when net operating loss carry forwards could be applied against future taxable income, or when tax credit carry forwards are utilized on our tax returns. We assess the realizability of our deferred tax assets and the need for a valuation allowance based on the guidance provided in current financial accounting standards.  </span></p> <p style="border: 0px; box-sizing: border-box; margin: 0px; color: #333333; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; clear: left; font-family: 'times new roman';"><span style="color: #000000;"> </span></p> <p style="border: 0px; box-sizing: border-box; margin: 0pt; color: #333333; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; line-height: 16px;"><span style="border: 0px; box-sizing: border-box; font-family: 'times new roman', times; font-size: 10pt; color: #000000;">Significant judgment is required in determining the realizability of our deferred tax assets. The assessment of whether valuation allowances are required considers, among other matters, the nature, frequency and severity of any current and cumulative losses, forecasts of future profitability, the duration of statutory carry forward periods, our experience with loss carry forwards not expiring unused and tax planning alternatives. <span style="border: 0px; box-sizing: border-box; font-size: 10pt;">In analyzing the need for valuation allowances, we first considered our history of cumulative operating results for income tax purposes over the past </span><span style="border: 0px; box-sizing: border-box; font-size: 10pt;"><span style="border: 0px; box-sizing: border-box;">three years</span></span><span style="border: 0px; box-sizing: border-box; font-size: 10pt;"> in each of the tax jurisdictions in which we operate, our financial performance in recent quarters, statutory carry forward periods and tax planning alternatives. In addition, we considered both our near-term and long-term financial outlook. After considering all available evidence (both positive and negative), we concluded that recognition of valuation allowances for substantially all of our U.S. and Singapore based deferred tax assets was not required at December 31, 2021 or December 31, 2020. Our valuation allowances at December 31, 2021 and December 31, 2020 mainly relate to state R&amp;D tax credits and net operating loss carry forwards. The valuation<span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> allowance recorded against our deferred tax assets at December 31, 2021 was increased by $79,000, mainly </span><span style="color: #000000; font-family: 'times new roman', times; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-size: 13.3333px; float: none; display: inline !important;">for state R&amp;D tax credits that we do not expect to use</span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">.<span> </span></span></span></span><span style="font-family: 'times new roman', times; color: #000000;"><span><span style="font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">The valuation allowance recorded against our deferred tax assets at December 31, 2020 was reduced by $265,000</span><span style="font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">, mainly for U.S. federal R&amp;D tax credits that were used or expired. </span>At December 31, 2021, we have federal R&amp;D tax credit carry forwards of approximately $</span><span style="font-size: 10pt;">3.0</span><span> million that will begin to expire in 2027</span><span>, if unused.</span></span></p> <p style="border: 0px; box-sizing: border-box; margin: 0pt; color: #333333; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; line-height: 16px;"><span style="font-family: 'times new roman', times; color: #000000;"><span><br/></span></span></p> <div> <span style="font-size: 10pt;">We determine on a regular basis the amount of undistributed earnings that will be reinvested in our non-U.S. operations. This assessment is based on our fiscal objectives and the working capital requirements for each of our foreign subsidiaries. The Tax Cuts and Jobs Act provides for a </span>100<span style="font-size: 10pt;">% dividends-received-deduction for foreign-source dividends received from 10% or more owned foreign corporations. Additionally, our foreign income is subject to Subpart F, GILTI and is eligible for foreign tax credits. The tax jurisdictions for the vast majority of our foreign operations do not impose a withholding tax. For these reasons, we have not recognized a deferred tax liability for the unremitted earnings of any of our foreign subsidiaries. Determination of the amount of any deferred income or withholding tax liability is not practicable because of the complexities of the hypothetical calculation.</span><br/></div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span style="font-family: 'times new roman', times; color: #000000;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Cash</span><span style="font-family: 'times new roman', times; font-size: 10pt;"> payments for income taxes, net of refunds received, were $</span>628,000<span style="font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;"> in 2021 and </span>$59,000 in 2020.</span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">Income before income taxes consists of the following:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_3COVZMC4PS00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 87px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Sources of income before income taxes: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 74%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> United States </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">12,741</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">4,876</span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1%; border-bottom-width: 1px;"/> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 2px 2px 2px 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1,754</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,478 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; vertical-align: bottom; padding: 0px; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total income before income taxes </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $  </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14,495 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6,354 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> 12741000 4876000 1754000 1478000 14495000 6354000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">The provision</span><span style="font-family: 'times new roman', times;"> for income taxes consists of the following:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_ZREZBUS08W00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 157px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 25.0137%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; border-bottom: 1px solid #000000; vertical-align: bottom; height: 10px; width: 12.0153%;" valign="bottom"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 12.0153%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Current: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt;"><br/></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Federal </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">417</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">26</span></span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 1px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> State </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 46 </span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 19 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">298</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000; width: 1.03768%;"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">201</span></p> </td> <td style="border-bottom: 1px solid #000000; vertical-align: bottom; padding: 0px; height: 10px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total current </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $  </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; height: 10px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">761</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 1.03768%;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">246</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; vertical-align: bottom; padding: 0px; height: 10px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Deferred: </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Federal </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: right; height: 10px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">960</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">361</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> State </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 1.03768%;" valign="bottom">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; border-bottom-width: 1px; width: 1.03768%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">24</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000; width: 1.03768%;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 10.9776%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">5</span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total deferred </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; height: 10px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">983</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom: 1px solid #000000; width: 1.03768%;" valign="bottom"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; border-bottom-width: 1px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">366</span></p> </td> <td style="border-bottom: 1px solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 1.03768%;"/> </tr> <tr style="height: 10px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 15pt; vertical-align: bottom; height: 10px; width: 73.9487%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total provision for income taxes</span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 10px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 10px; width: 9.99454%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1,744</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 10px; width: 1.03768%;" valign="bottom"/> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 10px; width: 0.983069%;" valign="bottom"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.8pt double #000000; padding: 0px; height: 10px; width: 0.983069%; vertical-align: bottom;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.8pt double #000000; padding: 0px; height: 10px; width: 9.99454%; vertical-align: bottom;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">612</span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; border-bottom: 2.8pt double #000000; height: 10px; width: 1.03768%; vertical-align: bottom;"><br/></td> </tr> </tbody> </table> </div> </div> 417000 26000 46000 19000 298000 201000 761000 246000 960000 361000 -1000 0 24000 5000 983000 366000 1744000 612000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">A reconciliation of the statutory rate to the effective income tax rate is as follows:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_0KZC7OU4QO00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 223px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="5" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 26.4881%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 10.7143%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 1.93452%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong><span> </span></strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12.6488%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Federal statutory rate </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 21.0 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: left;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> % </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 21.0 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> % </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> State income taxes, net of federal benefit </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.3 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.2 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span> Global Intangible Low-Taxed Income (GILTI)/Foreign Derived Intangible Income (FDII)</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(2.9</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2.1 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Share-based compensation </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(3.8</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(7.4</span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1.93452%; border-bottom-width: 1px;"><span style="font-family: 'times new roman', times; font-size: 10pt;">)</span></td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> Research and experimentation (R&amp;D) credit </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(2.3</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (3.2 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 16px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; width: 72.0238%; height: 16px; border-bottom-width: 1px;"><span>Foreign tax credit</span></td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33929%; height: 16px; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; text-align: right; width: 10.7143%; height: 16px; border-bottom-width: 1px;">(1.0</td> <td style="padding: 0px; vertical-align: bottom; width: 1.93452%; height: 16px; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; width: 1.19048%; height: 16px; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; width: 10.7143%; height: 16px; text-align: right; border-bottom-width: 1px;">(2.2</td> <td style="padding: 0px; vertical-align: bottom; width: 1.93452%; height: 16px; border-bottom-width: 1px;">)</td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Foreign rate difference </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 18px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(0.4</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 10.7143%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(1.1</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.93452%; background-color: #d6f3e8; border-bottom-width: 1px;">)</td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Valuation allowance </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">0.5</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; border-bottom-width: 1px;"/> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">(4.2</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; border-bottom-width: 1px;">)</td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; width: 72.0238%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;">Expiring and unrecognized deferred tax attributes </td> <td style="padding: 1.5pt; vertical-align: bottom; width: 1.33929%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; text-align: right; width: 10.7143%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;">—</td> <td style="padding: 0px; vertical-align: bottom; width: 1.93452%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; width: 1.19048%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; text-align: right; width: 10.7143%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;">3.7</td> <td style="vertical-align: bottom; padding: 0px; width: 1.93452%; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"><br/></td> </tr> <tr style="height: 10px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 10px; width: 72.0238%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other, net </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; height: 10px; width: 10.7143%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.6 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 1.93452%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 0.7 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 10px; width: 1.93452%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 72.0238%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Effective tax rate </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.33929%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 1px double #000000; height: 10px; width: 10.7143%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">12.0</span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 1px double #000000; height: 10px; width: 1.93452%; background-color: #d6f3e8;"><span style="font-family: 'times new roman', times; font-size: 10pt;">%</span></td> <td style="padding: 0px; vertical-align: bottom; height: 10px; width: 1.19048%; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><br/></p> </td> <td style="border-bottom: 1px double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 10.7143%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">9.6</span></p> </td> <td style="border-bottom: 1px double #000000; border-top: 0.75pt solid #000000; padding: 0px; vertical-align: bottom; height: 10px; width: 1.93452%; background-color: #d6f3e8;">%</td> </tr> </tbody> </table> </div> </div> 0.21 0.21 0.003 0.002 -0.029 0.021 -0.038 -0.074 0.023 0.032 0.01 0.022 -0.004 -0.011 0.005 -0.042 0 0.037 0.006 0.007 0.12 0.096 -605000 -497000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">A reconciliation</span><span style="font-family: 'times new roman', times;"> of the beginning and ending amount of gross unrecognized tax benefits (“UTB”) is as follows:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_8PSX5T1UI800000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 181px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; width: 1.55652%; border-bottom-width: 1px;"><br/></td> <td style="vertical-align: middle; height: 19px; width: 10.3495%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.05118%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 1.4746%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 9.99454%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; width: 0.983069%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt; font-family: 'times new roman', times;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; width: 26.3379%;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt; font-family: 'times new roman', times;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%;"> <p style="margin: 0pt;"><span style="font-size: 8pt; font-weight: bold; font-family: 'times new roman', times;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; width: 12.9572%;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt; font-family: 'times new roman', times;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-size: 8pt; font-family: 'times new roman', times;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12.4522%;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt; font-weight: bold; font-family: 'times new roman', times;"> 2020 </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Gross UTB balance at beginning of year </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; width: 1.55652%; vertical-align: bottom; border-bottom-width: 1px;">$</td> <td style="background-color: #d6f3e8; padding: 0px; height: 18px; width: 10.3495%; vertical-align: bottom; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">1,789 </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 1.05118%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 1.4746%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 9.99454%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,761 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Additions based on tax positions related to the current year </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; width: 11.906%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 231</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.05118%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; width: 11.4691%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 137 </span></p> </td> <td style="vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Additions for tax positions of prior years </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; text-align: right; width: 11.906%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">1</span></span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 1.05118%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 0px; vertical-align: bottom; height: 18px; width: 11.4691%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">60</span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Reductions for tax positions of prior years </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; text-align: right; width: 11.906%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(39</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 1.05118%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;">)</td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 0px; vertical-align: bottom; height: 18px; width: 11.4691%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (169 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.983069%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Gross UTB balance at end of year</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; width: 1.55652%; text-align: left; background-color: #d6f3e8;">$</td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; width: 10.3495%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,982 </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; width: 1.05118%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 1.4746%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 9.99454%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,789 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 71.4364%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Net UTB balance at end of year </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.69306%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; width: 1.55652%; text-align: left;">$</td> <td style="padding: 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 18px; width: 10.3495%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 214 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 18px; width: 1.05118%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; width: 0.928455%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 1.4746%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 0px; vertical-align: bottom; height: 18px; width: 9.99454%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 197 </span></span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; padding: 0px; height: 18px; width: 0.983069%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> 1789000 1761000 231000 137000 1000 60000 39000 169000 1982000 1789000 214000 197000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;">Deferred tax assets and liabilities consist of the following:</span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_C6TZDXW99C00000000000000000000"> <table cellpadding="0" style="border-collapse: collapse; margin-left: 0pt; width: 100%; height: 298px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 19px;"> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> <td style="vertical-align: middle; height: 19px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;">December 31, 2021</span></strong></span><br/></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="border-bottom: 1px solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> December 31, 2020 </span></strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-size: 8pt;"><strong><span style="font-family: 'times new roman', times;"> Assets </span></strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Liabilities</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Assets </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> Liabilities </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 48%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Equipment, leaseholds and intangible amortization, net </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 185 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 230 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 176 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 10%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 251 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; width: 1%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Operating lease liabilities</span></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"> <p style="text-align: right;">672<br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 17px; border-bottom-width: 1px;"><span>—</span></td> <td style="padding: 0px; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; text-align: right; height: 17px; border-bottom-width: 1px;"><span>839</span></td> <td style="vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; text-align: right; height: 17px; border-bottom-width: 1px;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">—</span></td> <td style="vertical-align: bottom; height: 17px; border-bottom-width: 1px;"><br/></td> </tr> <tr style="background-color: #d6f3e8; height: 17px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Right-of-use assets (operating leases)</span></td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"> <p style="text-align: right;"><span>—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 0px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px 2px 2px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 2px 0px; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"> <p>369<br/></p> </td> <td style="padding: 0px; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; text-align: right; height: 17px; border-bottom-width: 1px;"><span>—</span></td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; text-align: right; height: 17px; border-bottom-width: 1px;"><span>478</span></td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 17px; border-bottom-width: 1px;"><br/></td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Inventory allowances </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 550 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 20 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 549 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Accrued expenses </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 130 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 129 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Warranty accrual </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 214 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 182 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Deferred revenue </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 312 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 214 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Federal and state tax credits </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,992 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,960 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">State net operating loss carry forwards </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 233 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 275 </span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Share-based compensation </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 361 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 358 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 10px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other, net </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 131 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 113 </span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">50</span></p> </td> <td style="vertical-align: bottom; height: 10px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Subtotal </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,780 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 619 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6,795 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 784 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Valuation allowance </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">(1,493</span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;">)</td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; text-align: right; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">—</span><br/></p> </td> <td style="padding: 0px; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> (1,414 </span></p> </td> <td style="padding-bottom: 1.5pt; padding-right: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> ) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">—</span></p> </td> <td style="vertical-align: bottom; height: 18px; background-color: #d6f3e8; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total deferred tax assets and liabilities </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 4,287 </span></span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 619 </span></span></p> </td> <td style="padding: 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,381 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 784 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">    </span></p> </td> </tr> </tbody> </table> </div> </div> 185000 230000 176000 251000 672000 839000 369000 478000 550000 20000 549000 5000 130000 129000 214000 182000 312000 214000 2992000 3960000 233000 275000 361000 358000 131000 0 113000 50000 5780000 619000 6795000 784000 1493000 1414000 4287000 619000 5381000 784000 P3Y 79000 -265000 3000000 628000 59000 <div style="border-left: none; border-right: none;"> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; font-weight: bold;">NOTE 11</span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">–</span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">OPERATING LEASES</span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We lease a</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">61,208 square foot mixed office and warehouse facility in Golden Valley, Minnesota. The lease has a term of</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">91 months and expires on</span><span style="font-size: 10pt;"> July 31, 2026</span><span style="font-size: 10pt;">. The lease contains a rent escalation clause,</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">one <span style="border-left: none; border-right: none;"><span style="border-right: none; border-left: none;"><span>three year</span></span><span> </span></span>renewal option and incentives.</span><span style="font-size: 10pt;"> Rental expense, including the effects of lease incentives, is recognized on a straight-line basis over the term of the lease. We did not include the renewal option in our accounting for the lease because it is not reasonably certain that we will exercise the option. We are also required to pay insurance, property taxes and other operating expenses related to the leased facility, which are not fixed or tied to an index.</span></span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;"><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">In February 2020, we finalized a new lease for our existing 19,805 square foot mixed office and warehouse facility in Singapore, which serves as a sales, development and final assembly and integration facility for our inspection and metrology system products. The new lease does not contain any incentives or renewal options and runs through July 2023. We</span></span><span style="font-size: 10pt;"><span style="font-family: 'times new roman', times; color: #000000;"><span style="font-family: 'times new roman', times; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; border: 0px; box-sizing: border-box;"> also have operating leases for small facilities in Taiwan, the United Kingdom and China which expire in June 2023, May 2023 and November 2022, respectively. Effective January 2022, we have an operating lease for a small facility in Malaysia which expires in December 2023.</span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; color: #000000;"><span style="font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; border: 0px; box-sizing: border-box;">The components of our costs for operating leases are as follows:</span></span></span></p> <div id="t_ft_9HIWF8STIO00000000000000000000b"> <table border="0" cellpadding="0" style="width: 99.796%; border-collapse: collapse; height: 80px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 12px;"> <td style="padding: 0.75pt; height: 12px; width: 68.0109%;"><br/></td> <td style="padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td colspan="3" style="padding: 0.75pt; height: 12px; width: 15%;"/> <td style="padding: 0.75pt; height: 12px; width: 0.980926%;"/> <td style="padding: 0.75pt; width: 1.25346%; height: 12px;"><br/></td> <td style="padding: 0.75pt; height: 12px; width: 13.7329%;"/> </tr> <tr style="height: 10px;"> <td style="padding: 0.75pt; height: 10px; width: 68.0109%;"/> <td style="padding: 0.75pt; height: 10px; width: 1.03542%;"/> <td colspan="3" style="padding: 0.75pt; height: 10px; text-align: center; width: 15%;" valign="bottom"><strong style="color: #000000; font-family: 'Times New Roman', serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-size: 8.0pt;">Year Ended</span></strong></td> <td style="padding: 0.75pt; height: 10px; width: 0.980926%;"/> <td style="padding: 0.75pt; width: 1.25346%; height: 10px;"><br/></td> <td style="padding: 0.75pt; height: 10px; width: 13.7329%;" valign="bottom"> <p style="text-align: center; margin-right: 0in; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong><span style="font-size: 8.0pt;"> Year Ended</span></strong></p> </td> </tr> <tr style="height: 10px;"> <td style="border-top: none; border-right: none; border-left: none; border-image: initial; border-bottom: 1pt solid black; padding: 0.75pt; height: 10px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong><span style="font-size: 8.0pt;">Component (in thousands)</span></strong><span style="font-size: 10.0pt;"/></p> </td> <td style="padding: 0.75pt; height: 10px; border-bottom: 1pt solid #000000; width: 1.03542%;"/> <td colspan="3" style="border-top: none; border-right: none; border-left: none; border-image: initial; padding: 0.75pt; height: 10px; border-bottom: 1pt solid #000000; width: 15%; text-align: center;"><span style="color: #000000; font-family: 'times new roman'; font-size: 10.6667px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">December 31, 2021</span></td> <td style="padding: 0.75pt; height: 10px; border-bottom: 1pt solid #000000; width: 0.980926%;"/> <td style="border-top: none; border-right: none; border-left: none; border-image: initial; border-bottom: 1pt solid black; padding: 0.75pt; text-align: center; width: 1.25346%; height: 10px;"><br/></td> <td style="border-top: none; border-right: none; border-left: none; border-image: initial; border-bottom: 1pt solid black; padding: 1px 0px; height: 10px; text-align: center; width: 13.7329%;"><span style="font-weight: bold; font-size: 8pt;">December 31, 2020</span></td> </tr> <tr style="height: 12px;"> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   Operating lease cost </span></p> </td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></p> </td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 13%;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">742</span></span></p> </td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1%;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 0.980926%; text-align: right;"><br/></td> <td style="background: #d6f3e8; padding: 0.75pt; text-align: right; width: 1.25346%; height: 12px;">$</td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; text-align: right; width: 13.7329%;">723</td> </tr> <tr style="height: 12px;"> <td style="padding: 0.75pt; height: 12px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   Variable lease cost </span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td style="padding: 0.75pt; height: 12px; width: 1%;"/> <td style="padding: 0.75pt; height: 12px; width: 13%;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">269</span></span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 1%;"/> <td style="padding: 0.75pt; height: 12px; width: 0.980926%;"/> <td style="padding: 0.75pt; text-align: right; width: 1.25346%; height: 12px;"><br/></td> <td style="padding: 0.75pt; height: 12px; text-align: right; width: 13.7329%;">272</td> </tr> <tr style="height: 12px;"> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   Short-term lease cost </span></p> </td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 13%; border-bottom: 1pt solid #000000; text-align: right;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">39</span></span></td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1%;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 0.980926%;"/> <td style="background: #d6f3e8; padding: 0.75pt; text-align: right; width: 1.25346%; height: 12px;"><br/></td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; text-align: right; width: 13.7329%;">38</td> </tr> <tr style="height: 12px;"> <td style="padding: 0.75pt; height: 12px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   Total </span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td style="padding: 0.75pt; height: 12px; width: 1%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 13%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">1,050</span></span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 1%;"/> <td style="padding: 0.75pt; height: 12px; width: 0.980926%; text-align: right;"><br/></td> <td style="border-top: 1pt solid black; border-left: none; border-bottom: 2.25pt double black; border-right: none; padding: 0.75pt; text-align: right; width: 1.25346%; height: 12px;">$</td> <td style="border-top: 1pt solid black; border-left: none; border-bottom: 2.25pt double black; border-right: none; padding: 0.75pt; height: 12px; text-align: right; width: 13.7329%;">1,033</td> </tr> </tbody> </table> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; color: #000000;"><span style="font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; border: 0px; box-sizing: border-box;">Variable lease costs generally consists of real estate taxes and insurance for leased facilities, which are paid based on actual costs incurred by the lessor.  </span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; color: #000000;"><span style="font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; border: 0px; box-sizing: border-box;"><br/></span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="border-left: none; border-right: none;">At December 31, 2021, the future maturities of lease liabilities are as follows:</span></span></p> <table cellpadding="0" style="height: 197px; border-collapse: collapse; width: 100%; margin-left: 0px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px; width: 84.3195%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 12.8698%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 84.3195%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Twelve months ending December 31, </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 15.8284%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> <span style="border-left: none; border-right: none;">2022</span></span></p> </td> <td style="border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 12.8698%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,016 </span></span></p> </td> <td style="border-top: 0.75pt solid #000000; vertical-align: bottom; height: 18px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> <span style="border-left: none; border-right: none;">2023</span></span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 14.3491%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 873 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> <span style="border-left: none; border-right: none;">2024</span></span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; height: 18px; margin-left: 0.1px; vertical-align: bottom; width: 14.3491%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 658 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="border-left: none; border-right: none;">2025</span></span></td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; height: 18px; text-align: right; vertical-align: bottom; width: 14.3491%;"><span><span style="border-left: none; border-right: none; font-family: 'times new roman', times; font-size: 10pt;">674</span></span></td> <td style="vertical-align: bottom; height: 18px; width: 1.47929%;"><br/></td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> <span style="border-left: none; border-right: none;">2026</span></span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 14.3491%; border-bottom: 1px solid #000000; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 403 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1.47929%; border-bottom: 1px solid #000000; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 19px; width: 84.3195%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total lease payments </span></p> </td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px; width: 12.8698%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,624</span></span></p> </td> <td style="vertical-align: bottom; height: 19px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'Times New Roman'; font-size: 10pt;">    </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 39px; vertical-align: bottom; height: 17px; width: 84.3195%; background-color: #d6f3e8;">Less: amount representing interest</td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; width: 1.47929%; background-color: #d6f3e8;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; text-align: right; height: 17px; width: 12.8698%; background-color: #d6f3e8;">391</td> <td style="vertical-align: bottom; height: 17px; width: 1.47929%; background-color: #d6f3e8;"><br/></td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9px; vertical-align: bottom; height: 17px; width: 84.3195%;">Present value of operating lease liabilities</td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; width: 1.47929%;">$</td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; text-align: right; width: 12.8698%;">3,233</td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 17px; width: 1.47929%;"><br/></td> </tr> </tbody> </table> </div> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> </span></p> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">At December 31, 2021, the weighted average remaining term of our operating leases was 4.02 years, and the weighted average discount rate applied to our operating leases was 5.31%. At December 31, 2020, the weighted average remaining term of our operating leases was 4.85 years, and the weighted average discount rate applied to our operating leases was 5.2%.</span></span></p> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><br/></span></span></p> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Cash paid for amounts included in the measurement of operating lease liabilit<span>ies was $</span>1.0<span> million in</span> 2021 and $975,000 in 2020. <span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Operating lease liabilities and right-of-use assets were increased for new non-cash leases by </span><span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$941,000 in 2020. </span></span></span></p> 61208 P91M 1 P3Y 19805 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; color: #000000;"><span style="font-size: 10pt;"><span style="font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; border: 0px; box-sizing: border-box;">The components of our costs for operating leases are as follows:</span></span></span></p> <div id="t_ft_9HIWF8STIO00000000000000000000b"> <table border="0" cellpadding="0" style="width: 99.796%; border-collapse: collapse; height: 80px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 12px;"> <td style="padding: 0.75pt; height: 12px; width: 68.0109%;"><br/></td> <td style="padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td colspan="3" style="padding: 0.75pt; height: 12px; width: 15%;"/> <td style="padding: 0.75pt; height: 12px; width: 0.980926%;"/> <td style="padding: 0.75pt; width: 1.25346%; height: 12px;"><br/></td> <td style="padding: 0.75pt; height: 12px; width: 13.7329%;"/> </tr> <tr style="height: 10px;"> <td style="padding: 0.75pt; height: 10px; width: 68.0109%;"/> <td style="padding: 0.75pt; height: 10px; width: 1.03542%;"/> <td colspan="3" style="padding: 0.75pt; height: 10px; text-align: center; width: 15%;" valign="bottom"><strong style="color: #000000; font-family: 'Times New Roman', serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="font-size: 8.0pt;">Year Ended</span></strong></td> <td style="padding: 0.75pt; height: 10px; width: 0.980926%;"/> <td style="padding: 0.75pt; width: 1.25346%; height: 10px;"><br/></td> <td style="padding: 0.75pt; height: 10px; width: 13.7329%;" valign="bottom"> <p style="text-align: center; margin-right: 0in; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong><span style="font-size: 8.0pt;"> Year Ended</span></strong></p> </td> </tr> <tr style="height: 10px;"> <td style="border-top: none; border-right: none; border-left: none; border-image: initial; border-bottom: 1pt solid black; padding: 0.75pt; height: 10px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><strong><span style="font-size: 8.0pt;">Component (in thousands)</span></strong><span style="font-size: 10.0pt;"/></p> </td> <td style="padding: 0.75pt; height: 10px; border-bottom: 1pt solid #000000; width: 1.03542%;"/> <td colspan="3" style="border-top: none; border-right: none; border-left: none; border-image: initial; padding: 0.75pt; height: 10px; border-bottom: 1pt solid #000000; width: 15%; text-align: center;"><span style="color: #000000; font-family: 'times new roman'; font-size: 10.6667px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: bold; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">December 31, 2021</span></td> <td style="padding: 0.75pt; height: 10px; border-bottom: 1pt solid #000000; width: 0.980926%;"/> <td style="border-top: none; border-right: none; border-left: none; border-image: initial; border-bottom: 1pt solid black; padding: 0.75pt; text-align: center; width: 1.25346%; height: 10px;"><br/></td> <td style="border-top: none; border-right: none; border-left: none; border-image: initial; border-bottom: 1pt solid black; padding: 1px 0px; height: 10px; text-align: center; width: 13.7329%;"><span style="font-weight: bold; font-size: 8pt;">December 31, 2020</span></td> </tr> <tr style="height: 12px;"> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   Operating lease cost </span></p> </td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></p> </td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 13%;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">742</span></span></p> </td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1%;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 0.980926%; text-align: right;"><br/></td> <td style="background: #d6f3e8; padding: 0.75pt; text-align: right; width: 1.25346%; height: 12px;">$</td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; text-align: right; width: 13.7329%;">723</td> </tr> <tr style="height: 12px;"> <td style="padding: 0.75pt; height: 12px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   Variable lease cost </span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td style="padding: 0.75pt; height: 12px; width: 1%;"/> <td style="padding: 0.75pt; height: 12px; width: 13%;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">269</span></span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 1%;"/> <td style="padding: 0.75pt; height: 12px; width: 0.980926%;"/> <td style="padding: 0.75pt; text-align: right; width: 1.25346%; height: 12px;"><br/></td> <td style="padding: 0.75pt; height: 12px; text-align: right; width: 13.7329%;">272</td> </tr> <tr style="height: 12px;"> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   Short-term lease cost </span></p> </td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1%; border-bottom-width: 1pt; border-bottom-style: solid; border-bottom-color: #000000;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 13%; border-bottom: 1pt solid #000000; text-align: right;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">39</span></span></td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 1%;"/> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; width: 0.980926%;"/> <td style="background: #d6f3e8; padding: 0.75pt; text-align: right; width: 1.25346%; height: 12px;"><br/></td> <td style="background: #d6f3e8; padding: 0.75pt; height: 12px; text-align: right; width: 13.7329%;">38</td> </tr> <tr style="height: 12px;"> <td style="padding: 0.75pt; height: 12px; width: 68.0109%;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-size: 10.0pt;">   Total </span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 1.03542%;"/> <td style="padding: 0.75pt; height: 12px; width: 1%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="color: #000000; font-family: 'times new roman'; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 13%; border-bottom-width: 2.8pt; border-bottom-style: double; border-bottom-color: #000000;"> <p style="text-align: right; margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;">1,050</span></span></p> </td> <td style="padding: 0.75pt; height: 12px; width: 1%;"/> <td style="padding: 0.75pt; height: 12px; width: 0.980926%; text-align: right;"><br/></td> <td style="border-top: 1pt solid black; border-left: none; border-bottom: 2.25pt double black; border-right: none; padding: 0.75pt; text-align: right; width: 1.25346%; height: 12px;">$</td> <td style="border-top: 1pt solid black; border-left: none; border-bottom: 2.25pt double black; border-right: none; padding: 0.75pt; height: 12px; text-align: right; width: 13.7329%;">1,033</td> </tr> </tbody> </table> </div> 742000 723000 269000 272000 39000 38000 1050000 1033000 At December 31, 2021, the future maturities of lease liabilities are as follows: <table cellpadding="0" style="height: 197px; border-collapse: collapse; width: 100%; margin-left: 0px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px; width: 84.3195%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 12.8698%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 84.3195%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;">Twelve months ending December 31, </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 15.8284%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> <span style="border-left: none; border-right: none;">2022</span></span></p> </td> <td style="border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 12.8698%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,016 </span></span></p> </td> <td style="border-top: 0.75pt solid #000000; vertical-align: bottom; height: 18px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> <span style="border-left: none; border-right: none;">2023</span></span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 14.3491%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 873 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> <span style="border-left: none; border-right: none;">2024</span></span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; height: 18px; margin-left: 0.1px; vertical-align: bottom; width: 14.3491%; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 658 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1.47929%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span style="border-left: none; border-right: none;">2025</span></span></td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; height: 18px; text-align: right; vertical-align: bottom; width: 14.3491%;"><span><span style="border-left: none; border-right: none; font-family: 'times new roman', times; font-size: 10pt;">674</span></span></td> <td style="vertical-align: bottom; height: 18px; width: 1.47929%;"><br/></td> </tr> <tr style="height: 18px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 84.3195%; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> <span style="border-left: none; border-right: none;">2026</span></span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 14.3491%; border-bottom: 1px solid #000000; background-color: #d6f3e8;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 403 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1.47929%; border-bottom: 1px solid #000000; background-color: #d6f3e8;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 19px; width: 84.3195%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total lease payments </span></p> </td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px; width: 12.8698%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,624</span></span></p> </td> <td style="vertical-align: bottom; height: 19px; width: 1.47929%;"> <p style="margin: 0pt;"><span style="font-family: 'Times New Roman'; font-size: 10pt;">    </span></p> </td> </tr> <tr style="height: 17px; background-color: #d6f3e8;"> <td style="padding: 1.5pt 1.5pt 1.5pt 39px; vertical-align: bottom; height: 17px; width: 84.3195%; background-color: #d6f3e8;">Less: amount representing interest</td> <td style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; width: 1.47929%; background-color: #d6f3e8;"><br/></td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; text-align: right; height: 17px; width: 12.8698%; background-color: #d6f3e8;">391</td> <td style="vertical-align: bottom; height: 17px; width: 1.47929%; background-color: #d6f3e8;"><br/></td> </tr> <tr style="height: 17px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9px; vertical-align: bottom; height: 17px; width: 84.3195%;">Present value of operating lease liabilities</td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; width: 1.47929%;">$</td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 17px; text-align: right; width: 12.8698%;">3,233</td> <td style="border-bottom: 2.25pt double #000000; border-top: 0.75pt solid #000000; vertical-align: bottom; height: 17px; width: 1.47929%;"><br/></td> </tr> </tbody> </table> 1016000 873000 658000 674000 403000 3624000 391000 3233000 P4Y7D 0.0531 P4Y10M6D 0.052 1000000 975000 941000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; font-weight: bold;">NOTE</span></span><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; font-weight: bold;"> 12</span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">–</span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">401(K) AND OTHER DEFINED CONTRIBUTION PLANS<br/><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We have a retirement savings plan pursuant to Section 401(k) of the Internal Revenue Code (Code), under which eligible employees may contribute a portion of their earnings, not to exceed annual amounts allowed under the Code. In addition, we may also make contributions at the discretion of the Board of Directors. We provided matching contributions to employees totaling $323,000 in 2021</span><span style="font-size: 10pt;"> and </span><span style="font-size: 10pt;">$303,000 in</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">2020.</span></span><span style="font-size: 10pt;"><br/><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt;">We also contribute to defined contribution retirement savings plans on behalf of our employees in the United Kingdom and Taiwan. We made contributions to these plans totaling <span style="color: #000000; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$50,000 in 2021 and</span></span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">$39,000 in</span><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><span style="border-left: none; border-right: none;">2020.</span></span></span></p> 323000 303000 50000 39000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span><span style="font-weight: bold;">NOTE <span style="border-left: none; border-right: none;">13</span></span><span style="font-weight: bold;"> </span><span style="font-weight: bold;">–</span><span style="font-weight: bold;"> </span></span><span style="font-weight: bold;"><span>REVENUE CONCENTRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS</span><br/><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The following summarizes our revenue by product line: <br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_UMH62EYYR400000000000000000000b"> <table cellpadding="0" style="height: 109px; border-collapse: collapse; width: 100%; margin-left: 0px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px; border-bottom-width: 1px; width: 73.8986%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="vertical-align: middle; height: 18px; border-bottom: 1px solid #000000; width: 24.9975%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">  <strong style="color: #000000; font-family: 'times new roman', times; font-size: 10.6667px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Year Ended<span> </span><span>December 31,</span></strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.8986%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 12%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 73.8986%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> High precision 3D and 2D sensors </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;"> 25,941 </span></span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span>   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span>   </span></p> </td> <td style="background-color: #d6f3e8; padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span> $ </span></p> </td> <td style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 17,522 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 73.8986%;"> <p style="margin: 0pt;"><span> Inspection and metrology systems </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;"> 42,958 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 11%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 37,547 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 73.8986%;"> <p style="margin: 0pt;"><span> Semiconductor sensors </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 23,875 </span></span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 11%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 15,048 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; height: 19px; margin-left: 0.1px; vertical-align: bottom; width: 73.8986%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total </span></p> </td> <td style="padding: 1.5pt; height: 19px; margin-left: 0.1px; vertical-align: bottom; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; border-top: 1pt solid #000000; border-bottom: 2.8pt double #000000; height: 19px; margin-left: 0.1px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 1.5pt; border-bottom: 2.8pt double #000000; height: 19px; text-align: right; vertical-align: bottom; margin-left: 0.1px; border-top: 1pt solid #000000; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 92,774 </span></span></p> </td> <td style="padding: 1.5pt; border-bottom: 2.8pt double #000000; height: 19px; margin-left: 0.1px; text-align: right; vertical-align: bottom; border-top: 1pt solid #000000; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; height: 19px; margin-left: 0.1px; vertical-align: bottom; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; height: 19px; margin-left: 0.1px; vertical-align: bottom; border-top: 1pt solid #000000; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; height: 19px; margin-left: 0.1px; vertical-align: bottom; border-top: 1pt solid #000000; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 70,117 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; margin-left: 0.1px; vertical-align: bottom; border-top: 1pt solid #000000; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt; font-family: 'times new roman', times;"><span><span class="selected" style="font-family: 'times new roman', times; font-size: 10pt;"><span class="selected">Revenue from sales of high precision 3D and 2D sensors based on our 3D Multi-Reflection Suppression™ (MRS™) technology was $17.2 million in <span style="border-left: none; border-right: none;">2021</span> and $11.6 million in <span style="border-left: none; border-right: none;">2020</span>. Revenue from sales of inspection and metrology systems based on our 3D MRS sensor technology was $31.0 million in <span style="border-left: none; border-right: none;">2021</span> and $20.2 million in <span style="border-left: none; border-right: none;">2020</span>.</span></span></span><br/></p> <div style="border-left: none; border-right: none;"> <div><span style="font-size: 10pt; font-family: 'times new roman', times;"><br/></span></div> <div><span style="font-size: 10pt; font-family: 'times new roman', times;">In 2021, <span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">sales to significant customer A accounted for 17% of our total revenues. In 2020, sales to significant customer A accounted for<span> </span>14% of our total revenues, and sales to significant customer B accounted for<span> </span>13% of our total revenues. </span>As of December 31, 2021, accounts receivable from significant customer A were $2.0 million, accounts receivable from significant customer C were $3.6 million and accounts receivable from significant customer D were $2.7 million<span><span>. </span></span></span><br/></div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Export revenues as a percentage<span> of<span> total revenues were<span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> </span>83<span style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important; background-color: #ffffff;">% in </span>2021<span class="selected" style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"> and 80% in 2020. Export revenues are attributed to the country where the product is shipped. Substantially all of our export revenues are negotiated, invoiced and paid in U.S. dollars.   </span></span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><span><span><span class="selected" style="color: #000000; font-family: 'times new roman', times; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;"><br/></span></span></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Revenues by geographic area is summarized as follows: </span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_133FGY9NU800000000000000000000b"> <table cellpadding="0" style="border-collapse: collapse; width: 99.5%; margin-left: 0px; height: 219px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 10px;"> <td style="vertical-align: middle; height: 10px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 24.9315%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 73.9726%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 12%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> <strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 11.9452%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span> United States </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 15,327 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14,134 </span></p> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Netherlands</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,700 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,237 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other Europe </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,649 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,017 </span></p> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span> China </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30,698 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 18,903 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Singapore </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">4,097</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">3,797</span></p> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> South Korea </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14,809 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6,376 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Japan </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,145 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,172 </span></p> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other Asia </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,255 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 11,702 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; background-color: #d6f3e8; height: 18px; width: 9.9726%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,094 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; background-color: #d6f3e8; height: 18px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 10.9589%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,779 </span></p> </td> <td style="border-bottom: 1px solid #000000; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 73.9726%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total revenues </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 1.0411%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px; width: 1.0411%;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 19px; width: 9.9726%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 92,774 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 19px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px; width: 9.9726%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 70,117 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Long</span><span style="font-family: 'times new roman', times; font-size: 10pt;">-lived assets include equipment and leasehold improvements and intangible and other assets attributable to each geographic area’s operations. Long-lived assets at December 31, 2021 and 2020 are as follows:</span></p> <table cellpadding="0" style="border-collapse: collapse; width: 99.5%; margin-left: 0px; height: 119px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Long-lived assets: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 74%;"> <p style="margin: 0pt;"><span> United States </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,526 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,814 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Europe </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 13 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asia and other </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,010 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 740 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total long-lived assets </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,549 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,560 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'Times New Roman'; font-size: 10pt;">    </span></p> </td> </tr> </tbody> </table> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">The following summarizes our revenue by product line: <br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"><br/></span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_UMH62EYYR400000000000000000000b"> <table cellpadding="0" style="height: 109px; border-collapse: collapse; width: 100%; margin-left: 0px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px; border-bottom-width: 1px; width: 73.8986%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="vertical-align: middle; height: 18px; border-bottom: 1px solid #000000; width: 24.9975%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">  <strong style="color: #000000; font-family: 'times new roman', times; font-size: 10.6667px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Year Ended<span> </span><span>December 31,</span></strong></span></p> </td> </tr> <tr style="height: 18px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.8986%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 12%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 18px; width: 12%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 73.8986%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> High precision 3D and 2D sensors </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;"> 25,941 </span></span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span>   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span>   </span></p> </td> <td style="background-color: #d6f3e8; padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span> $ </span></p> </td> <td style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 17,522 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 73.8986%;"> <p style="margin: 0pt;"><span> Inspection and metrology systems </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-size: 10pt; font-family: 'times new roman', times;"> 42,958 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-size: 10pt; font-family: 'times new roman', times;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 11%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 37,547 </span></p> </td> <td style="vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 73.8986%;"> <p style="margin: 0pt;"><span> Semiconductor sensors </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 23,875 </span></span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding: 2px 0px; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 11%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 15,048 </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px; border-bottom-width: 1px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; height: 19px; margin-left: 0.1px; vertical-align: bottom; width: 73.8986%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total </span></p> </td> <td style="padding: 1.5pt; height: 19px; margin-left: 0.1px; vertical-align: bottom; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; border-top: 1pt solid #000000; border-bottom: 2.8pt double #000000; height: 19px; margin-left: 0.1px; vertical-align: bottom; width: 1%;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 1.5pt; border-bottom: 2.8pt double #000000; height: 19px; text-align: right; vertical-align: bottom; margin-left: 0.1px; border-top: 1pt solid #000000; width: 10%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 92,774 </span></span></p> </td> <td style="padding: 1.5pt; border-bottom: 2.8pt double #000000; height: 19px; margin-left: 0.1px; text-align: right; vertical-align: bottom; border-top: 1pt solid #000000; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; height: 19px; margin-left: 0.1px; vertical-align: bottom; width: 0.997506%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; height: 19px; margin-left: 0.1px; vertical-align: bottom; border-top: 1pt solid #000000; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; height: 19px; margin-left: 0.1px; vertical-align: bottom; border-top: 1pt solid #000000; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 70,117 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; height: 19px; margin-left: 0.1px; vertical-align: bottom; border-top: 1pt solid #000000; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> 25941000 17522000 42958000 37547000 23875000 15048000 92774000 70117000 17200000 11600000 31000000 20200000 0.17 0.14 0.13 2000000 3600000 2700000 0.83 0.80 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">Revenues by geographic area is summarized as follows: </span></p> <div style="border-left: none; border-right: none;"> <div id="t_ft_133FGY9NU800000000000000000000b"> <table cellpadding="0" style="border-collapse: collapse; width: 99.5%; margin-left: 0px; height: 219px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 10px;"> <td style="vertical-align: middle; height: 10px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="vertical-align: middle; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="7" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 18px; width: 24.9315%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"><strong>Year Ended December 31,</strong></span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 1px solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 73.9726%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="padding: 1.5pt; vertical-align: bottom; border-bottom: 1px solid #000000; height: 10px; width: 12%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt;"> <strong>2021</strong></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 1px solid #000000; border-top: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px; width: 11.9452%;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span> United States </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 15,327 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14,134 </span></p> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Netherlands</span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,700 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,237 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other Europe </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 9,649 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,017 </span></p> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span> China </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 30,698 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 18,903 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Singapore </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;">4,097</span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">3,797</span></p> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> South Korea </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 14,809 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6,376 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Japan </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 5,145 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,172 </span></p> </td> <td style="vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other Asia </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 9.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 7,255 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10.9589%; border-bottom-width: 1px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 11,702 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="background-color: #d6f3e8; height: 18px;"> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 73.9726%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Other </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 1.0411%; border-bottom: 1px solid #000000;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; background-color: #d6f3e8; height: 18px; width: 9.9726%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,094 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; border-bottom: 1px solid #000000; background-color: #d6f3e8; height: 18px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%; border-bottom-width: 1px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 1px solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 10.9589%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,779 </span></p> </td> <td style="border-bottom: 1px solid #000000; vertical-align: bottom; background-color: #d6f3e8; height: 18px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 73.9726%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total revenues </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 1.0411%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 2px 2px 0px; vertical-align: bottom; border-bottom: 2.8pt double #000000; height: 19px; width: 1.0411%;"> <p style="margin: 0pt;"><span style="color: #000000; font-family: 'times new roman', times; font-size: 10pt; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">$</span><br/></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 19px; width: 9.9726%;"> <p style="margin: 0pt;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 92,774 </span></span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; text-align: right; border-bottom: 2.8pt double #000000; height: 19px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 19px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px; width: 9.9726%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 70,117 </span></p> </td> <td style="border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px; width: 0.986301%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> </tbody> </table> </div> </div> 15327000 14134000 2700000 2237000 9649000 7017000 30698000 18903000 4097000 3797000 14809000 6376000 5145000 3172000 7255000 11702000 3094000 2779000 92774000 70117000 Long-lived assets at December 31, 2021 and 2020 are as follows: <table cellpadding="0" style="border-collapse: collapse; width: 99.5%; margin-left: 0px; height: 119px; font-family: 'times new roman'; font-size: 10pt;" width="100%"> <tbody> <tr style="height: 18px;"> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td style="vertical-align: middle; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> </tr> <tr style="height: 10px;"> <td style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> (In thousands) </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2021 </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 8pt;">   </span></p> </td> <td colspan="3" style="border-bottom: 0.75pt solid #000000; padding: 1.5pt; vertical-align: bottom; height: 10px;"> <p style="margin: 0pt; text-align: center;"><span style="font-family: 'times new roman', times; font-size: 8pt; font-weight: bold;"> 2020 </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Long-lived assets: </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px; width: 74%;"> <p style="margin: 0pt;"><span> United States </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,526 </span></span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 2px 0px; vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px; width: 10%;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 2,814 </span></p> </td> <td style="vertical-align: bottom; height: 18px; width: 1%;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="background-color: #d6f3e8; padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Europe </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 13 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="background-color: #d6f3e8; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 6 </span></span></p> </td> <td style="background-color: #d6f3e8; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 18px;"> <td style="padding: 1.5pt 1.5pt 1.5pt 9pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Asia and other </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 1,010 </span></span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="padding: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td colspan="2" style="border-bottom: 0.75pt solid #000000; padding-bottom: 1.5pt; padding-left: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 740 </span></p> </td> <td style="border-bottom: 0.75pt solid #000000; vertical-align: bottom; height: 18px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> </tr> <tr style="height: 19px;"> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> Total long-lived assets </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,549 </span></span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; padding: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">   </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding: 2px 0px; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> $ </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; padding-bottom: 1.5pt; padding-top: 1.5pt; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt; text-align: right;"><span style="font-family: 'times new roman', times; font-size: 10pt;"> 3,560 </span></p> </td> <td style="background-color: #d6f3e8; border-bottom: 2.25pt double #000000; vertical-align: bottom; height: 19px;"> <p style="margin: 0pt;"><span style="font-family: 'Times New Roman'; font-size: 10pt;">    </span></p> </td> </tr> </tbody> </table> 2526000 2814000 13000 6000 1010000 740000 3549000 3560000 <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; font-weight: bold;">NOTE <span style="border-left: none; border-right: none;">14</span></span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">–</span><span style="font-size: 10pt; font-weight: bold;"> </span><span style="font-size: 10pt; font-weight: bold;">CONTINGENCIES</span></span><br/></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times;"><span style="font-size: 10pt; font-weight: bold;"><br/></span></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">We are periodically a defendant in miscellaneous lawsuits, claims and disputes in the ordinary course of business. While the outcome of these matters cannot be predicted with certainty, management presently believes the disposition of these matters will not have a material effect on our financial position, results of operations or cash flows.<br/><br/></span></p> <p style="font-size: 10pt; line-height: 120%; margin: 0pt;"><span style="font-family: 'times new roman', times; font-size: 10pt;">In the normal course of business to facilitate sales of our products and services, we at times indemnify other parties, including customers, with respect to certain matters. In these instances, we have agreed to hold the other parties harmless against losses arising out of intellectual property infringement or other types of claims. These agreements may limit the time within which an indemnification claim can be made, and almost always limits the amount of the claim. It is not possible to determine the maximum potential amount of exposure under these indemnification agreements due to the limited history of prior indemnification claims and the unique facts and circumstances involved in each particular agreement. Historically, payments made, if any, under these agreements have not had a material impact on our operating results, financial position or cash flows.</span></p> BDO USA, LLP Minneapolis, Minnesota 243 EXCEL 89 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( &M<:U0'04UB@0 +$ 0 9&]C4')O<',O87!P+GAM M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " !K7&M4(:"XH>X K @ $0 &1O8U!R;W!S+V-O&ULS9+! M:L,P#(9?9?B>R$YH#R;-I:.G#@8K;.QF;+4UBQ-C:R1]^SE>FS*V!]C1TN]/ MGT"-]E(/ 9_#X#&0Q?@PN:Z/4OL-.Q-Y"1#U&9V*94KTJ7D<@E.4GN$$7ND/ M=4*H.%^#0U)&D8(96/B%R-K&:*D#*AK"%6_T@O>?H_"V@68J[^BQ'.N<2SL(>'O:O^1U"]M' M4KW&]"M:21>/&W:;_%IO'P\[UE:\J@I>%T(621A'^_1S80RY8-[9)-NIL\!"SI^\Y%1^?H.'GS[BYBZ(:(E/)X M8-DOV]:[MR_>X%#BVR]*+ M41B1%G\@M MNN01.+5)#3(3/PB=AIAJ4!P"I DQEJ&&^+3&K!'@$WVWO@C(WXV(]ZMOFCU7 MH5A)VH3X$$8:XIQSYG/1;/L'I4;1]E6\W*.76!4!EQC?-*HU+,76>)7 \:V< M/!T3$LV4"P9!AI@S M&L%&KQMUAVC2/'K^!?F<-0HACA*FNVB<5@$_9Y>PTG!Z(++9OVX?H;5,VPLCO='U!=*Y \FIS_I,C0' MHYI9";V$5FJ?JH,@H%\;D>/N5Z> HWEL:\4*Z">P'_T=HWPJOX@L Y M?RY]SZ7ON?0]H=*W-R-]9\'3BUO>1FY;Q/NN,=K7-"XH8U=RSTS0LS0[=R2^JVE+ZU)CA* M]+',<$X>RPP[9SR2';9WH!TU^_9==N0CI3!3ET.X&D*^ VVZG=PZ.)Z8D;D* MTU*0;\/YZ<5X&N(YV02Y?9A7;>?8T='[Y\%1L*/O/)8=QXCRHB'NH8:8S\-# MAWE[7YAGE<90-!1M;*PD+$:W8+C7\2P4X&1@+: '@Z]1 O)256 Q6\8#*Y"B M?$R,1>APYY=<7^/1DN/;IF6U;J\I=QEM(E(YPFF8$V>KRMYEL<%5'<]56_*P MOFH]M!5.S_Y9KF4Q9Z;RWRT,"2Q;B%D2XDU=[=7GFYRN>B)V^I=W MP6#R_7#)1P_E.^=?]%U#KG[VW>/Z;I,[2$R<><41 71% B.5' 86%S+D4.Z2 MD 83 >LX=SFWJXPD6L_UC6'ODRWSEPVSK> U[F M$RQ#I'[!?8J*@!&K8KZZKT_Y)9P[M'OQ@2";_-;;I/;=X Q\U*M:I60K$3]+ M!WP?D@9CC%OT-%^/%&*MIK&MQMHQ#'F 6/,,H68XWX=%FAHSU8NL.8T*;T'5 M0.4_V]0-:/8--!R1!5XQF;8VH^1."CS<_N\-L,+$CN'MB[\!4$L#!!0 ( M &M<:U0\F487"08 /09 8 >&PO=V]R:W-H965T&UL MG9E=[LA0RRS020*XE\ M_/L] HS<#CZPVXL&,.?5PY'TZB#.7X1\4EO.-7F-HT1=M+9:[SYV.LK?\IBI M4['C"?RR%C)F&D[EIJ-VDK,@"XJC#G63EN4AU%"9\(8E* MXYC)MRL>B9>+EMO:7[@/-UMM+G0NSW=LPY=*=F8#LCF\A?U$'Q\0\RDJ()W,R"RY:CB'B$?>UD6#PYYF/>109)>#X M48BVRC9-X.'Q7GV:/3P\S(HI/A;1]S#0VXO6L$4"OF9II._%RV=>/%#/Z/DB M4MG_Y"6_M]MM$3]56L1%,!#$89+_9:]%(@X"Z.!( "T"Z"\![K$6O"+ :QK0 M+0*Z66;R1\GR,&&:79Y+\4*DN1O4S$&6S"P:'C],3+\OM81?0XC3EQ/AI]"- MFHR2@%PG.M1O9);DX\GT2YM\74[(^]\_G'".GXA?95+TR/2+B6W(M%; M!;H!#WX6Z !G"4OWL%<459QP_Y1X[@FA#G4K@,9X^)2O3@D=9N&T(GR"A_^1 M)M"Z4]7Z3T_CE:GW,CWO?Z;^[]%*:0D3XQ^DL6[96#=KK%O7V,/;CE?U)1[N M.NTO"$6OI.BA,B- "#*,:<0V51AX_)I%BB,<_9*CWRP;"RY#8;(?$)@^E8FI M42J&Y&_OWM4,BT')-FC&-@V5SZ(]XA0NJRH^7&WZB" -2Z3A?T)ZY$P>!\*U M:K)T5B*=H3+%?+GGF]!,$F";L[BR_W"=\>/5]?W=XF$V7I+QW?T"07,=ZZE. M$[@QI$Q"NF9@?Z_D"W^K]%!JCR;#R] M)Z,T"+609*0U5SIWZF-F5J-7YV:N-7<7M^?]@!-Q##A++?RG$[+<,LD5N4LU M<"9!F%0QC@OE7J9LJL3GRT'7H?VA=]YYKH*R7N_B9KV'*H;NL'19]W=QTR[(%NDJ"GWH/<%T53E0J/0/4D.'0]JGM#\XDAQK\B[N MRP7"=RAXVT^)>(%>XTR)! ;L3*GTUQ%;I ?7G LL.];L7=RA"[1O(DH3#>\" M^0RJ[B]<"0>R5N\V\OIES**(7*4*?E;5.+B.EBDVW:CU=]K(WZ]C+C=F0'\" M!;TUTV_'DDK/JA&L'IM&Z.VWD[J,@@$5&G>P/R W< M1^Z2ZMSADKTSQR&?1 0/3#Z'4:3(1(;/Z#"TED\;67Z).S9GT-T/8+V5J+C< M[6P^OQXM[FYF2PS/+@>TT7)0XI7#<2'%G$-?&A:)<#VF@Y*-$6 LJ) MB/P5[H[/$5RQU^NZ?8S-K@RTIGK/R"1GQU%P@?>#OOU M+2SAR!RM$>EU:;L'%3]&9)<"K]%2,$LTE_GVFBGSV;X@J\3#%?'ZR[-K@H?; M^4.H8340:^+2]YL/4/GXJ0342B)>*-Q%D!R\TSRQ"%WKO8(<&=_,'R8*L M8GV+5R*JY,,%S.LE1F(7! ]W[WV.R/6KOV7)AA]]WZT1FH^6D]&?&)-= CS< MKP\VL)(4!G]>X5H,%LP$2I[@3[]\9 MCW89'GXUN2-?EZ,3AB)-7 /]]\] MB7%/TUN5*+C$;9@DG.U$%,+BE)THH5D57>=@F]R4[MGG!D5\4_'E.^;EU?*3 MQBC;R._8V_/O(;?,5/Z*1'P-H<[I :XS#\QY"=:[+)-]Y706L39X9:S@$MS M _R^%D+O3TP#Y8>>RW\!4$L#!!0 ( &M<:U23?+P>F 8 (P: 8 M>&PO=V]R:W-H965T&ULK9EM;]LV$,>_"N$&10LDM4A93VEB M('&R-5BZ9G&Z82\9BXZ%2J(K4DZZ3[^CY$BV^)!TV(LVDGRD_G<\\G>D3AYY M]4VL&)/HJ.8'JD%C\6?&'L7.-5*NW'/^ M3=U@(=W[>=CKIWJH:[U\^]_](X#\[<4\%F M//\K2^7J=!2/4,J6M,[E+7_\Q+8.-0(7/!?-_^AQ:^N-T*(6DA?;QJ"@R,KV M+WW:!F*G 9Y8&I!M _+:!OZV@=\XVBIKW+J@DDY/*OZ(*F4-O:F+)C9-:_ F M*]4PSF4%OV;03DYGO!0\SU(J68K.:4[+!4-SU9U 1^CK_ *].WB/#E!6HKL5 MKP4M4W$REO!FU7Z\V+[EO'T+L;SE@BT^(!\?(N(1;&@^>WUS;[_Y&/SMG":= MTZ3IS[?T=S:?7][-'1WY74=^T]'$%CTJ5@A"@A;J@GVOLPW-62F-(6J["INN MU.S:3+$?QI.3\68W$KI5["=)9[0G<]+)G#AE?J;5-R;I?2:+0(P-E!BN/1)9A MBCIED5/93<76-$L1>P*,"+.\2$\/+QZ(TVW".#1+BSMIL5/:%[F"$87DKB!V MB K!S+,PUN6%PSEHL$D\L[RDDYAA+QP(U*T"'^^DP)Y$ M[/4L\'Y^G8!YR,N'(\FJPKCP>_H4B$@\G"@FLXD7V"3OX L[)5_"FKLNFIC" M-,\9$'W%\Q1EQ;KB&Z9^ 0]*)HW:L2;*Q]$P&TQ6Q#;'<<\@3%Z8Y9*6#QD$ MVR&0Z*^.@J$^@Q&QR>O)AMUH^Y7S]#'+24JYM,<&Q1VQ,(NQ%TP98,EJH42?KD6*VP3AD8X>%J;[": M!$EDT=BS"+MAU"ZI#G$Z99+8(]IXZV91$F%;GO8\PK&SR+R^.CN_NKZZN[J< MH[/?+]#\[LOLMT]?KB\N;^=OWT I$7U$EW]\O;K[VU&(XIXOV V8KH):TQ\J MLXP1T;D!U- 7% ->L"VG2$\7XJ;+6;IIZKAV5P.P!J6%K5@F.B^"G3*X%6HP MBHEOT=DCA;B1 I&L:N8N4;O ML]Q:W!.=$WKI8S+"ENT'Z6%"W##9KWY>TFG@1HB#(5Y,9EX8V*+;\X6X^=(6 MDB]IU"&!H^%&R63D3RSZ>I 0-TBNGX'QT^.ODX+XH3:G="N?3&RJ>Z 0-U!N MF6#5IMW$9>4"YK]"BT6H8>^"M435C7!@80KIF4)>PY27 JD3 \<)UA+48 9K MA&T=[<%"W#N=&2^*3#8K9WOVP$N5!*Q]W1]GETZ"?X,/'"/;-, M"(5,E8X[04"V\YCGKD@R.0QQ]!^[,I[;^ ;F)GJ5;S*+8FQ90/R>S;Z;S5 \ MU$6=-\>IO#V2X+ 592MU\@WK7\Z%^7!0Y^X1#K"6'R8SZ\[?WSG'= /Z%K;] M\ B*'EJ5$&ZS1IVX$^"R=H*IFY$XQA8P^SV8?3>8V[596%<"HV3#B6:BGZ<8 MS,(@():EVN]9[;^PZ1OBI$GKGW0AT$Z$3=L8@YEI&S/>^52@OM-\IM5#5@JH M();0SOL003=5^^FCO9%\W7P]N.<2JO;F\X]Y^;:<7DZL=7;NNBJ, M(:'J3&20XI.YD G5.)4+5V42:&1!"7<#SVNZ"66IT^_:>Q/9[XI<P4AMC8JS,A'@TDZNHYWA&$7 (M:&@>%G""#@W3*CC]YK4*7,: MX.;XF?VK-8]F9E3!2/ ?+-)QSVD[)((YS;F^$ZM+6!MJ&+Y0<&7_R:J(;78< M$N9*BV0-1@4)2XLK?5H78@/@U]\ !&M L"^@M@;4K-%"F;4UIIKVNU*LB#31 MR&8&MC86C6Y8:E[C5$M\RA"G^R.1*L%91#5$9$@Y34,@4T.GR/&$2DAU#)J% ME)^0+^1A.B;'1R?DB+"4W,$ZZ[#(&KR1=0SA&:GYIR3P M K\"/MH?[FW#7?1?%B$HBQ!8OMI;1;B]F=Y>7XT']Q=C,AQ<#VY&%V1Z>7%Q M/R4_!S.E)7;;KQV):F6BFDU4?R/1( Q%GF)I)83 EG3&X910CFO)UAU7)8E$ M/M/SG&.#%[%5U2VR-&T6LU"7_5JCT767FR6LB/&",F9+?KV47]\I?X)+#*3$ M3L&^#!]/248E65*> SG&ALA51#+ /2+&OCFITKV3WNQ8YRJC(?0Q2WWREZJ7N71%;BENEXM9.Q2.1)+C3?[#7=G(?T&N? MY]DRWR[-MP\P?U"CM5^]B*"ZT_8(W-+>*;5W#M?.E,IWZ^Z\DM.J=?R.UWPA MNR(NZ-2;?JM:M>_]_Q9ZA^O> M60LI9'%**29:9/9#/Q,:CPUV&./)#J0)P.=S(?3SQ)P=RK-B_Q]02P,$% M @ :UQK5 10V!E%! +@X !@ !X;"]W;W)KJ#(89$E\34-K#] M]AT[(;")D]N^$)S,C'\SMF?&DQ/CWT5"J42O>5:(FT$BY?ZS98E-0G,B1FQ/ M"_BR93PG$H9\9XD]IR362GEF.;8=6#E)B\%THM\]\^F$'626%O29(W'(<\+_ MO:,9.]T,\.#\XB7=)5*]L*:3/=G1)95?]\\<1E9M)4YS6HB4%8C3[ MX5 I:(D_4WH25_^1(AO!K8BHAG=2&6"P.-(9S3+E"7@^*%N63O%:!N%+ 08>"4RDX306O0\&M%%SM:$FFW9H32:83 MSDZ(*VFPIO[HV&AM\"8MU#(N)8>O*>C)Z8P5@F5I3"2-T5+" ]9("K38HL6> M?LUIW3:W%.-R/DXB%R; <;@&;O5[=[<-PZ MRJZVYW9%>?&T7/SQ,+]=W<_1<@6/Q_NGU1(MOJ#%\_W+[>H!!-!?MVLA.6SL MOWNF].HI/3VEUS'E"SW2XD"-JU%J!EI3G?/C-'+"T)M8Q^L0M:5"&^.PEGJ# MY==8?B_6C F)V!8R0#=>:<&_FMB+ GO/(MLUX08T7].+]QID0<+[X M+BU,:$$;S<5!T$!K2[G8Z8I<6*.%/UA000G?) C.&"2J(V3@O3JKB+Y"3A?F M4(8M$FR/_;#!VY:*_- QXXYKW'$O[A(RM$M:Z#IVTQ.#E(/]#D\NA0_W M5[[_XTFU0+V^M,M=Z+O-FFB2\EIIQ;KJO'/*=_I"(M"&'0I9=JOUV_K21ZH">HKXO0_4$L#!!0 ( &M<:U1+R*T&=@, (* 8 M>&PO=V]R:W-H965T&ULK59;C]HX%/XK1U$?.M+,Y J!$2 - MEZI('1@-3/M0[8-)#,G6L5G;P'1__1X[D#(0:!_V);[D7+[OLX_MSD[('RJC M5,-;P;CJ.IG6ZP?754E&"Z+NQ9IR_+,4LB :AW+EJK6D)+5.!7,#SVNZ!YX"#ILNL\^@\#WSI8BZ\YW:FC/A@J"R%^F,$X[3J>04093;0) M0;#9T@%ES$1"'/_L@SI53N-XW#]$_V3)(YD%470@V+<\U5G7:3F0TB79,/TB M=I_IGE##Q$L$4_8+N](V#AU(-DJ+8N^,"(JX?@U"&Z MX!#N'4)+M$1F:0V))KV.%#N0QAJCF8[5QGHCFYR;99QIB7]S]-.]@>!*L#PE MFJ8PT]C@&FD%TR4,1($[(S-+MJ4PYHDH*-S!ZVP('S_

$K3]P%1I/Y#*:?8#!]>GX9 M?1Y-9N.O(QA/<#R"[X\+I27NZ[^N)(^JY)%-'EU(/L$3(+=+5K$:%8)FU>%P&+'4N982U)2GOP$E)@K1LI#)/T;2\SN^%OHEWGGY*U. MLC)+XTB,.[\=GBAV;N2WO7K!X@I_?!7_*\?3F>7_8GFN\%16I4Q4W8#!OR4Y M(PM&[Q#ZG2*,@J+(-- H!UJL[9V]$!I? +:;X2.-2F. _Y=" MZ,/ )*B>?;W_ %!+ P04 " !K7&M4^=BR$AL' "6' & 'AL+W=O M1>5]_,2DI+ M'M9%:4X'*VLW;T8CDZWD6IC7>B-+^,]25VMAX;:Z&YE-)47N&ZV+$8NB9+06 MJARE@1M_,^<0U\!9?E+PW!]?$N7*K]3=W.ULJ\6^^$%6Q)\EL6[/&=S%X33G\C M+&(4$33_\>910 [?1Y#[_GA?!&>+]^3BS^NO"W+Q\?H#N;XY_SC[='GU!YG- M/UU^N?QT>;YX$QAGO!]G[,<9]XQS!7M:E9E>2VP2ZK:);^NV[@X"/XEI%(&+ MN\/@= WCR9@=VAVIB_?JXF 49OE?L%CKM6,U;/!,EYDJ)"GWLMUS=Y>Y=;6I M]$[!>B"WCP1R4B6L*N_J3:VLDB84L62O*0E&[)V$S)8I4>>+,B=BK2NK_O$/ ML"#6W<4'L6%Q$G5CB-@E;-H;P\E>[R0\P[H<^N"T 2DDI"@B'R!K&W3>)QTI M<3+M*D;,&.T5G.X%IT'!-VX2?4)_Z29\)ZO'5P300G*]O;7+;0$3FNDMK E, M>MK11-FX*[UK-F11K_3I7OKTF;6QE%4%Z\^*!XG*FW;&G::\*Z]KQI.D5QZ- MVKP12OMBL;,II-^U0PY]VR[=UM35='"X"/)XA:Q)"F_N%%DTB!U-^_UI M442?8=%*E'?20,(]3*K&2,C*+@$62MRJXMD$2ULFT3"49LW^]KW#"LTAX6L+ M"B ?2+5S 43C-.[&:3R9,B1274N:IH%8M<"B<5#Z9;D#6NE*X=N_:7V\DQA# MB(I90G;M9RIM 4;#!+NIY$:H_ D =9BU71=/"!$0JW$_PFC+,!J& MV'Y%;,1C[_0C.*)3+$]U#8=T&O%^G2VZ:)A=LWPGRDPV-38$%/36YF.%DTK_76(LN%D;7U8^6IJA^!%%1A(4PVG4.B!"9(A>MN < CB''IQK M47V3UL.T@6=?%#D2Q21"-)?^'%6J2Q,-*.G?,._%>WN@QC+$:=-2CH4I=[.MLI4P_\/<()2C/.'8$D=-:1J8G9:(+$S$69XK5U#Z4Z:KR#8N M:=?%C4LT*UWD1*W='J[?9*"^=-DWI E#LCAJ&;/^/,Y:4+)G0'GHR4;87K$( M UF,')10PT 9PEI6LC K]ZEQZ^IZ*"X5U$[F1](B0LMQ,L7$(Y:%WD+/1Z&WG'JD ^RRI3QZ0-JC.P;T,1/.!8IWN7:F"$5 M$6+' _3@+?YX&'^?Q$-; E6R\"\$864:=Z(SY%[9U4K"WO+'H9Y3'MD4HL>] M+O6&DQ39<)AA$L7]#K9XY.&SWM/DO/B%)M'O;H;J*V7,UE6"]9U>UK_@UEJ7 M];6?O/IR6^:RJB_E>E/H1RD[-ILFY39W$!(T(MTC(,,.OYC=\6N2XW@JA#@\OZEYE[U#2I&S&V;(^FMWWB*:AQ%]OES*S'JDR8?,GWD)E&E0 MS#?G7UB*WC6'!7_A2+$#WO7D6(X0&O$'.;6&_&DAS<.0;E[M5KY25C^KO4O; MF*5(>8$8LC@)Z&^AS,-0GO?I)2]^21FEOY-;>:?*TJTMF#.HJ97.45^ZN$WY M%"DQ$,,XY?T%!F^QS,-8?MX7ZE[YZ_I6_F]2>RMIOZB]T'4<$<&2BCEM!E]'H" MP:WJCV#UC=4;_QWI5ELX,?O+E120#YT!_'^IM7VZ<0/L/T6>_0M02P,$% M @ :UQK5"I(4LV@!0 @1H !@ !X;"]W;W)K%>QLEG"^?VU9+$I(CMDK MNB>%^&9'RQQS<5O>6FQ?$AQ73GEF(=OVK1RGQ6RUK#Z[*%=+>N!96I"+$K!# MGN/RX0W)Z/%L!F>G#R[3VX3+#ZS5?,V/IO9$A')2,1E""S>[LB:9)F,)'!\ M;8+.VC6E8__Z%/W/*GF1S UF9$VS?]*8)V>S< 9BLL.'C%_2XU^D2H5'!M;>P:B ^,T;YP%@CPMZG=\WQ2BYP"="0?4.*"1 T(3#D[CX(P<7'_" MP6T5/#01-PKBG'F<9M;79; MTSP7758FBU4:WFT+7]H=56M4*. M'<#6:I"RTZ;L/"7EEZ=6?$+JZSJBUP,20,_3XW!;'&[EY4S@>%M$8D8S IZ+ MY:NK%_(8:,_/YTN:94#,N",N8].^>^WBGK$(VWM21JE8G.X J_J?[N4(%N4H M8G!'&!>=)K\4%>)E&LG>KNT.1.&LA3&VALLU7CV/K-\-MZ^+^['J>&T_67K^0#G8GV"MJ, F-&U_C^ MM#(3J.OQQ.D)X3'E24*R& C54'\VE\P9@TC,+C&X<$7(^PP7VGD<*(#GONV- M=C)0#WG?:)!6V*85_J*T3/L1JNDA1P]\T0)?&(%?R<5 RM@!%Y% *@'&:2F4 MC[CHH].5>V'H]QKQ0JGUQ(F =L?Q]H]!;*IDLT8?>C@!K"<^X./ -/NJ%0Y0 M/5HPA*/J-5;^E-40:$>NT,RN;YO:R ?;?)_1!T(:!7)Q*,74 M$#/H0K2G-A>DY((4_H4:TNP9#3/I.!.:2?,[,C%VATJL:*IO.UZ%KA%KK<&B M@09+"W%/VC'-\;VVP*[*3_:HP)M'C(:@.SZ&9D+^((#5(+7 5,+S A>-6/$Q MJR&TCAJAF1OU&E'NDP:HRF2^YZ$QQS=F Y(/0AB,2ZU&FT-H*WFK9B@,X<3 MAAV#0C.%FI6BM@!KJ#)C@!83I <[UH/AKQ>+L.,N:":OWR07HE[>I MT!X9V0DW^U4@_,OZ_X[ZAM-]]8/^#>62E\-.V:;_X ME;5=\75=U?[G^ZNNV_SYT2-?KNS:^&FSL37]LFC:M>GHSW;YR&]::^;\T+IZ M=/;X\;-':^/J^[_\Q-]]:'_YJ>F[RM7V0UOX?KTV[>Z5K9KMS_=/[X>^TEYGQ]J*I/KMYM_KY_HO[Q=PN3%]U'YOMOUG=SU/,5S:5Y_\76QG[C :7 MO>^:M3Y,%*Q=+?^:K\J'[($7CX\\<*8/G#'=LA!3^=ITYI>?VF9;M!A-L^$# M;Y6?)N)D_?>%^\MKYLW899=5[/BVNWK-W"E:;NBO.R M;/JZ<_6R^-!4KG36__2HH]4QQZ-25WHE*YT=6>GTK/BMJ;N5+][475^^+\_>OB^O+7]Y=O+R_.W]\4YQ<75Y_>WUR^_[7X%*?%'__EQ=GI MZN?!-6VE^G:/JV^&P6MKVFJ2UQX/3YCR]IT6;>EYV?$,D+LW;5#O1L74L6 MQ-.W6SQQXE=F8^>1J&YE.CQYZ^:62#">YB>3U7D\2VSI2(&J @MCM*OI 4L/ MKUW9U%B-]K$PLY9&\49HII(6FQ971.+AQB.-S-G>$R$T):U)"]#RT-&BL^6J M9D84#ZY_NWDHCP]6).O[Q=(D75/XI.6T7[?&5FRQ<[::R\*ZHKMU'7'V0^OJ MTFV((=C?14,$5FXNM-_0SLKX#9&V<+6AT;1_W]$7PA9ZONJ)5^"#$;,B<^UF MMKTB*2H]S=MNFM;$HW4T9+MJJFIWTFQK<+^?>3=WIB5#-"TNF:MTD'736=Y5 M=Q=2)OI4V:PWIJ:9F*ED3]EAD.3LX'1LV]+S-*?QK"IGCU]FI$[X*](>_6EK M][_ITQCBO'Y) C@-WYY757X*Q*".Q$R(VB46@0]D8FIO6.1]L3)T4#-KZ\)6 MCAP#[Y.DH

8:% M6P_,,U/I7R)U$C2+1QUHUX$20Y!ID\]V0:/O1-Z$88U]-<76]A(%K9@/"&>C6R/66H6"^(";U.XCD76415HO-43 MKYR9N8JLB$XU=[ZL&J]L)MI!%1_"D6=D%; #]Q)+T34CM#6TL'7O5)COVY@ M0'TQ[UMP)SW$O+*M:^93 @]=3PL0JP@H>5J_K[ 1XD&[9WX6;;.F21J?<7!: M7!B_XN7XPQOB^JVIF-#/LALRO>1+2(T@=C1-Y6@,=.&69I$M;?JV7!G82SYD M0_+1NB5MOJ(#(ZG%\=/N_O286+7ST%38?)SGC-; NC:MFY&T_Y/0XSM,MNCK M.:2#%)K^$^6<$Z+&,1*3O.NB=D_(=M=VI^*=?5U:XB7X(^>GS^$'-9%0R1F4 ME/!'GX[OT_1Z6BS)E+()EN83;>JE_*%N>* )NNF" MD;1GH$_\XH&N34+"FA1DO^R$ER3;2],RQO'$0N(MC/KZCE2:6^,J##LA0W2" M"<1J,'8B>\;"!,C".OXHJ/ >QI;VQS)'B;1K@'))F8B#9 M"S9\[&>(ZP6>I!-FX[GCV5KGOX!C#6T^V-R 83*Y&=_@BJ!#,=O!D%-$5 ]\ M-9'0T?[FQ0]/7[R8/'[\&&>,J7XHGCT_XR^FA"=)H#/YX;^S!3(5VQ=SYAO9 MPW(W(O$#;?*9.GU+FR;@ S,^S)@HH6,^/+K]HS9MR^?<19-&&F1(I$C9>I+E M3S6%TI7[&WV])#.A)KSQ,*OPA?.]W6/29)@]_+@)"'DZ*V/*?9;"CX MXP/7 9WY"MF!=X2%EXU,B[=Q@T(PN4T2%B#J: GF!>*$9?%[WX (%3(:6%JV MOWA:M4OA-4N5_4K/PVQG)D/TH&6,2 <.:PNU78L_,305'8$8>$= @LYV!W=7 MSTEGH= FK #I!HX@?T>"@B,I&R]2E8Y,!&=P*!,^*;)/)$XB6>!FSUZP/WZ^ M$^9-QA':'_ 11+0@>X1YDK@40(-/J/$()0G;].N$:Q1CU MJ,BG(X',TV3SO_9Z_&36#A8DB\#,$ PBN"RY>6&32+^NLU-QQ$^6X9FH@9T19M>L4I$*[=W@L2@;L]#[]C.4UBA!WDDE3EYT"";!E900^P8<3 M@HLU^:PUK%/+\1D]R;M^H*'$U!+I!:8B@?4\+0 3F=,0Q'S#I2K2'RO!$VN,G#'$ M;:)+.[]G/JQI(9VPC_#G@^E$:86IZKE4-(Y.]UW_)L8U2][$4"D1FQ%!"UC( M:) S"64LP./,=EM(NX3*&9O4 _M1R8\BJKQ*S$;B0X F4$//X36C]05)E(]6 M4_!%+N1QO63+.*?#@K45PU8S'[TE1N:/,N)Q6!L[)7))Y]T79$-8?>NFPP1; M1X_-;(B"QZ>B 4"!4G+@I MAY)$9 8U]9L?V_ M13+?@_"'VQF >%H&^%I6 -BZ)?H:#I?RSWB&DS11VNGNBGIB=P\?;R[=7#@'J*]R/S0F]9+V-4 _77'%EI M0XS=("P&AB!#U4K.;A8*!(P)F+!@/#@;H5[?LY=C+*/Y+>^#<=8D7()0_3=HXLG;OI:,[EZ)8JK;D:1\F[8S(P.?%(L3 #6T M*;DJSDC0_^LE0S\V:CB@KRQI1//3/X#(YW^8Q$P))R]X>L;^LL.].4Y?X*DG MSP#ANY6:OB!@G+64;!0GG3+:1U(VX=2R;2GG\1.G[K'L,*ET&$@%+\J.'""I MAY]7H-B-LT\2F,F< 3.TMZR(]+NCI>;)?2?//?#:O;@P'+24.QA.A33OO)=M M2$9+_6_,E\*$^!$VD1,44?'V".D3P2ZAPD+,9GK8[( J3B^$K ;)=R^#B !- MN]/J9)W8DQ%EI#S$)9Y2UE#X\!45M$!@-CZ;11-=/H,QT>H;OV_UCTJR)MH( M-#98G(6L;NJ3X!]@KGLO)X8L'"?]#Z-5R37V!"_S_%Q0P:)T;4EQ65\VS;D"?5S1%_NN(U4;N>T2RA3,X:L__MXPGHCJ'%, <;SFP<(#J2+6VCR[SIXV.B-UOPDN:&T! M&PC!G>XVV;I0OHF@-K'R$@':E^ S(Q#,38;)?(@9;/: ]@F4,98NHBJGG^4X MN78L4+E9+! ACX@'QT1P=RNW$2ZJ;]B215N)IU6_2IZJ:Q5C!B.NAD,?.0+D"4DS\I+I;UBM.]%1F4D,/= MN$X '@>94BPER.PU#<[1%)\V#U^9=BD1D1;(Q*:$M,QE?4+++MN ?@X6$5V: M6RZ@"B]GEHQO2-G4L=J'2*,RI;8!D!L@Y(4$>O:DAE?M? #Z4"] N]()YQ<$ MYZ6L65*CWEO(K?!"Y=R&=>7?\B%*\=E>:N)8C<)=E MB<\HDK> @^(?^II4JF+ORR+"_FJ$4N[6"I3^NA="( GI/!<'6%8,&SY.@DF- M74&#U-&YG';OUZ:9LSN)'V+R0Y%R=$P12PE4CGL!%*WS]]CTZDXV]>NXV<4H=HC^T91GD9I!\D01V?,"P,IWJ1')N'6B'O"$8[TK7F,KH)M1K:,N(]8/;D2S%G*H8KR88'I:_1T]@T7\2\J,=)'<3R?$G>5"0#B#@H7.A8-&C<\&MJD@"2X-SAO"FA:#CXZ*"_L MA$$^T(+MM87@&W97:2N]=0ZQ]QU#S7%23(#U, M"WM%^<;WL[\J"-+U4R>3!(AL4YSV*"SK S/J_SU3GYN>6>C2%.9K(TC":CFU*168(R MYBZ)%R*K8H![;X>&G"-X;!&(,C.]S)AA[6!O4]/B2HPP#@8&?Z_A@*P),C8M M'( D=Y$95-\@[4UV(Q8T353)1"87<&22AP,(.4& FL4)]O/@X]6GA\K;R;Z' MB(]DS3D3S1.%KH1O#.7%^_9;'0O3@M8/1QL]#S_%9.((0"8Q(W.1POT0XR>' MF2#6@(SAO*FV'I&S/!+#*T/8<@"^^?<#3N>D'W0P#7-R>5_&8;Y\;_GH6-/& M).C?9W6V/GEIKG7)#XXQ,] /6USL6F5CWK#RA.R)8:5!:[0T5+ '8#'OD>PH MI;" G&'3MLV6$YBLJ[GGN\.>I#-4:8 &A]H<29O=PD>%1K,F)(V&#)@H%K%M MZ40+M0#4LCJ 7&2U."71VE#_E:)8ZH/KX)I"-DZHF>PMY*4_5?D4R(0_%Q+' M*"0+;$L#MHFWQ).TDF^0K]AQ_X;DNK-T1MP*A_NJRFP)(OP>EAB.F?]Q<0FP M2@T&^60;4@<$TO5;V@-"8ODK5HI\\^)67K8(W(^DAC(/*66)9/.'P'W"/5M4R!AVE6C8'%SFIS%G?4AWQ7 MB'>GQ:Z8LQ)D("UO\Y&\ #&4>.3I*[_0_AM3;!HGB"26KKE+4^Z M#5F3IS D_ V;?IF)$0_5C!V3%_I'VZ82P(/\ 22;XF6C_=T>V:FX2U@;S8QD M"W*3+)_!7+H9!L<2A#T;AJ9X0N5&4?&@/8'1,7MZ4_ D%1?J4F)1B9$VNTGH M1MWC(V^'5CA"<=BIJV^;BN5^C631IK)'9:O;;31MGO=$<.-7PT CZW!& MNW)J<-:+"Y_H2('\.+MT9!%7[T,6'&M:<Q)I)@,\@^)E& H1BE@OPK_*MFQ6Y9,;CY,F#3<; CA MAHH6IG_WL:Y0.$JLYD(! MP1NK>8+(">7 /^G ]Z@X/$M=7@Z3@RY^1/8]R,N%-B4@^2WSHMM%0WK4DB2B MOP\:@L<<6&@5@VA\O(.),;5M>L_W2[AN$1.TOE_K18L96>Z%ZS*;C_AL:=$W MAVXE9(;?D"3/7>B$5[>O-P3DG"*([.OD"H^9';BTR)'#/OFH-ZD##"DE9- " M-IAD?0]#VQ3L]E&[E",7Z>U3--RLG8]7$,*MCH0;0N@B<$2N3PRNTZ2R9M;! MPSTPLJ&)Y(GUO&(T.$E1M/9VA783]M+;S)&:1"42( 7#-#$0T@T5/4^M/GX@ M$AM<.)!MT(+[,X0"U3ZK6<2YO_J"(\URA^))[96U;U,J*T;2L7N"N912ER&/ MPA4;R2:BK).W;3.D"@A.,K95 Q$LP^(BZ&AMU')P]N,TY$KV8SN1;6]S8MC5 MZ4Y2JP-%99SVT-(PRGQRAP9]U08]AR3VM"18=&)1T;].]UF&NQW4CPY7,J)G MNA":4<+2%)DAA8C-9_==L.)TP/O4FCH2 &OF0]J8\,O>SGA@ZEK53X/\,Y=' MM7V;K>'HVEP1.-H#?DQ\PN6R\&L\W^SJV6&3RWYZ?+_ &3-?$^UTT7R_GM#P M@-@29#9X\2U20KY^4?S :<9C#Q^2CT?.GO.5 TE1XNK!1Q)&TY8K+9*F.VZ# M'_++;P\^_M&L-R]?/Q0,D:>4(U9M%MU6.J'B<](:%<,WM@JI0O3A&T]F):.\ M]VZ6S2;=^&RZ.-H02Q8RHW(AE93993VN7)ZIXXV.6!]5&\S4,,6IR>!ER*;B M8+<(P%,.G+.AG(7G?ETA@WNR!ML.P3[-L%,ARDRWW**1^$&YG&T^3C*HK85Q M\69:R# GQX2XQE1LUR81-B#'2S%)%: 1?$%E9DV;96UU;>\;U-9"F8Y@8I.? M]O[-2%NOX&GY;[)9370O=V(:+GC:SRE;P<6*;$!8-]MF_GS<*N?C?SA[ M>I8)M91B?GCR_'1/TC\'#!27CWU S7X1,+3EA2TJ?F(&2LJBE*:;$"ER<#S6 M@=-PDJNU8C:'-[Q&$1CNKTI#0/&G.U_LE0X:+?1RYZ2\NT)>(Q$[B#,8"/1_ M[U*,U0VNM PJ8^310N+)?"U253"5+K47?ZRX$Z[Y8MN>BZ$/W-1.<P+\TH5[P_<]AYQ=J)^EZ;EBN-CIC7_ZG:^2INV/-&<1_U"T0&=J= 287S%U M9A^E]8C=E8MNU]4JU6R6UG@Q"L>98_L/7;5R38QM,K'RENMJ;=,O*8*SRZ;3 M6CRP&U&M.?.4DMGC"4^FG-RX=)\Y.,U>+H/RKOHY-):HWQ$\.FCX.\9N;IRVH0,W7V M>965#\3;ZQ68]HJ =YDU_.,T.954DCUB#.SU=H5<6^![EJ%_/#2,BKG:<@\3 MG)[&K'7/;3AR/V/-.7V#-U3D3; 'J>-#9#&^4\"Q MN_9V20%%?I0Z#D3/KC=5L[-69TZ-8.21)@ O!+I*U<@$+U%M]3U?XL%3X5K& M499(?*3Q>$P]A*E5,^MOGOHB-,"(;>?;5)T[X5$DY=-[%P-+$; S9V5'K]I% MRY>JH_!-=[! >J&*R^(I[7^1>_1ALF>4M+#^-YZ[SM(E_ZIWP?B&QO=)5"UI MV#HLCN0LE/%6!C@6^]_27DF%/.\3)[&\G-8%Z M[_Y[529C5RXFH;BH/3=QB'K;"<)HJ3EFR=9UG*^%88CA<]:>E6."=.]$-2)$ MD-G]OU#ZC'VJ DGUROD@TYEM]N#J'4?>XPW7+GLC2=9J=7@E5(Q&Z#X:ON-# M8X#0R]4PI@S>SE,T49EVD"GC]+7^@&JZZWI)",1:_,WQ^Z_[S6><#!EY!<9W MMNW6(3>3Y0*>:3@X&M&PF M0KN*6N]!FF^))((?<2DC*;KA-1-3)_PX$J;X8QGL00\4+R^USL.[KF9+L:G8 M!2ZZ:?5NM-%Z$8D9!)*AO,53Q6O%L0(J4!VGP3VD.,9Y\I0;C4[W!'V?5^DU M <,;BH7ZOU>5*;^<7) MGO"P&AOK-/E,'"2GP"E+.XQ.7.9R=2P8/7K*(4MNUESCKMG0R?-0=UDBKCM8 M2\O945V>_Z-39]_=[O3>1QW]P;3=7G%A_P8B7_V4"\:A+3XD$N&+TOOY0)R$ MA&##K,%UYC6WGHM$6FV=()Q7,DQ!2MJ4Z44.$F*41MTK%UIY%HZQ2>[E#4-6@)&N?O'BN+STZ'[E1"*_"' B"/^#T]XR!YE":<&@#A"W[/3PUQR\?1/^/(>+J@.7PV; M%4S0%UW\>T_FY>SQZ3-I#7Q[?OTJP/'SZT\DFE/^]>3TR:3X;?CVA0NYFO0N M(J%QT=EHF#Z1C1T#$]F8Z]Y_51]A9> M\HY+?M&PO=V]R:W-H965T&ULG5A= M<]LV%GW/K\"X._LD2[*2;M.LXYDX23?9'=?>)FWV%2(O2<0DP "@%?77]]P+ MD*+CC]WM3":6*.#@W'O/_0!/=\Y?AX8HJJ]=:\/+HR;&_L5J%8J&.AV6KB>+ M7RKG.QWQU=>KT'O2I6SJVM5FO?[;JM/&'IV=RK,K?W;JAM@:2U=>A:'KM-^? M4^MV+X].CL8'OYBZB?Q@=7;:ZYH^4/RUO_+XMII02M.1#<99Y:EZ>?3JY,7Y M,UXO"WXSM NSSXHMV3IWS5_>ER^/UDR(6BHB(VC\N:'7U+8,!!I?,N;1="1O MG'\>T7\2VV'+5@=Z[=I/IHS-RZ/G1ZJD2@]M_,7MWE&VYWO&*UP;Y'^U2VM/ ML+@80G1=W@P&G;'IK_Z:_3#;\'S]P(9-WK 1WND@8?E&1WUVZMU.>5X--/X@ MILIND#.6@_(A>OQJL"^>O78WICP^^5'UVI;4F>)T%0'+/ZZ*#'&>(#8/0)QL MU(6SL0GJ+2#*VP K\)E(;492YYM'$=]0L51/3Q9JL]Z ]?OV$CKU[]_.;MQ?O7CV ^FS"?">:S/X>9S'P_*:A1P."WJ%]T;!+UPL5&U*?G&]+]8YT&QMUZ6MMS>]R@BITI-IY\SO@IL-P MEIY4LE0?@7!'/,I@D1AD;*W,P(>"4?J^M;M MB8**3MV@1#!(2;7'HV0%TT:Z&60C*=/UR.DP=]T"=A;M4/)&7MN[R'[1;5[, M:Z^MVUE!JX8X>.*3C+811\!TYKS-/E^@Z@0<)T>XR?\+U9HO@RE-W L,C @] M,1,--.LB@-MV/QX4P01N 6E:JLL;H+1M"L#D/C<&O(&3&:#1)9P=3&T1TP+D M)OZW&;*C2OABJ=ZY'0$[ 5>N1;%E)U38Y.#>1M]0C@QBRJP[O5<%TM;8@1A& M9QW.T%\\N<2W:]IG&$/)Q-:Q0)*FC,5*%[5@?L"1NG<>?,X=1 6W@4[(.T2[ M0F1+9"&'[6<^$6?7#M0M2GT$+5L*.$I:&\D?&WOH%J/]?! :(9X7+(^DPOV,S)+]8F2._'(N!("9#E#@2WQP7PB M$CD>A\944#TF@YDSYTA\$GJ6Z5!)Q#=VD+($71QRW=AQMP&H:"R"^5[5:-=6 M\F8!2<8LI8YT@"-RP-EGDZP9!LE8#D6N8D@9).F2=5GD:$;M8];E%*D%NW(O M20X$Z^SQ:,J!I9R&-+?" QL^0S=QGZ&,%YXR@;!\/'6H/"V._I@2=/%?M"3: MDTV"@33SVM;B[GQV*@GBS5DYL[?J$GN)2Z-GV5BJ-4\\69_A3NTHW-"6N<0I M<[]XA=A8)E*H-13_%645K3X+1)S Y>W)!]V25,N FC_&(K!_T?WV6HPF.\*ZJ/F M2)>II(&=3*U64D*A(F%9@;"Q@U(:&G8#)DSD"\S!H9*>J-I*=K8BGPL7XJB. M\;B_?O=\<_+#W\.LA$B8$$38RF+LN10-?FQ%=WOE-A*-4]SWOE.>N-B&: J>%,/!L=4 NJ=7[5)0+0B)47NXU:=#!H9PN M.%M*9+U"EFEJ??6XG"HQ5@>F>ESD\QDSJ;LPAS=\ P MS[WDZK;_DR E.GSKE7$/^T;ID)Z")SX#P 3] FV-EIJC?V;LK<-D/: MWHPX3DV\;[>4).5;7^Z\-\SN&*)39II&?0P#1(6@V8*;#Z96,XGM<.^!5W&1W,C3+>V=+='\Q^E?_=-M@X2 M!7OE7>UU)](Z+/G'H9W-!TNM/O/>D/?V>6\Z;IUZ-M]ZCY6S-B\<2D\L&1UB@[2VCF.*R21E*:S-J;/=/]2Y?I5NPS_>1S\- M?_?:7KCC:A!#M)373%): *Z5(4D;2MY)M>^U$9/Y/M4>3%GP?05W>_3MH\/B5'2JC?@E,5A^:%IF;5$.G*7)+EBHHJO*N^\:, M1R)U[TN;U>PM%;*_EG=QTK!M3"^LIJ?3Z[Y7Z2W787EZ5WBA?8VI4+548>MZ M^"F%-*?]PMK5\6ADT@)+9H9J MA9)6EDJ7S-)0YR.STL@R+U2*41)%LU')N.R?G?BY>WUVHBHKN,1[#:8J2Z9? M+U"H]6D_[C<3#SPOK)L8G9VL6(Z/:#^O[C6-1BU*QDN4ABL)&I>G_?/X^&+B M]OL-7SBN3><=G"<+I;ZZP4UVVH^<02@PM0Z!T=\S7J(0#HC,^+/&[+L_9DZO%0)XY^P#GN3J ]I M9:PJ:V&RH.0R_+.7.@X=@<-] DDMD'B[@R)OY16S[.Q$JS5HMYO0W(MWU4N3 M<5RZI#Q:3:N,%6YY"Y2)R-+P&YYE-8@%P$DV0,2)_!)25L8 MN)899ML ([*H-2MIS+I(/D2\PG0(XW@ 293$'^"-6S?''F^\S\WK+]>WGZ_A MX?KR[I?;FZ>;N]L/4"]2> M?C)%N%L(GC.7)P-WE29BA 2N.GM49P_3M*8Y,8Z+5S T:Y8<,V 6&*P4EQ:X M!$M$ R8S$+SDEI8;6&.)ZF6 V0BK9]2UC/&T(Q4JUV@,FB$\%0A+)8CO7.; M2;CA/*@EJ'\V^KA'C -+,+\CTZ&H@$H"RP7II;+HN;)PM1'UOK\AZPM5&;+> M_-"KZ]GT*&8IDG.DL9F#CQ8;2;+-,^&O+3L4:E=$9+(,IKAN[72LV&OI2F%!6TJ2K"1YWP2W$RS!&1E&\[@5GUJ\T4@J MR#B6/8>27FY5>$5U',HZK5'WX#^B;5 M+G#I#AN.WQ*K2S_?E=_-1+TW=32@6*2BRD)0%%E)^BNM7;C#CMY!;TZ_I+3"5P63.:T MGRQ\&QN:\GW&Q-6X?&3KH2YDI=I+%Q8;(N[OPAYL. M>.0;8/K>W8J:8=< C8+9T$CVEL(0/LN-C?M<<0KW5Y-C:XX2-1,477Q94>:" MVL4^&H>\$4\EOE ;D=0X]]-VTQI-)UM-_OYUKHY[^P[3-TSWY/9\/O__6HFB MXZ,Q/>-Y_ '>WNCVDMFX%Q/"D[),$,YL.G.8L\FN^]NH?3?C@TFH%5*W^M7BA+O&ULQ5A+4]M($+[K5TQYJ2U2)6P] M;9F JX X++4DH3 DAZT]C*6VI4+2.#-C.]Y?O]TC69A@.\ >]F)I1OW\^INF MAY.ED \J!=#L1Y&7ZK25:CT[[G14G$+!55O,H,0O$R$+KG$IIQTUD\ 3HU3D M'<]QNIV"9V5K<&+V;N3@1,QUGI5P(YF:%P67JW/(Q?*TY;;6&[?9--6TT1F< MS/@41J#O9S<25YW&2I(54*I,E$S"Y+1UYAZ?!R1O!+YFL%0;[XPR&0OQ0(NK MY+3E4$"00ZS) L?' BX@S\D0AO&]MMEJ7)+BYOO:^D>3.^8RY@HN1/XM2W1Z MVHI:+($)G^?Z5BS_@#J?D.S%(E?FERTK6=]OL7BNM"AJ98R@R,KJR7_4.&PH M1,X.!:]6\$SN^>!$BB63)(W6Z,6D:K0QN*RDHHRTQ*\9ZNG!)RX? M0/-Q#FP$\5QF.@-UTM%HF@0Z<6WFO#+C[3#C>NR3*'6JV+!,('EJH(,Q-8%Y MZ\#.O;T6/T#<9KYK,\_QW#WV_"91W]CS=R5Z=OOG\.[L_'K(1L.+^]NKNZOA MB/UU-E9:(C7^WN,B:%P$QD7P&A?;L-QKAH[AL9KQ&$Y;>,X4R 6T!I^_W U9 MP'[_+?)<]SW;ZLKZ,I@-!X;K? =J=+45S7U95P"BW.N5#;)(&$<=Q8\ MRTGL" _ZD>(HS\N$Q0*/G]),3)A.@4U$CJ6;SM.B$_7QQ\#E/>^VG8C MZT+(F9!< Q[9L7Z"!:4)&.HDB_&[HEP3F F5:2NPW5[/BJQ#C[VC1>1;9QBJ MQD80/V#@CV8LUPLMMW'K>EWKTU;HUQ54)D--&1Y8/=MW>OCT//PQSLR>U[.N M13E])0Y]NX_5.+ (B\.P9XSU[:C;?S,(I-NW#MW(H!!UG9TH>';HND;615E< M.7UK^'V>Z=5::F4%W@90@?\+G'("H(;)14P"JJX74&Y1U^2&NU[D/B.D\[\3 M$J%RJ:I^]PDA<3OTWU@+WW:1WMXC?KCA![M)Z?N;I$3)5Y RLITN@1U&3\*/ M;!?]OX&7/3OT^OCL/H4#M_OAF^'H]T*KB[W'-=1T_' /-?V@9P5AXQHW^MXV M=JX%#ETZB;[S&H;Z=M3W#2G-4<9B&8IB:*%G(1]_(AF[H3QH/,$9P[H&W+E+ M>_TF&7^ V=_ZSV$_LN\2>=[S7]&4O-#9:$B/]5^_O8T! M(3;EJ&Y-?AA6S7/G<;"]7E3WIK7;]7-KC:ETH=USNQOMAKS43?IYRWGY'RO? MV8K"?\4C<.O#\-+\>H%KB+J]*HQ&BH;@>X:+9S'F.4OY E!&K_;/Q)R2AV;#!YL4W4JUV, NCC$0B;U MD(/S3#$3)54&=7D _ #6G,/@+&II(GF]@;71-G @0N3H$)0:/-I+4W M;P*F!@ZGM;UEV(8K(=3&<1_89X'TZAHC/$E,4^$Y!EU=]JI[UY3+!">^:OZC M'K&@'D'XB1>.FVUV]6+>/)U*8ZY2 S7Z-,I4\:@=X4THS\VE;A=O#MRVOT_* ML3=GV_@M9ZV-/1=PD%[23RFVT%,V]%9*Q)EAQ#+3*5I=U2.U@E^6"\T\B[[- MMMU7.AOWP +DU-QV$44Q+W5U)6QVFPOU676/?!2O;N/8+J:40PX35'7:O;#% M9'7#K19:S,RM&UL MK5;?<]HX$'[W7['CZW3(3!M;_I&0%)@!RDV8N81,H+WIHS +=FM+5!(AN;_^ M5K*AY%I('^X!V)6UWW[?[EJBLY7JF\X1#3Q5I=!=/S=F?1T$.LNQXOI]CMR8LA!XKT!OJHJKYP&6 M"A6N;$+0:^SYBNI#8_6[# MYP*W^L &JV0NY3?KC!==/[2$L,3,6 1./X\XQ+*T0$3C>X/I[U/:P$-[A_ZG MTTY:YESC4)9_%PN3=_VV#PM<\DUI'N3V!AL]J<7+9*G=-VSKO7'B0[;11E9- M,#&H"E'_\J>F#@SF(&L@!S5D= 22 M17 KA/$QT;.; MT0,,)[?W#Z.;T=UT_'D$XSOR1R1Z,IV>GC#X1*["E\\L/XG0<=B6?Q# M0E9T'.I:.Y)Z"_W(BY+/2WQ/!-]K7B)H)!*%*5![K>@R(MSTDBR6DL62U&O% MS%HL\2:OU==22RY21XU K!>VG1?'J74=%'EAXO7-3W5FMK__K?6N4L-=I68' ME>H?5*J_EP96V]1JF_[0UL^R3;6IA^97QXT]9KP!+[G(:+SX3^S8E2O\N^0R M]:R&BYT?7I!_HC1$AO0@/-L!PR,#9AMG2VPKH&%T1$6 MMC&_PX'MIJII?=.Z S([_6V7NA5'KI>TE+(0?GE8!0X]300WPM27 MPWYU?[7VZQOEQ_;Z7K[E:F6'N<0EA8;GEZD/JK[K:L?(M;M?YM+0;>7,G/X> MH+(;Z/E22K-S;(+]'X[>OU!+ P04 " !K7&M4!)&,K_$& ^$@ &0 M 'AL+W=O)=$G*KO?7[SM2DN74*=8]#@AB43K>?7?W M\>ZD\ZVQ'UU.Y,7GLM#NHI][OWX^&KDTIU*ZH5F3QI.EL:7T6-K5R*TMR2QL M*HM1,AZ?CDJI=/_R/-Q[:R_/3>4+I>FM%:XJ2VEW5U28[45_TF]NO%.KW/.- MT>7Y6J[HCOS]^JW%:M1JR51)VBFCA:7E17\^>7XU8_D@\$'1UG6N!7NR,.8C M+VZRB_Z8 5%!J6<-$C\;>D%%P8H XU.ML]^:Y(W=ZT;[J^ [?%E(1R],\;O* M?'[1/^N+C):R*OP[L_V%:G].6%]J"A?^BVV4G9[T15HY;\IZ,Q"42L=?^;F. M0V?#V?B1#4F](0FXHZ& \J7T\O+*JPSU^^ MDLJ*#[*H2-R2=)4E1-R[\Y&'431)!&W1OOWUZ_?WXD_Y@OG+>CQYU>,S%HCLV!D]FU&CL7SZXI>OWE_+4[%#]^=)9/) MS^(Q\+\3..C)@AHD?$YBR0G=A(2:I3"5%=(Y\DY(G8E"R84JE%?D IVX_0S&98NK6S5PH] M &!L1K;81;LR'N\%^2V1;G2LI?6*38',C9/EGN BDYZ&@?@R;/>4YEI]JA"8 MBN,"KVKQ;D1Q\%2I_HZ1AEP(\<*1WY@KT<$%UCBI(+N3=6,X85'VJC(>)0 47 M4AA*<9TJ%_(-&!H) S-JNG;2SFQ]\BN[+R8B$=/>(T5+@+0H&E0N0,6F<(A[ MI_2J]^2&.0"2(0;NQ]Z5+*0&T;\0[_T6P;YMP@6)O$ \KWNS#?Q/I40LG!\+W76X<"DY[T79XY"BM; C)\][]\&XH5F9# M5@=.Y-D<';V#!>AFB0_'[OUPMBUL3@5J"<+W[$3 MU*:$X\10/04*9K0V3OG>3X/Q;-KJ.%R%V*#,I!\1S[V^7C(XG9ZT4H>KZT\5 MDZ:6WO6@KJ.Q^7UO/&)?'HL*/$IF@]/Q&2ZP,ZQ.3D\ZCGX#><;?1I[Q_Y4\ ML]G90_([NHA>:9C_OM&\B2#R3/F#7;& M56!1L_DE)/4J%A9VC;,^$%N4]ZT&4&U$'?:',>!T$@3Q3^\;I@L%OFZ.G3*_ M+ZU#,1>ND^JVU:)\HR\;//D;AK0 MDO 8@JW^II^&?M&V'EYMVJ;90?F@-3#1>?;X=RP;H!/]!P)%;<>)$KI@.QEE M^VFG1>_0D,P&?08U2W(YP%*VHP'#-E8L.[1 -$A9SFM+539=,YFI@FS603"TUA \:"; M1D.IM';'1)6EJ<($M,2 H%&U5' 14*M8]3"/%17' +ZETN4!$"#&DKB& YAX M."]P'. M%9(1[3UQ(H,[/ 3"KLN-]4\YZ(#CFU0$WAA'7<-#<0>ROX9[8A;G MRBQ3G): +[YLQO>^%:+)KG"T]LD)U?7H(892_73O;#U.N HDERZXMVZI6* ! M4&XPYJJ2!3?<,E&#S(5%'%O[9:? M!VP.X0>4P,OLW[NM2MY@08JAN%DV\&9^'Q]X[1YUW>@1H%;Y<\,B.",37^_9N^W%D'K\)[,7C MEQ5, "L@!2&7V#H>/COI1_HV"V_6X0O!PGAD(USFA#!:%L#SI4$XZP4;:#\9 M7?X#4$L#!!0 ( &M<:U2_=PK()0D /X8 9 >&PO=V]R:W-H965T MFFJ0L/L]$,W%*&[ M'Z;F0=ARK,*V,I),R/[Z/4>R'3LDT&S-2[!EG?OMDSA?"_FH,L8T>2[R4GT: M9%JO/HY&*LY8094K5JR$+ZF0!=7P*I!YYV-"LK+P<6Y6;N5 M%^>BTCDOV:TDJBH**C>7+!?K3P-_T"S<\66F<6%T<;ZB2[9@^OOJ5L+;J.62 M\(*5BHN22)9^&LS]CY=CW&\V_.!LK3K/!"UY$.(17[XDGP8>*L1R%FOD0.'/ M$_O,\AP9@1I_U3P'K4@D[#XWW'\SMH,M#U2QSR+_R1.=?1I,!R1A*:UR?2?6 MO[/:G@CYQ2)7YI>L[=[P;$#B2FE1U,2@0<%+^Y<^UW[H$$R] P1!31 8O:T@ MH^45U?3B7(HUD;@;N.&#,=50@W*\Q* LM(2O'.CTQ2*CDIU>@ET)^2P*B+6B MZ*[SD0;NN&<4UYPN+:?@ "<_(%]%J3-%KLN$)7T&(U"KU2UH=+L,7N5XQ6*7 MA/Z0!%[@O\(O;&T-#;_PD*V_S^^N3R_GB^LK\OGFZ^WUM\7\_LO--_+'_$%I M"0GRYRM2QJV4L9$R?J>4?1Y]G=.WF_MK,B'__,)'\J6,68F93VYS6I*Y(B(EX%E6/##9>G<(Q$PR LE %*:$ M(M]$>=KRNN(2RDC(FNFOL%KC3W@V]#RO80G;8U$44(S*L($U)I\@\WB)1(0N MEY(MJ68$N@WA2E44M">K2N*3)EJ0M-(5\ 5*+7FL@=;P)DL)&Q2I(/4D$95\ M6WU:)F3Z-VL'74]I8,S+9_7!)=^-!DBOF2R,T?BR I%#PBA(W$L* MSH@9))$"MY45S0\& /@%.TY%[[==+;@0*J M$IW=!$21!Q(0+_#^?HV#8/*FPM:C-[9"YP@/N-X8$U*1 UI!32#C:(-8D(HV MVWBY4W78%-#['YV;>N5FVPV@.'S)R8![9#K9R9CKJ M0R; +SC/S&*G M0S5\T5T]9^S/AK[G.4>.'[E!X/S'QM^Q 7+&@3OSG(9YXIQ,9\,(_/#!\7TW M.', RJ2,HR(G_G RB<@'XD_<*'A=K.^$D3^Q@!B7#=(\+/IL86H(%P/F[I<<*T.^\KXJWM&I="5N'Z9T_CQ=!%G(@?20B0LMZ[I?T =#$:V6\#,6,B5D&9B ,NEM8$" M0"BZP< )E' 5YT)M>[TV87G PY&5);EZ/$T!R&$8&$X*(DU0E#E]M$9\+TT5 M+[01>P\',E5!B]IPEB=P<,#)6(\$L+YC[IIKF+:=)#*)TS9.)&#/*SMCVW(3X+)NS;G03^MO3R*'Z.38HS'ZT!Y6%:ZWWNMHGN85 M5H^5P)OLX "VVFZS.^9M^]B??DU,U^(4S<")R$5"&)Z']@'E-?@256T@73_% MW\)--IY8(W6^UTS:V?7(-KTL!/6L-_!C1]:A"K#FG:(K<(/)]H^.[>\XBN[V MIZIR?->/CLDI@;_38\=SQV-\\]S(.W:N>\G5!-R)7'\&>R+W;(S/@7F.(F=/ M6)UHZGH!9._6/G2N8T DXW18#R/>\X_KWYVXS[;J\)%NP MX ""<(.QYS,&@33<2$@98)96Y,(0A5*UP-\7[-EY4A44FD#/FQ(H*F>8U-&EA=&Q,W3UA M@GL;=0CD)!9LN@?;VHI)N81."BQSJK 9;9K-(DUAH$ ^V[GBMJYM+A8TC#:K MERFPR3"4$#[+X^+_P%02P,$% @ :UQK5.5N"9$*! R@H !D !X M;"]W;W)K&ULQ59M;^,V#/[N7T%XPW '9/%+DDNO MEP9(VPS7#[T&3;?#,.R#8M.Q4%OR27+3_OM1LIWT)HM!<"E"8G?FSZ/1\:.6=P&\<-_K9-UA/5E+>V\55>N:'EA 6 MF!B+P.CU@!=8%!:(:'QK,?VM2:OX_+M#_\7Y3KZLF,8+67SEJQ#4FLCRU:9&)1<-&_VV,;AF<))>$ A;A5B MQ[LQY%A>,L.F$R4WH*PTH=D/YZK3)G)Y_%1Q$M,^C"( M>A"'<70$;[#U<^#P!H?\G-_!U9>+F^LY+.:WL/P\NYW#'[.5-HH2X\\C%H9; M"T-G8?@O+.R+Y-^@W-S-X01^^N$DCJ)/L)>VO3/>W%F%+BEY MK>'' -M%_5 M!E-8/4'*'WC*Q1K$3H6V38ZP,0-5 E:\.$ M@TEK95]6GRQSF?9?DTEYX8S_]W2(0O>)WVK^P H4YA^2O#BDETAJ+]J\]=I( M6%G^NB9.=665'U$E7*.5I;),[D%6MK'H'CR@-M8DG9"N43QQ(7!"M>#FL$AC MS+J6*5E"5:LDIQZCG9'FL*:*HCC4"N9E5<@G1%@ZY$4K#(N"B1XP\H8525TP MBUSK+@:&>K6NU5/+IT23'PV)O3=\3(J:"KEA95$Z:-M)B9LX>NN95>$*,,NH M^=HL8,+PGYT4]> ^W%E$2@PIR+#> ]CDM(W+2^@-TH,\S61!OQ-]ZKV[$F1, MUIIDM>6-E7$(C3PK94T6WGN[/N=][5)MUJ;:LG'\9I=#WK87PLPA>+\C4TUS M@R@.!E%@^]*I=VYY>C]Z4=P;CR)OW!O$H5WVQT/OLG6W"\,NQ]X$W7/U'G_R MXFCLO0O[X0C>;_6?PX\&8P?_X>/_ZGFX\WS4&P]C8A9'(UJ%_9/P^QP??'2. M#UXZWJ$/1T.'/AY["VE(G[.B>((NH_:4\ZL2/527^XOQ^^NP#\?X':VK?77P M,OO3&FUC:HKK14EUH7Y='S *>V$8=O:YV@-FOFDYUX,^5=,[7FY&J!&:G2A8Y\4,WDU"R,K-RTLI*& M9A_WF=.PB&ULM5AK3^-(%OU>OZ*4 M1:NTY$G\?M" %&AZ!JF;:0&[:+3:#Y6XDECM1Z:J3&!^_9Q;-B8TA.UYK 1V MV57W=>ZYM\HYVC;JJUY+:?A]5=;Z>+0V9G,XG>K%6E9"3YJ-K#&S;%0E#![5 M:JHW2HK<"E7EU'?=>%J)HAZ='-EW7]3)4=.:LJCE%\5U6U5"/9S*LMD>C[S1 MXXNK8K4V]&)ZIH.6O*ADK8NFYDHNCTP'?^MT9LEY^$$:<'*EFRQ6MAC8:V%"M-)PK M:DK*M5&8+2!G3GXV:ZGXQZ(6]:(0);\VPDB ;CBI.YH:V*"5TT6O[[33Y^_1 MY_G\;G=2[SYPJF<&[PT'_T\-1_4^,'N9CPP'.X[_K>&_J"(>+ Z@OV M17SST_D5_WAQ.;L\NYA]XM7-_S#[&;&_S.;:Z- EO^^82L<;(76 M5OBG;+V&[MOZ+G^^.><9_^<_4M_SWO/_$I M3E? M-4VN6>RD>!DZOIO"H0K.(@>V;(NG(!Q>HTMYCIM$N":NQVX: \[N+(%Q/W%B MUZ>!Z_B)MU\=%TIR37S/N3! "/"4\!.=8M%6;=E-5(TRQ6]6V.$K64LERO+! M=H*<4UOA0SSR5!$$#G@_B3%?\+/?VV+ MC:U(0KV4,+QNRIP7%7"]L[7ZU],[&*'LQ8X;>32( +7+/KUJD@5VDJX^\S+' M@RH0P M]MAMZ+K%7H+-T+;A^C@4;PT06)OP=1B$XD[!WL!LX7A+:NQ]$". - M#5S>8WO2$OM#9\\T7'X/8%NA^8$W0>J*LNR28!N,E<%$\LV$.T$Y&5&OBGDI MN=!:?C?J5N^+-^ZWR?A1->#>F5#J 2J>@3C;Q>Q2FC^T]@M>UUU].EE"A3%& M(7HAMU!'J9U(@WXB0OYHPL]<=MTLS19% HK$;(P+1&SK\=\_OG*Q.&:?A?HJ M#3QY!(9 [#8O!&Q3 V_TNMAHED(NSJ#)2YB'$AXG9-#/R*;CQV'G1IIFG7]) M9">\(.LGO+#CB!^QV6M$V,TCP6PSC;\N.?J0_2*%ZC8G_JPV;NT&3@C>K2;\ M2M*)AD+ZA'+^@80T=8F7B=U;4SO IXDMIX"!<4^PQA3V(Z!_"$.6,7_2]3A; MJ)G'SK4IJJ[;K%9*KC!\O5*&SK5HE:(J*5[PFEH4$;J6]P8#)25_L 4VJI9 M])4VESO(\D,TK0Y]_WT_"-[;,+J'D-NNJ%H(]\[\]<9UBY-CA]4T_B%$N4$K5Y0&,6\Z(LS /+PHPE6< NZ@7@Y4;<0\E&/ @"(0@][L<9 MLTW^5Q+[02DIP0&60 MOAH+"C:D8+W$DBP(V37R==D@_X'-I,CS@AA@=\KN&-^=J(>."=?MD6S^7!'_P/RE:BHP4S[CW R>PL$%_.H<[P'&X:.FW(-<3:MV7-F^P(AX^STM M8&]N3D6)\[&D!C"7<-4V!HK6!D"IL?TIR5)F&0ZH*;XG$-!B40!8%C^E$.DM MM-T%HP#-+@R0.&/*?H.J!'#.6T66*-S>U#CUJ#..TR!%']SQ2Z($GCS*T!'( MI[.^QC?4"#KLW@**C5$9I)Z*XQW[U-2K'W#FJ]X6.B .'A +]W+XD-]0REYZ M0ZG+]TE1WHIZ4;:4*6KC(%&U 4%JRS61W]GHARZ)"K;@3:RU!NB83S;2"$\N/O8@<9A0N>%<1!' MH$5WZMX;$PO#R)I]A7S[A<:!YY()/XJ?,6^_Q%-;?.U+;;KS30QNK.R7/W7I MMC;=Y_'P=OAQ8=9]4S\M[WZ9P-8,9#6.DDN(NI,D&G'5?>UW#Z;9V"_L>6- M1#M<2]2OH@687S;HQOT#&1A^=7-+S) MP 9D6:3NN0%.[&2]F)D$L3/9Q6(?6F1+Z@S%UC1)RYJOWU/5S8LLR0FP&& ? M+%-45W5=3U4U^6IC[._Y4JE"/*S2+']]LBR*]8N+BSQ>JI7,NV:M,OPR-W8E M"WRUBXM\;95,F&B57D2]WNAB)75V\N85W_MDW[PR99'J3'VR(B]7*VFW;U5J M-J]/PI/JQF>]6!9TX^+-J[5)_66 M1-B^KKB_9]VARTSFZIU)O^JD6+X^F9R(1,UEF1:?S>;ORNLS)'ZQ27/^%!NW M-AJ24+^>:5-1MA:36X MT06KRM003F?DE-O"XE<-NN+-31:;E1)W\D'EKRX*<*3[%[&G?NNHHR/4821^ M,5FQS,5UEJADE\$%1*GEB2IYWD9/E'X!+]^K5^?^?6/Z??K MNX^_7(N[RW]>WXI_7\[RPB(0_O,$YT'-><";^)Y$.FDSZ0C_]-QNY =X8P!F3&,@DM@)RP5ZU1+!D)O MK1P2E(6Q6V$ABB@,WU7SN6*@;+%T"W0N9.YMG!^W<&-2K_:CC8(H[/:"Y]4_ MML..^!V1H19!R+FGGZE,S741]+I]_$7!A]3, ^R M@W^?:/N0_ZSR--O6+1"G,(AUA\'I@)E([P-PZNZ]BH@@)I#[&?!]/N2#P7'TO;BI\F<#(&<[&A\)'WQLI9 MNA5Z!?0C")EM!7NK(\@5'?%LU!MV>KT>A8!Z !3ES,I' 5A8LQ)JM4[-5B&* MCWB+E:YV4X^HOW1ONW5X>5>UG)$[XCTGY=VG5>P]H>*SP73\?ZI5!S+-<^0< MM%A+6Y"XQT!CIA8ZRZJ@4EG"ERM39IRR"VN@V$ZL[6AY2A$6]5Y^N7O+5^'+ MLQ_%E:/(_8'W!$=T9RGE "*Z)2>DVH*E \7)U/T' %\FT!V:Y<*9V3B;K$WN M;UN52G*>!T8/\8Y9U ^#L#]N,2$0WJ7'QFNK<9LH\B ,@/V?55+&/TAPVI]R MJH^F0(R#2L+\.^I-)U&MYJ_PYY/+HY *1#@=YFC#9 MNYO8TJWB.%V\!,P"4/0A-D2?E(Q,]"/)(Q#NCPUNU1^E)I "3>$]V=((_!:8 M.?*B9<%B"367$IDI,Z%0=V:I1FO\&/!R!'L'8PB!-\R.E*ZRAD3,N2(=R)^N M($NA5&'XR3GGB72Q[QEV93MX&_R#@S'[:(!#2]O_8??*GM![?T-]9+][W$$B M<=7-U!B2I2DRW.\=MJIS]P#2Q&EV+I!2/.)M4) M[UE9AL<4%) M .H=AJ37+B2Q##:BK=PO1VBA;EHFS)O#4\X,Q1E#G\MF%&&7NF*C?&O;LJZS M91,M!SU&6Q*H=82>-R9*.AAMRS39*RULZ?URQ :>ZW2WAU-%:;,Z)7?Z=]ZW MB@H7!>U:\0W)FB?: 9>K@57('MA@7B&8D'-8$OJ$8\YOV!D6RLO9-\A+?E4/ M$A.MJR^H.236#1D_H_JE[E56*G&+P-*Q4XF89(9#4-DVHT;DU,2[4K7V:(OF M@!:D))USS4V6$H=JX\L2U<;J8DO)? O\D6L:6):23 B\X8B1PIH2X*2X2J-6 M4I1;=4^G$2 C]V"#R;Z96!\>_+("[I0(D5BO.?T(P\@48,Q$7'DI5DOJ$S=D MP\Q4,"=R.$C/=0P.=5"X#)Q#;11P&A4\0 JHC"W+U(U,!CVK]#Z]V@-(%Q10 M:88>@#/ CUL'IJV]0-Z[TWM\$I;>: MROB8ZMS,S\M<598Y-;N,\F:(ZX]J4D%#[TV&<.+AI^[1\V X[*%W"8:#*2:] M"K,\B*%3@-05NS":UM=?I;5P,S@1!>9)*N'U0M3^ZKIVIG6Q'/3#YL%!K3$'0%D/(+27:1MH$//K]9N?QL*$_-F31 M;%QO.9S4UZUQ).PW2\*P'\"8M^6LH*DX&*+YZ6'LG0:CSG@Z#,:3P<$QZ33L M#*;]UO!--V"9YL;N /Y$7O"91S09\[A-_>6PTY_0(0#M_56Y1&VGZ4&>5%M= M;G)^81( TL.238.5[W18H.41P".+S_DV#I.8/!)\N+S\Y-=U#G06CUS6"H;O MNA<%]X V8H'RC+#BIL-C'+"WA%AJMWP#?V?<"BB>SC=+4NZ@ZFL"58"'XXE\ M=X5XK]-H0(]56/'6,\4V2ESS35;;/3(1Z]("(^GH@47XKM[8D\HQ9)=KH#X5 M M^+-EJVO-,AX'7*';Q7=7IB!ZMFZ.2/;B0M!QTHFH1&=.CT^9>)ABSKM@Y%)K8&J M#G[*K"2W<@Q0F*/!<;-[RET6"0V;WM"Q@DRW?U;NJ&/ED$V1(]1<6@1[95"* M'(B')H4U@#HMHS2)5+4>1Y)/H)^VO/\:ML.%5$T%/)>O9MYD4CAV._4#!(P Z!*!D5YNT*L%1 M0#XD_8:G"C?:N^/"\91."SN5!NR2H[*S9^'KQ%3Y[PEDNHE MCD;NV'9'YN^>27K1J?IQ!;(.O532%?TN'(AQ1W-9DG[VX9,]-SW2.G_T.A8\ M,CO ZU+;5=48Y:9^JQ9 ).OG?A[@ZU/+,DL 7>X0''VXM)3?^H-?HY/-6 MWY&9[)S5:\]1=SRI-05*MXX7'1[E-* :'ET).>H"30^O*>IBN=;4>?J4<1T, MF;)"0&;C)W/*4IUH3.[*Q^8=;/NN]/'\#S/+Q25"P1=R?TXAGJ.W8@!)\O.J M^SI/JK-)7N1W.,_Y<6"SONG6^,PY[#TGGZT(!LPF4\VA 4*+^CAOE^J@E-"D MLZ."KP0P5&N@1S_/)]'O.^[9@!OY)7E]I(FR7Q2254/ST_# MMVM[?FI:KU5-UU:XMJJDW;XG;39GP^FP__!-K4O/'R;GIXU[(TYC=^^5"<#1,F1)IRSP@2 M?W=T25HS$&C\WF$.=R9YX?YSC_Y3\!V^+*6C2Z-_584OSX:+H2AH)5OMOYG- M7ZGSYY#QT5!@ M^:/T\OS4FHVP/!MH_!!<#:M!3M4NZH**QP 3T-EQ2GM.[],W$7^D?"RRZ4BD23I] M R_;^9@%O.PU'Z^OOEWOME9A.Q9_^L$BGT[^(9T[\2D)SR(04 M\^DH31;(Z%9:$BMC/%+EG@IA5BN58T9=B V&2M-B_DKF2BN_%:H6/QM=4"V^ M2ZUI.Q*?55V3,UZ.Q6W9XY?2P88G6P%/'$]%%&,52[06Y7&H9BC+7$I1&6$_"EY9(;$E:\0W3I&9TE#^&59WKMN L M]4"EU0HU[9A--(!A+$!U.TQU,)*;=:W^Q0*@[@7'FHOS'0O/-8PYYHYL .O] M\CW=,2M;J$+4D#$:IC *[K0!*],$ZE#/M!9M)3=M'2H(+?(!1BPI9]^$\LR) MP= TG:GE$CKE9%D23)=>; A%K]E=LKERT5JT$LAP4*5V!@"_MY"[$-Z(1G( M76LEG!^)QJ)/6P35RWN*L3& L<+L"KQ3D_6!^A%E1[?8I<5(;$J5E\$JLU[% M3()K*JZ1['M!]V/QH18_T=(BZ[8<]63$KJQ4+7407PH(UJG!VK!<=*]<8#,] M'BV2P_\F9V^P7#;&4L\T5 Q\Y@1S4G,6%'2'_::I.-T8*9#"#$<5R\^?5.UI M;6,:[N![FE"VZ?<-S*W(6Z/->BO?4D&7Y\XR6P&!X.C62H.Q%&:#;Y+JU#XM#^>SH]%>I0.;DIC M_;O0AQY&178LLL7@%KU8 VDZ2@X38.$_R\0+:$ZLD5<6JFXY]]#BHC;H.6@L MSJ/@]UK#KG$$Q1XW ,7U\] "&HE6N P3XB&J!6"TB+QN+;>CY;9K),X9.Q87 M_KEH,1M7K6^!B<-4:V.Z[GJXAD=]#C^-V.V&-+*IVW>H#CO!OHG!#Q_V8S;@ M+(RJ3>?\D@T61QD_S ;SPP4_'(KYT8P?YH-9DD6=.R;HK-PWW" ;S;'@$[PZ M$;+B+@\YPPX=^SUW$+QQK*:#Z_A=W$G=4LC*)SFQ[^"!R$8I OFZ4IMPG.0F MBHT*IV-8YB-VV *['8O3_EFR;Z#;;)RD81]%(#G:+^(5RN71)4X-V32Z:^^O MPAZ.L^D?7XQN\K_@O#C\OW!.0?E2NC(F"-^ M0G78!]BPM.Z. D\[P*-TY@X?#B!F]8YW,]Z'0&!#H?7FMJL_<..=I#;UNYP9 M=WZ@N@Z.9\CE)&%+K/=8O'1PG>Q= RJRZW#9<2)(%F\$NZ^[^]1%O$8\3(^7 ML<_2KOG$IFF%IA?O&G"I6)I/*XHX;'$G9 L3\ X;^C]"QO8W3+/ M_PU02P,$% @ :UQK5/C"8"=# P . < !D !X;"]W;W)K&ULI55MC]HX$/XKHUQ5=25$0F#OMBT@P4)5U"L@EFT_G.Z# M209BK6.GMD-V__V-G9"EU2Y2=5\2O\P\SS/C\7A8*?U@,D0+C[F09A1DUA8? MPM D&>;,=%6!DG;V2N?,TE0?0E-H9*EWRD481]&?8 2 MUQI,F>=,/TU1J&H4](+3PH8?,NL6PO&P8 >\0WM?K#7-PA8EY3E*PY4$C?M1 M,.E]F ZR4>G"313H*(B<(!2;6(3#Z'?$6A7! ).-'@QFT ME,[Q?'Q"_^1CIUAVS."M$M]Y:K-1(D2QG^AJFVO MKP-(2F-5WCB3@IS+^L\>FSR<.=Q$KSC$C4/L===$7N6,638>:E6!=M:$Y@8^ M5.]-XKATAW)G->UR\K/C0=1[]^4*F$QA93/4,,,]F:1PJZ35?%?ZW*T%DV88 M6B)T;F'2@$]K\/@5\%X,7PDF,S"7*:8_ X2DM)4;G^1.XXN(,TRZT.]U(([B MW@6\?AM^W^/U+X<_6[R/\3I3?$3)V1&!T MY2S72!?0@F%'+@\&"JH#*$IM2D:K5L%=<[DI 2;6@H+2T:J J6(Z=9,9Y2BQ2INN2UVAU9%3J1.633(2^0N> M$]M&:I5EPMF\ZP87B.ZCIZ M(:CW/\7TTDT*S[I9COK@>[8A4CK5NK&UJ^VS,*F[X;-Y_:9\9?K 29/ /;E& MW;^H"^NZ3]<3JPK?&W?*4J?UPXR>-M3.@/;W2MG3Q!&TC^7X/U!+ P04 M" !K7&M4J$W9C"0% C"P &0 'AL+W=OO./#:H0546S=;=IH$UT&(8]T!)M$9-(E:3B M9K]^AY3L)&V2;<5>*%[.Y3M7G>.=5'_JG#$#7\I"Z)-.;DQUU.OI-&J?'%=VR)3,WU;7"4^\@)>,E$YI+ 8IM3CKCX.@L MMO2.X!-G._U@#]:2M91_VL,L.^GX%A K6&JL!(J?6S9A16$%(8S/K:!/NX9!&+%]=)6Z5FC-'Q&:1#"I10FUS 5&"^BA!0='!+9&3%SWGENFGZ?QF"I.K^60Z7RW&J]G5 M?(ENF5W,9Q]FD_%\!9.;Y>KJ+\?7'V03&B^EX";^/UQH= MFIH_7@ 4'P#%#E#\KP!-OPO14X%Z6>O\:C6%(((??QB&0? >_@^WK'(&&UE@ M-^!BVS8#_A?3(&N%9=ZDX_H.*B6S.C5@,1V1WQA53;8 QIJ5:Z9LO,F;F0"3 MRUIC9NJWQ(;?+C[YB.6(,EC*7?^(SEWNAN>@L:-(IQ8>0-DSX) M^IX?#\E*&EJ@AE'H)4F,F\3W@B A^[+;*%F"IH4U?P/Y/V!V_2<#?+*^PN=+ M[#W\W8)M]DUN65?(KRT[QBP>AN_AS>5BV>[?@F%I+AJC=E3#JR#IAMA6BL(R M<^'*QR[^_0[=X@Y>B]-(T ^:0]HV!QACATUE+0PBQ)\%!,EK:Y-%:JP7]K'5 M76@D^O]58A>F7RJIS$$2H D4*J9LZ\)?B-7W6!?LF&+PVIIF73GT7[=6^D\( M0TIJC.+KVFI$5 93U0%0Z*[<2K(W^\3D&G3.JXIE7?0[UCJ"Y[0H[@"7O>GL M"26";252HA(/T=Q*GJ(Z"Z^B/+/X;KK++F18(U2AMQ9[7BR*[7WO14G48=A7 M4&;=T526_HZ"N1'X/1D 1#;^1'9(DU3]$CC,2>/TI(Y"6X M+G%:R.%GO*96V] ?D8$7)0/R$ZVH('TOB/M(&B1AJVVL.44M81\++4 L[3W2 M^*/8HDM&3>D='/]$#?XBL?^\*W HL)[3S&CT?5K4&0/VN>85CA[&A:7 GQS+ M98&Q*3'XM\R^:/?$,>_$EJ\+YH[2H6N%[7.)VE?,)D;3_.L NL::O,?JQRQN M_KU=L, >XZ+F41";XG2]P9:J2]P'H7\VQ-\(/OHFZB%VPH'[#H.8M%$-(C(@ MUN?W1I( 8^R3)/9;1Q=?RT8A$?;)4?,=^$_]!'L/!A>L^*T;SW13<\T,<[@] M3(#C9O"Y)V_&QTNJMEQH#-8&6?UNTN^ :D:RYF!DY<:@M3387MPVQRF6*4N M[QLIS?Y@%1SFXM._ 5!+ P04 " !K7&M41=G*634$ 2"0 &0 'AL M+W=O) +8_^>ZH=M:Q4X$MG'G05F_/1V8@JKE5OXE>W M_<1#/>\$KW0FI%_:YMCBW8C*/D37#LE@T&J;_]7CH,-1PMGLE81B2"@2[[Q0 M8OE11;5<>+29\7]!D(3: K6W'U'& *+@="Q9[01?$FXD">O%?CEYO[ZYH^KF\OKJSOZ^\,J1 \K_/,&].D!^C1!G_X?Z)>T>SO] MYLO]%>?SHKY_#=ZSO2!27FFCKUVE2Z5,3M2XC>VE;*1M(4=0@D[*\NN M#V34-O0ZAC&51NDVD+(553IT?>0@X;%AM]P+BF51] +(0)/33: M< [K8^G:]!I#Q,'^D7V@4EGK(JU S#-H1:Y@V-A0R3[B"(B[,6(MVAF-&R4H MX!_45VPT;T!$X(65"SJUY7^6V&IC2!9IU 8:R#PT4(:XKM'*)#F]IQIUP+28 MWT.-<4@$-&,03)Q:7LDL1AZT0T,U#B!4>9V5L-+3Y@4=*#JJ5:F-CEB9@C*< M$;%HYUW5ES%K&]AO=,D0? N>D2(.*Q&ZXM;J>D<.RR!%^:@E2-O2]%!_/;0U M:AUG[4"[D\JP\"#C7HP]6S#4-D04/"R7M5E[AOY(:YRI\L8=KXDHWQHI2:V5 MY)-Q(6!>>1V$"+99*L.VP49@T(N:7J2+.\S67DZ&M)'0,$/'79?ER":;T'UB MEZA(9 #U'1G=ZI@(B2BI2A2U;7390+J#1K!U\D#"$F^)L5I5\3@)K$SK0%J9 MK=J%C)G]HUK7VSA8)V=#*?1$2,:!(8)>B94=&@8ZXMS,OL;!J=N^140$5S'/ M$Q0_(J]'R_5@YP^J/V=Z5&?5IP4$-E'#3C0:&XOF EJ'MO4O%YK=(WF]U=^! M K<-EBJU+_MVV&AD;YS9 !?:L8)T:5_+WBC_1&1"G]*J^8@8(V:WWP?14=< MQO1Q44=%)!_E9JN.>TVWG7KJM:&9X)BAP\8OM-^_^NRE\W5Z=$_!_^MT&P?I M01OSE768/5SX'_(]]Q2>OQ8^*[^&I&ULU5U;<]O&DG[?7X'2YIRU MJRA:HH\OB9-4R;*=U99C>RTY>=C:!Q _[IX+2!!6DCU; MM0^))1*8Z>GIR]>7&7U_5S>?W=J8-ONR*2OWP\FZ;;??/7KDBK79Y&Y:;TU% MWRSK9I.W]&NS>N2VC;-[:3\Q/_P4>[6K?XX-&/WV_SE;DV[:?MAX9^>Q1&6=B-J9RM MJZPQRQ].+LZ_>SE[AA?XB5^LN7/)SQF6,J_KS_CE:O'#R1DH,J4I6@R1TS^W MYM*4)48B.G[304_"G'@Q_=F/_H873XN9Y\YGX_]F=//N4'BXZU]8;?9DHV-A*_LV_*".2%YZ?'7EAIB_, MF&Z9B*E\E;?YC]\W]5W6X&D:#3_P4OEM(LY6V)7KMJ%O+;W7_OBR<_2)<]DK MXXK&;IE5%]4BN[:KRBYMD5=M=E$4=5>UMEIE'^K2%M:X[('_Z>'WCUHB!,,] M*G32ES+I[,BDY[/LY[IJURY[72W,HC_ (UI!6,;,+^/E;'3$5Z:89H_/)]GL M;'8^,M[CP);'/-[C8VSY='WU[O7U=?;J]?7EQZL/-U?OWV47[UYEUU<_O;MZ MXFN[B\?/_IWO;[._NMB[MJ&9.V_1ZCX6Z#B;TS% MWXY0\:&Q56&W);&[7F:7=>6(YXL<>S3$]#\\6':S-ED1/C&+;&FKG)[.R\RU M] &I8>LR>K_L%B9KZ>E<1$+&VLU-\YY$IW T;K.M&QDU)S&R],C=NB[+W6E] M5]'(KIL[N[!Y0Z(SS:XJC.9,5M4M$=;6//A729GH6T6]V>85Q#%O\%O)RGYK MRATLAFD:>I_&S%WVUW]]/IN=O4A(G?!'YR_\5W=F_Y,N/E,W_L.Z:Z;^TXN2 MB$KTQ%:M:4Z%J%UD$?A ,E&YG"V1R];YKLM/@3V;O.J6Q)Z.MI$D:DVV-",O4UBV_@Y> MH%I-:"RW]>8<;YFVJ5OSY9)V@EDM.X])-L$FT/-&1;^T^=R6MK4ZU,*ZHJR=;C71#JI8$(Z\ M([. !7CA7@9"=.X(;0T)7]4I->8+ 1Q'ORRZ!MR)+S&O3&/KQ90\8-O1!,0J M\O:.YN]*+(1XT*06@#B^;.H-#5*[A(-CXO8LB-NS46&YS-V:">8?7M.^W>8E MECHD=W]P**@V6&L7M"R2']9#6E-IZ1E8J%M:DO!WVS7%FM#00B0N)V%M[(IV MHB3I(36&+!*KOSVC?=LYV,\2*(.$:TYS8%X3YYUF@:3]KX0>UV*P953[-5?6N:BK5DGA>?B8)Z7MH5*^O((NCADB34T"R090*UH"_?D>P5 M!@)L%JJN-&L'GP6O,&ZEG@>Q>3ZZUS\S ]@J7YL"^V*'3=7H,(@-OG/;O# _ MG)"!C%@6)S'-X4?4<_,%#7L*F63)/ M^G@3AX9^N\RM26M/,37+6UVMY!=;'1H-W9*,D;-C8$^[R0_:)HHP&QUO)HI6 M=IK,P"IO%K /CC:8=AY 8'-/*O/;W)9X[)1L]BD&$ -+#^89F7X6=4(98@X? M>4NX2VTT(&9KR.^)[]Q!J6AMK!&T/5LBTD#7B(%D6ME',#8AKF=XD^2/_..Z2:5Z>(%K0]/.=_"[% %5/7Q')+2TOD7VS9/GSR=G M9V?88PSU3?;TV8P_F%+@0>J6R __GDR0&(!])62^D>LH=@/ZV--UERC[F*Y/ MP =FO!\Q4D+;?+AU^UN=-PWOQ/WO!%JC=,4@K MBF[3E4R-[#)>;LP:P.H6.(Y^-]D#$/)PDE6&Q\RW6PKQ>,/U@3;_ MD!D( S ME(5,LS=A@4(P(0P2%DL&+5B"189 P>\K=JU;>I;\D L M5>8+O0^GDI@,T8.&XPK:5.ANRZ@ M#1R#_Q6)+&H"/?\0'VSWGF=T#IEK@)G(M%IB](>&@'BWB1!0X5@U*/)Q2R#S M--CB[YUN/YFU@PG)(C S!*X)A(T@1-@DTJ_S[%0<\95A)"MJH.-28+$FV/83,1Q%>3!I8B%.:EZ$78:'R M>*I:.>\L- Y_R-^QJU47RQF+RB\/YE2&CL8'FI][.?-<<=URB5R8O$9(CC : M/X@L *D615LL?% ;6@>;9+6 ZA:NR-K25A7 7?BV;W^&I(PV+U%GP=5#NSGQ M.] !B.YTS_9V1("HA.C]J?/>Q#M,ZQT0LXJ6FS@B\E1 AQ)GLL;('D/<)CJU M=7OFP^0-I!/V$?Z\-YPHK3!5/9>*QM'AONK?Q+AN3 ZLO5'_N4=L0@1-8""C M7LXDZC, CW/3WD':);.1L$D]L!N4_""BRJO(;"3+!&@"-72<#>%88DD2Y8+5 M%'R1"GF8+]JRG25@QH)U)X:M8CXZ0XQ,7V7$8S$W5DKDDL[;S\B@L?I6=8L! M[BR]-C<^83 \%#T %!C$'!N:P6!E=_2U.5W4=]7Q[>]S&3+4'&7V4;;VA3?@&Y> M_5DD\S4(?[B<'HBG:8"O989I-A+C?QMB_&]'8_PK$A6RQ,V1R'[TY>'(/ADQ M2W_&0CC)%BP0&2:RMBPBV,R&UR;\8;5A*9M(DH@?.5 0]CFV<>VIK2;Z4]T1 MXGES]>;]0P_%LG<#X\*8L+$(H19LDN8X"^,#_QJQ.H -6<]&8O&"1R%(HY=+P,LS4\ZYSV&)EE#B@G(B-ZK-R1S$:9,,DDZX85\!$B@/M>4DV ML&IJ:/ZAS1D5P?.S6$<\&Q7""U_M^&@*8V]Y?)!S 33$J1;HQJNZF[?+KO0E MQ4&!O>],&/ZFR0FION/J43(S 7>&J21D%2LB7(6X=^*A;"IJJT98!"FI4.0M M!V1DBM$$\9$109I.S:G//$.(ZV1 7X+P&2P,=OV?CY'N^!G6[/1-5TD1P^T< M 36,A_H$K#,O1XIA35S.G)QD-$Z<1*E@D:*[YZP._;]:,7QFQP!Y^L**030_ M^0N(?/:72<@V<0*(A^?X25:X-\;Y<[SU^"G"H':M[L/K R?)):/'B;N$]H&T ME]^U9%G*>7S%)3-,VT_,'0:C'HDP& +0[("5%&RWP^R3%'5T"6KG8#?H>TM3 M+2($BNBGAWPZ@0'8:"DS,B3U585%)\N0K*!BF) 1A\5S VPB("&BXLP1TB>" M_WQEDYC-]+"5!%6M!%3@F491B:H^N4+8C 5QMX.*FD#CKH/S]LUG^H# _9 M]*$^W@1,F_8:D_*%SP8AB$W?%._/*L_9_))LG4_1;VTK^)US"-*Z0!&1TRH' M!\LLB/SX.F]6$O!JJ5C,G<^Z756G-.VJ\3CR8!)1\X7A=@;9YKDAO^ SR.0+ F)LTV&AR(,B_I(\J9&S\VB!Y]1#D+WV2FGCP0QQZ1HU/#.&:B4\$)5 MT/A]F/0]/VR;0Z$\VQ'X('5^>WR+8CA^7YJX5">! XLY[U$@;PG?R5]T%6E[ MR<" 181=Z0"EW'SG*?UI+T)$CMDZKOVPK.1LDSG'*6TWBF>DJX5KN6/J-8OJ M-1O5@Y_J>@%O.:A"]WLU"S^$U)J&/,%E!Y0I,4]@<3_(!_+W#D5DJ88%1#QY^!Y[)+H*MOR.QIJF"/9\I5?C,!70EFT-8ECS=Y7 M1[RO.-P[QN%H=8%!T,QQSO@WBXM0-J^C/0XBC=!563H#;8#>4*>R0-H!DK!M $! MA"&2*@A)+(L$Q&%,16.;Y_GC\:;(O#WJY.[U9N;_3JPQWWE?6#*R9+4T7D#F,-(*D,A*(!\4+4 M6%QCYTS?Q7*6"DM$&)(X169,OVBWMZCQ-%%L2#T?;R=]+SX6NPM_/BPPOV^( M?L<1&7RD;!M !*GNH#2@Z$':4]%+( #?HO)A"B 3&)& M J)$"GR"*D*J",)[9/3'CR35T)N(*? J!G("0 MCBIVTJQN'3)UA506432H&U(2KF"PS4C!R3W61+R+-,"2^.(\29NY XSP3;FU MSWCV&3!1N&B:PHHUT IPP^H 1J)-MVW, EQ:XD%Q>6PKDJ566V!"% MZ]<8C_G(87'QR%<-!L$FX_->%,;II[0&Y'/DMU J=MD#,UU-T5^VV2#=0TM) M^^IB8,G.^V&R$[V.;;7OT%)?:R]W:;/R0M*QI2 #Y7A8,:TVR/> 7G.KGI92/]?A"1KH3]B.2PTX1VGS5I>E#R-W[1+Q(IYTR5&VH G_F#!'A]Y.:2AO1;H 8K] M2FUU6Y>LEALD8K>E.2I;[6ZK):FT9XL;4VO&0=EN/#DLD^TI0#( MG+D],HFM]A$5MC5.C>8R8LW$AT < 2]96OS0Z+"E9R,^AS7F!)B7TVGV(:VP M118G\W*7OHB([0MVL.3Q')%4+VH$JR\D!2 QY_ >12WK6C*2_V"C"/9M.]\- M&$U%+H=!) +SF4!O* 8I8+?&9Q$*@RG1@(.53 S_S;*!%HW#$OVETPI$A58Q M",;'69B8O#)UY_C,)-<$0_'#=1L]MS>(%)7H82_9IX!QNRJZPF-F!RXM<.3PE%'0F]BABJ0D4L >NDR2OJR^;?)V M^ZA=2H&5]!XK6*\WUH739/Z 7L0-/K(2M"0GX7I'1&/+0-)AR#UZLJ")%#IT MOT*P.HG)!NT]]>UP[*7O$D>:1RJ10LL818J!D&[-X'DJ]?$]D=CBN)8L@R;< M'\$7?_=9/9X=B&?Q_[^@22"9K&D%Q3? M[*V,'XRM__I3K\K#_1%Z!H9-]N#<7'<[>I"&S?B ^/A3W?[;L+_)F>_#3L'] M(M1^AT/(8DZT75"K:KI#_0UBCY]2_$@"G3?%6CLMPMGP017_8T-EO2_2\^])NVN(R-F2QK+PAY$WDSIQVD\]3T:3$U9L[CE"$^OO M*P+L;I=D6VQR;H%KLE4XI1?Z-=1O,35,<6QZ>N&K")"S.^148N6)$^U<^^(S M&$(&]]GVENWS-S3"3F4Z<7=R,E)B+N5RLO@P2*^@[I\+![-]924Z<\2">5'D["?Y;YO&Z2@H#.[5R-@KJOS1.TKM/=WK^0WD?M5 #T3Q[PZT_8G;X?6,[5 MN&]F3V:)KDLA]IO'S\[O;0!FL7MT-M[3^:O'P$?9,#[ 1#7CX*G6>SFF8VW MW5R)X[C!&"T_:=2T'J?0<&Z* 7JEZ:9>T@<1H).;U[$Z3)/7BP)S6TS(>1Z*ME: J MW#_"*:]T$;Y,B@RX=",@QF$[RS:6 #%?#G"TULY6.[84?^%(LZ, 4TZEW/!5$7W.+A4RT?#:@DA=XQ(;0AW0V0-Z7/[L@,\3P[:\,4>H6PS*$E(C6B.9L,W"ASE M6118])@;3N!X 9)J#_#>T=U[X4 M:O3ZN6F>D!1-"\QS5*?L(HQ?)>'@*W_K4GI@O%]7Y1+ULO27QX!BD,=\EO*Z MKW:+^0S(7[Y.CX'%9IK8B\11//B5*\@=KC/&0@\W7,HIGW!##JXVVV7AZC@F M&>0+7W +0<)OC:KX@A*F>U767#RT]7;FROL(\R3\XG6 M),#OZR&"(B2S]V"1/L:$1C)1 M'8Q+CP4WULXNI)QX6Z4FC@,3>M# GWS4\,WZHY.1]F-EX21Z%/Y,M'++L":V M:@R-E8I>Z"JJFZ_>BH! :9K]X@_JQ0YEMP^DV7!,PGFC+5EJT:-X9\?DJSU; M4M[P.B@7\"@WAU;%JPA])?XJAE]]*YSZ'<'RO>;M8^SF0S#&GZ:(!Q23SNR8 M$2U]EN16RZ%F)9&U[X<;Q86QA7(VW@>)4U\J;Q]H?Z[7Q/A!;//[A\E>4OQ4 M)&?Q(%B<12W(-'(HX_3@HYPHY"L0_"DJ?PY!+.<=]Y_"_VHFI.JXAU&.3FZX MG)7CGJWT;,6!2,LAMX28A2UY\O]]6' M5B-1C>[ZTO?OB9OA@\ZM/>6G2.%&]2SV0<[&NQDO>X9/5&50ST:'&8["AL;. M;KA@,GA*/SB)V%%V1K(D M*'!9'$;D,SF<'J[YI S23'QT=0_P:-[U?DYT3$ACM^ELO-N43]W_XFM(,5U_ M%>]O&I39/]!_>H^IY"ADOTF2A2.BTO02.7^3R?X%=Y.ADY$3WZ>@W87A$052 M$V1UI'TAJ=MLPG@-#&W(YB0-L2G/N%&&'?9]F_SDS#.]\]6W.XX(&,HT"QS)M> M/ILK8?H%&G-LVTD6*+3UW!R_ZF._W9=SA .W?7UEV7;C4Y;3[-K(&;[LJ4;Z M^PO>"R:7)0+L5!D]&+0,QO42&+^?S4.&:E]#Q(:$B1(9/74#6%A$> M;34[LJ>-^[R*US;U+V?(%/2\+//B\^EUL<9- Q3 +$PI@88>3O3)5'2S:R!< M-TMCH<$NE=^(N0YWN-]]$NK2Z4BY+V&ARX2.7J6#+DZ"[[@EN^X9Z> MBJVQO ^;)%.$>7MS:?M.T.EG][[76BR6'FID!S)H![ZZW'$K$/LS9U_KSY0I M/^1-N_MJ[?T/#W9POP+?PR%7T/BC;3[I#L@1;_T&NR1)@HV9U[CP9L/'QT1' MC#:O4;A1,%I&@2LOXE5?$G07N:(H;G7A43CK1)HH=V#>^"/ZD686QGO<'?&> M^R%#X9D[!54>>A>82\GE\?-G>BWFQ$. M2]V?&1"=[O_1D16>G9T_E8;V-Q?7+WVH>G']B31XRM^>GC^>9#_W+PV[E-/@ M;P,*'P:*[VJ%7Y6YZU_$75=UIY7%6!+U>58V\I^>F-<:'G_M:8>AH$.M]"1?50 MUB#P32E510U.U2;0M0):.*>*!W$8ID%%F? 7,[=VKQ8SV1C.!-PKHINJHNKY M&KC[;I%B\^@13'Y)(79 M:K(4!12O 0*DUO&+#_RNXU[$CY /R2@:D#B,HQZ\49?OR.&-SN6[_+J\^[(D MJ^7-Y]_N;A]O/]_UH"8=:N)0DS.H#VU+$UEBH[8%K4&Y+2-R('+-V8;:VNI3 M->W'?MP"*27'WCWWKX[M'?!$;JZO_L:0\@G#&=S1 MY(+$@W@\(O$P(;_@+!IDT;B=G7*D!G.N)<,03+0(DW P1LZ3;)@B0GHY2,)X M/_,NR"0>9%E"HC X>%"J-9@4!Y1O*QQ M1M>,X[:"D\KW!WFM?"LZ%D0[T=\:=OJCIL?*NUWUTTKHW;P&'V#=<][8OD$! M)+82QF^4LJ*W%MZ%E^$O?O$\HD ^$%H\N;9L3S1TK^DS'NW.,;Z< M\9 %#%:0'56*"O/<=?P%29(Q/D=)TB-JVHF:OE54NUMH)1MD:#N18Y:L9$BA M5+(B:]@P(:PHIRI.C#P0/*5Y/X>SFO]/C*;>N4/@AS9QG>&:X>J_1T5]1Y,1 M/J,LZL$[*[07IR,O0H1':2A'G'2<6LSTI.S!T76(O;9QE[Y&CABVO1F[U>Z[ MXJJ]3E_,VX^23U1ABIIP*-$U'&:X8U5[T;<3(VMWN:ZEP<9VPRU^&X&R!OB^ ME-(<)C9 ][6U^ =02P,$% @ :UQK5,4I"ZA^! 2PT !D !X;"]W M;W)K&ULQ5=?4^,V$'_7I]"D3"?,&&))=NS9PI0A<'WH]$%QE$2#;>4DF1S]]%TIB0F0Y( ^],625OOWI]V5W%TH?6]F M0EC\H\A+<]*863O_U&J9;"8*;H[57)2P,U&ZX!:6>MHR8N&8;M5 M<%DV>EU/N]:]KJIL+DMQK;&IBH+KQU.1J\5)@S36A!LYG5E':/6Z-T#DD M#&]Y7.1FW2"6[.U]J_^M@AEA$WXDSE?\JQG9TTT@8> MBPFOP4SEQG_Q8LG+D@;.*F-5L1(&#PI9+D?^8X7#AD :[A"@ M*P'J_5X:\EY^X9;WNEHML';&IR3I3N4H=6P*T'.]JZXOA>6CW*! MAR*KM+12&-R\=11SV&U9L.$X6]E*W^E2']VACU!\I4H[,WA0CL7XN8(6.%=[ M2-<>GM*]&K^([!@S$F :4K)''ZLC9EX?VQ5Q_^;WP6W_]'* AX.SNYN+VXO! M$/_5'QFK(4?^WF,BJDU$WD2TP\002F=< :1J@K<"O W7_2K_J#26Y8,P%BK" M&IA#%M2:S=/1<2UPEG-CY$2*,>9 >> R=VQ'4,-'A@,_+\1^?0YM MP&P2+I4QPJ"O7&K\C>>50,,9"!_="EV@N^/A,9ZJ!Z%+%Y5W"SI!F3UB-@ L2 ,8Q@)@\^OOZ24T,]+,DG1F=)SI;D54(TC^PP+%Z8 5R&$5=M#@>R7MXYKK$45T ZB(_02GW &P@HD M)I$[71JYV-*VCPVH-"6O$C+\WQ,2H"+N5%G[64(".68?/ L6$$AO^H0?$%BT M.RD9VTQ*X'Q'4J9!V'9@Q^DS]]. @/T/Y&42Q+0#8_LY'$#NQ!^&HY/$J V] MA_C4#%F\)S59E* HKDT#H4.W9>>:H4E<);+P/1G*@K3#?%+Z4H;#\BD*KL5T MSZ41UY=&_.9+XT6^XFL'"6"][=[8KQ7J9)P#*2[$7-;E18>?:Z=A;A+M87M]%[VB6- XW&N537JYG'\O,&"Z+=-4R61PO MF_K.,@UHDJYZYMKL>MR:>RZEXB A[8TVZ*RL+H_7K?#MER@+MZ+P7_&(R*I( MWQI?$A%?0-M/95LIM38>N(704_^,-_"$J4J[?.O6U/I/H;]\(#^Q+W\SP*DI M7 DX%Q,0#8\3J!^]?+HO%U;-_7-YI"P\OOUT!G\[0CL&V)\H9=<+9Z#^?^K] M"U!+ P04 " !K7&M49CAQSK0# <"0 &0 'AL+W=O5.)Y!VFS?2TAY% I93D;8O G9/]]$D M$^);QV9MI[3WZW?L!);>%MH/$(_C>>:9F<=V!ENIOND2P)"GB@M][9?&;*Z" M0&J. YLZIXD$0Q<;J_]R-]-S-FZ-'8B& XV= T+,%\V#PJM8(^2LPJ$9E(0!<6U M/XJNQJE=[Q9\9;#5!V-B,UE)^2 M8\(V96$4OF7H9X;WI@1%)K+"EI:VUH] 9B*3%9#.9ZEUEW26=,5!=P>!P7C6 M*\A:['&#'1_!CF)R*X4I-9F*'/*7 $2W;.-=VS'\4G$3Y"=D23Z0.(PCD[@ M)?OL$X>7',M^>3.=D\G][<-\>C.]6\R^3LGL#NTI9G^_6'1/Q.CM8_1:0<:HU*UA&G30+)2OR=B>,)%.J!!-K_5HS3M.8E%2L M01,F"&)NI !AM&4D7=SL15S6QN4N+A4Y,?0)G15P:B"W3)B!ZKW^"@C5I) < MCP!]Y?T#5#62.!@2["U4*X1J^QMZG9G >LE:(P'=]<: 9Q"0)7WR\-?6U+L# M5U<[^^8"W,>X2[$ M5(@LF=B%!6:-TV@^;^XW2I;%N]WKQ-=)J2+@S]^Z\=1 M_.?A5'09OGAA[2\"CT3._L-$UG@4ZB9WW#;$0C]2QNTN^H@$/VK*@6A $LPP MT%XGOH@1-[W 493B*.JE7B>)["CJ>?=OU==2ZYVGCAJ"6"OL.RM)4FLZ*+3" MW@DYIWLYIR=UM,!K(:\Q ZSI*,OJJFXD\9I\K6Q?4^KI""/SBQ8BJ\'_ZV'7 MS++PQY51DN 7H+^RB2R>.#[V+U+-U M/M_9X3G:)]J'9-QY\&PW 1S9!%9<5@;8O5,DXK )&O<;$E$_:2:B,#["PHKG M/1RBG?);>;;R.B"SR[_O0G>2V.D-I](H)*^>H<'!C56!6KM[62/!6ICF\MK/ M[J_^47/C_5S>?#?<4K6V&XY#@:[AV06J2S5W<6,8N7'WWTH:O$W=L,3/%U!V M ;XOI#0[PP;8?Q -?P!02P,$% @ :UQK5"MM"]FH P V0D !D !X M;"]W;W)K&ULW59;C^(V%'[/K["R534K47+A,NP4 MD&"659&6W>DP3!^J/ICDD%B3V%G;@>'?]]@)&9C"J-/'2HCXV.=\YSL77X8[ M(9]4"J#))G"[>0908(:?RH,=W&I3$\'A_0O]C8,98U57 KLC]8K-.1.W!)#!M:9OI> M['Z#.IZ>P8M$INP_V=6ZODNB4FF1U\;((&>\^M+G.@__QB"L#4++NW)D67ZF MFHZ'4NR(--J(9@8V5&N-Y!@W15EJB:L,[?3X"V62/-*L!+( JDH)F'&MR-4# M76>@/@X]C5Z,KA?5B-,*,;R &(1D(;A.%9GQ&.)3 _I-1S# \=I^";B9XC: MI!.T2.B'P1MXG2;FCL7K7(IY,K\GCY.OJQE9S";+U?UL,?OVL"1_3M9*2^R3 MO]YPTFV<=*V3[CL3B_N(+*A\ FT23)80E9)I!HI0'A/L-.PC3F;/44IY F9B M1V5,;C&EAIHZ5Y"WF3RD@%XSW'Z,)Z208LMB=,=XM:6KW96@$[.\,;2WEG;^ MFK8H);9>0UT=45=$; C6"?(UR*96-J37LS[NQ$A4WK0@&MGI5 +\DL$6LF," M*0-)993NV\ZE;%)]QNM*(;9S-><(+$J%)-1'9THSRB/XI[KS>RDTQ.1.LLBF MA4SL25%7J0I]'J,[%M&,3)0RDU=?+=O 66*YV :7N";?,1A)OJ\5R*U-T9P7 MY8MR>**\XN*28L=9G$OSC;-J+]LD$5N0W,1O\XM')X_V1*PSEMAJ*NG_0WCL(=X1X^#X(C;D_VWP84=AM M]?T!#M#22KU^[RC0=S2/_[[F\?^OS=/M#EXWS^G4?VN>ZU;0_]1@G$J7FZ<7 M]H^:YUAZW3P=W_S>V3QA*[@V?8.6E62[J#8^=Q-X1]=M#C*QCPI%(E%R7=V\ MS6SS;IE4U_6+>O7HP5(EC"N2P09-_?9USR6R>DA4@A:%O;S70N-3P Y3?'N! M- JXOA'8?[5@'#2ON?'?4$L#!!0 ( &M<:U3***53X00 )T+ 9 M>&PO=V]R:W-H965TM9K $-?RZ+25X.U,?7%>*R3-91">[*&"D\RJ4IA<*E68UTK$*E3*HLQ]_WS M<2GR:C"[='L/:G8I&U/D%3PHJINR%&J[@$)NK@9LL-MXS%=K8S?&L\M:K. ) MS!_U@\+5N$=)\Q(JG2?P-8>-WIM3>Y.EE,]V<9=>#7QK M$!20&(L@<'B!:R@*"X1F?.\P!SVE5=R?[]!_M:-X[?RPIQ#[[RCP M3H$[NULB9^6-,&)VJ>2&*BN-:';BKNJTT;B\LD%Y,@I/<]0SLZ>U4#!:X+U2 M>BU+C+46SEVG7\2R 'UV.39(8X7'20>Y:"'Y.Y",TT^R,FM-;ZL4TG\#C-&^ MWDB^,W+!CR+>0.+1@ TI]SD[@A?TEPX<7O#>I3_.'V]'B_G3[0V]OO_TZ[G?O& M:".J%''(-Y>ZF #S%U!8B?3V%522:Z /*D_P"XJZ/"%[6D.*48%RB6==9'P2 MLNF0^3[Y0%CD<4Y^5Z)"7,+#H8_;(?>F/MF!I^0TG@XCWZ=GA#&/GQ,LLPQR M:\@I&TXF$3VC;.)%_#@M(T'$AC&/+&WL,;9CL/E[2)Q'DZ&/="@>>C$_$NFH MCW3T_R+]511-6TYSC8%J?7\H[$?Q;6.^T+5(X&J G5>#>H'!#+WU0Y17K;MM M^ TFBMG(T1:$HC6H7*84;#7^[(\AW0!M3%[D?^.Q5+M^M8\Q*N1$@_WN!IM-ZSNHA#) M\PB]*K$#==<;U9B+5J"4*107I VES;K'7#^/,@6 R ;0/X8JM$T3YK'HA(XH MCO$)\;TPM"O?B_P3S)$:_PMH:Y%G5I%:3VD2>6R*,I%W'MHY=_,H>A-_D86P MOC);$L6>SRTB3A":1%,O#-QZZL7LA-Q@,:;H=+K-H4B1W_=/NF]?<:*KN'V7 M5YU+K8/)!\X]'I(/F*I13(_DZGF?J^>_G*N?T:U?T5]HR",.Z& [;3/X6),Z MSO#K34J]D6K;7[1+H_U=9TI3Y6:_AUFS7UJS#\L2UZWTSXW--21Z8S/W-^MQ M6Y^PCR?,@;9V'@_#"&- .//":+^KV6873+QI2%HWDM,@& :<8TM#V>B'EA8$ M#%L:#SP_^ ].1K!'37UF.6/OZ#]OTL=]D.TX7Y]'242;[E-!2VJX\#,*)&UG,R%V% M8MC,4'<)%60V%11@$=H^(]_%0_TX"/ [80<[_'COR52"6KF'H4:(IC+MZZG? M[=^>\_;)]2;>/EP_";7*L:\5D*&J[TVPF:OV,=@NC*S= VPI#3[GW'2-[V=0 M5@#/,RG-;F$)^A?Y[!]02P,$% @ :UQK5!R\OQGL @ K 8 !D !X M;"]W;W)K&ULQ55!;]LZ#+[[5Q!^P] "16S+\=)U M28"DS= >N@5-WX9AV$&QZ=B8+7F2W'3_?I3LN-G#VL.[[&*+,OE]_"B1GNZE M^JX+1 ./=27TS"^,:2Z"0*<%UER/9(."ON12U=R0J7:!;A3RS 755<#"\$U0 M\U+X\ZG;6ZOY5+:F*@6N%>BVKKGZN<1*[F=^Y!\V[LI=8>Q&,)\V?(<;-/\V M:T56,*!D98U"EU* PGSF+Z*+Y=CZ.X=/)>[UT1JLDJV4WZUQD\W\T":$%:;& M(G!Z/> E5I4%HC1^])C^0&D#C]<']/=..VG9<^9)CSMC)W M7=$ M+LLK;OA\JN0>E/4F-+MP4ETT)5<*>R@;H^AK27%F_H'._4:DLD98HX)-P17" MR3W?5JA/IX$A"NL8I#WP8QL\P;*AQLK9"D#G\I[Q+KLL4N,C@JJQ:@UE74%'K]BK@8VNT(9A2[+RGV[1P"-X7Y*J[%1"Q M((X">Z 7GBN)]\J+V-DDB;S)6?M7E8=/RI.SR9A19BQ* MR I'Y^'_$QZ_=<+CWX4?T,?)V*%/)G^ZXL'1!*E1[=R842H2)#ZJ;C9UA9./FT58:FFYN6=#O!)5UH.^YE.9@ M6(+A!S7_!5!+ P04 " !K7&M4-Q$X,CX& #^$0 &0 'AL+W=OL$*NS 1FL!^[Y?*'-P.C\=$GG[('IWY9W M$KY&G9:V24K"J,)_/C:*AUT-HW@]OM:^P>[>=C,E"IV*8HGGNO%V2 9X)S- M:%WH>['ZQ-H-A49?)@IEGWC5K W# ,(D_\(I6 M&:<%?M!4,T!=8Z,.#Q_IM&#JZ'2DP9@1&66MXHM&L;=',?'P9U'IA<*3*F?Y M6P4C\+)SU5N[>N'U:KQBV3'VB8,]UR,]^OQNZ[[5Y^_;^N.GR3W^<'T[OKV\ M'M_@A\?QX^3SY/817XT?Q_C/\51I":SYJ\=6T-D*K*U@CZT'R*:\+A@6,WQ= M/0.^0K[B2U$N104?:A>^_1K76CA3.!.0)4H;Y1!./!,%)!NOYB<(,&/E%"(, MN*'A=07SHE:TRM41,C":AXONZ0HXI9D$!B@,LWA9RVP!9(NC)T@VS"N\E")C2B'B1&&(/"<(4P1TXD#)',^%R!6*G 0& \=S$W"H M!&@1Z&!D%M+P+@7.Y'KF1?7\>(^%H1=9,*# M(S/Y6O.E);_!X(8! M1Y/BZA%T^V[38&:E^"V^U%IU6OJ7UAT/8&3$1BAPW M).8E!#A==+/3)/+MI'EZB*0. 5409!)X:)QE=5D7P(@<*AQ4>R@-30V%#=!2 M2,W_M@-H"";2(,9'\!8 +V)T!'9]A\2!_?7\L"=&41>CZ#NR1]-JSJ$JX;%2 M;'= ^M5MJ:!6Q8'HV\+SS8C[[Z!\E$(I?$FE? 45;\ <;V-WR_1WK;V#X:K) M12>-31(,(>E(@"WD86(G$K^=""&.9L)+7?0@9GI%)0.J1&@(#Q#Y^:?$(]XO MZR$7%D?H,Y5?F 9/UL"8@#>G$&Q8LL)ZHQ9\J5 "\/H;$'4/B@QFR#1R>O$#_HDQ(Y6'4Z;?S M1C=K=4,5-,RP8!E"X!4%Y%1+(W6"_F!4-L<@?I/-3[9G,+%^GA_C>V:Z* /^ M#9^Q]T8(U&C\+07W5H$MBB2Q+0 ^(L?1A@"1"= Z]-\5;90B[[BIO+:TI'W% M-^G"EAP>MBR3-6#11FQGK B[J8'=@^FX>4":@3L M$))ZHC0O;2WN/%G#^+JS(>ZW,H8] FX9R#?UHP4OVU@4M<2LL[KZ9O^8'U98 M]N)^00MH])DI*U,VYY4M-^#'$GH_D1O8;7V.TP39;((&S%3.UA/3@T&'Y@6P M+-J$!T+'E>T&0A^*?> CN,SIHNUL2IHSG-?26#+;;4T-$V).AF'B)W .;/G% M(-TV'J4IL3Y=MCQ>FOK;8-<'%!I"%AKU)A&/T(VHYN^AORW[A=X9?L$CZF/5 MULV*_!=6==3O\+MOJ+^34OTF#J14OB_;_G\^^4%@V_80M;MLG8&+!@IA-/ # M].90!>'.W75-& :QZ7*&?A1",)M[P=X]H2 (K=D=E-DO-/2):TQX8?2&+_LE M-H5J%UM&6U=R.$WG]H\'4S?K2C>W\VZT^W-CW%SI-\N;?T;@F 9D%=P<9B#J M'L=PW9#-GPW-AQ9+>\&?"@U'MWU=,,@Z:1; _$P(O?XP!KJ_?,[_ 5!+ P04 M " !K7&M4[E2$YI4& D$0 &0 'AL+W=OOT-"F S,$\ 5L;W9W!K*;E)G<9I9@G5YV1$8AG/-8&@>'VC;_D66: M(,;7"K-3'VD8#]=[]%=6=^BR9(J_%-GG--&;JT[8H0E?L2+3=^+A=U[I,S9X ML^2*=A=LF7'5NQQJ0!N"85S! MS$H8]PR,X]*W(M<;16_SA"?' $/(5 OF[@6;N:V(-SP>4,_I4W?D.BUX7JVH M9_&\_G^[2U=3/^XO:=_39=*2T3$WRW(?HWL6V3_#/(]$B4I,D[?KVAE MSAE'NG!Z:-Q3-FW'K;B7)59:/FGKJ%@@*Y165*RHWG"Z$AFR*\W7%^1/SF3I M! H3\NV22V-&TIWG(!6%8GFB>L18U5Q&Y%X4,N86*CU[X@7YF*<:F/>:::[( MK\1Q^X'O8.'WPV!"D")(@)PX_6#LX^H'(5D(S;(64(/B]_UHC,6D[XW]%F>, M:V>,G^R,#U)\2VWUZ,YXSE>I[E'(^9]N:3]A 7OO:F0H]?^YYF4A)<_U!7G% M$RY99JSM!+BZ$V(=0?P)<:+:^&X4@M&I#!^7W" /)L91+HAO^(IC-SF$C"8C M7#W0E)A=A_;(;[^$KN.^:*!],JYPDPK#L(:>99U4K\[;Q?@: >,;5SMNBZ,G MM:,G3W;TE-YQV#U.LY396H\]XR:C3Z&%_$[OH!A="+M[NUIQVPL. L$2G(J% M=B&FZ$M'!U=.5_7!TARLA=WE]<&-94J"5%&FJE!1YP.EB8S*>S\=1%QG,"+/ M]C?KSB,O]&F./@\A5Q7_LLP+,AIX^+GD=2:6V)[GFN7K%,V OA$/STVF)'MK M=5_/WRSFO6$5&9!00J7DD&=/^>IF/N^1KCN($%'N &V89(_-UTT0:)L,5DH M:S?2]08A:+K!P,?MCBM8(-Y0) 3ECSN<@#E ER;NWOW&MKL7-ST:(P@A._ ] MP^M!_MX^8*UM2P+:A3EHCX+.I0V!-7R2PB?(DAAA/[)G@]C$_R>6%>5YS#B% M&8K18$RZO@6Y?=RE$DEM)2QR$P7K//T!M?;9805@6LMT6:!BTBJAJ#<(R'M$ M@[2^ .8$OX T0;D/"E18B/V,1(,)?=:2,$&=,$%[PI1C5UN^S/@ZS7.CUA1J M(0#M:FM2IZJM&!\Z'Q>SSLGIH5VT])Z::6=+W"J+RCLDX3!"(T4[0,?E$&Z$ZH:EORC)G^6I6*JG:78*[G$,<+#D!,=3WF MQ\$[F6+;<"CB$!3U.Q3(^(D,72^RP3^)D$,GE83YC]2+0K=6\QVJ2BNYZYC* M[T1!2R"'=2"'3Z[\^WYF W&J%(?;3>R^2=D2T:33TQV^_8";HQ0N04T 9@WH MOLV?Z/*'<62'UW_MC'X.KU)P]15D&&H+5HA]J12>#6!2M$9.RG ?O- M]ERLGA=@J"S3%<= JAD>O$G-2LU .,^_07S3K>JBJLAX/$)JD;$?8<*8QK$L M>%GTV<30M1Q.U'4%YS.PWI]T#\_EKRPWP-N&-@QSY2_<=\+S?")LT^E_O#@RW7+Y=I^ MGYOL0HDO/V+KW?HO@&GYY=N0E_\?O&4255@A"%=@14_%&"_+;_+R08N=_0Y> M"HVO:KO<< :G&P*\7PFA]P_F@/J/D>M_ %!+ P04 " !K7&M4XB]N7CP# M !P!P &0 'AL+W=O,RG$V\;:%G$U5;P24N-)BZ+)G^>8E"[:9A/]P;'OBVL,X0 MS285V^(2[>=JH4F+.I2!Y"CAM6"_N@=A^QK<2S?,\LFTVTVH%VNPG-";Y4[TW)<>E(65I-JYS\[.R^0LTLEUNX12K. MP.F*K06:-Y/($KS;%&4MU&4#E;P"U4_@3DE;&+B6.>9/ 2+*JTLNV2=WF1Q% M?(_9&:3]'B1QTC^"EW;%IAXO?:W8Q?7#?'7SZ2^XO9XOKY?PSWQMK*:3\>\1 M]$&'/O#H@U?0EW1A\EH@J UDJJR41&F-TU2MR6)(H5L$JFNY\"U_J=/'(ZT* M_*,(P#0"C)Z!\DX"9:%TO:M15T>K$+Z#M+S8*4L M$X34[\7#F+#HGZ9'Z!IV= U_CZ[[#7RH;4TMNN.2EW797 58L)^E[^\#?J^Y MQAP^4YLT?%+R;<9DAL*7\^P&P7RK$;WC2\0>SVEN?^UUCYA V#09TABJ-;<< M/>M-KP2UE8O&^)SHU0[%([DU]Q)E[O(\#!&&ULG59M;]LV$/[.7T$8 ]8"6JTW6U;@!% <-_'6 MV('M=!B&?:"ELT54(C62JIO]^ATEV7EI8G3[(I&GN^>.]]SQ--Y+]47G (9^ M*PNASWNY,=59OZ_3'$JF/\@*!'[92E4R@UNUZ^M* ,B][% MN)'=J8NQK$W!!=PIJNNR9.KA$@JY/^]YO8-@R7>YL8+^Q;AB.UB!N:_N%.[Z M1Y2,ER TEX(JV)[W$N_L9R<][HQ[-8,OJPBSE M_@:Z\PPL7BH+W3SIOM-U>S2MM9%E9XP1E%RT;_:MR\./&/B=@=_$W3IJHKQB MAEV,E=Q39;41S2Z:HS;6&!P7EI254?B5HYVY6,)7$#70B10I"*.8S95VZ(KO M!-_RE E#)TT8H%#,1$:O0>X4JW*>T@3K0--W:[8I0+\?]PU&9''[:>?]LO7N MO^'=\^FM%";7="HRR)X#]/$HQ_/XA_-<^B<1KR#]0 //H;[K>R?P@F-^@@8O M>"L_T\_3^?V43A;SR72^7B;KV6*^POS,KN>SC[-),E_3R?UJO;B=+E&J'[0!DI-0M^)!R,2H'H8D164 M/)7"!BG5$=8/G%$T(-[ <<,164O#"O00^TX4A;B(7,?SHA/4#([4#$Y3@S=F M5A?P@IL7_?(:/:=Q.RQM*=@]@C$$HUP_\I51;,:61_T_Z+D7W*#RRC #E@O, M5^!'=A$Z7A"2.9@<5&'-".;.=?'I!Q%96#&=U@HG!8F=81B3R'&]B$QR+A@) M7&<8CX@W_H9A9;R,W)D,GB(;D5U8Q M00:.%PY0U8O\SENB.4,O_@!I]3"63HXZ;AS:Z**X)?I0OOH_,3X\,C[\8<8_ M2;'[I< 1DV%T&HRFB3&*;VIC;T>ZEG3*TOQE-?RLZ:*"[MI]K31.!_#$*6N= M,O.,[N8>;/L,.;8U\ZQ(WBR&[X#/OJL/'SMTV+Q'7D@Z_KV #(EEI_$I&U(\ MK :71*';45*\Q$:0 /LW;M]#]S5F^D]F',ZB73/)-4UE+4P[[H[2X\]"TL[( M1_7V3^.6J1T7FA:P15/W0X3MI]KIW6Z,K)J)N9$&!U^SS/&'!Y15P.];*&ULQ5AM;]LV$/XKA+$!*;#%(A6_)' ,V$ZW!6B& M(%G7#\4PT-+9(BJ)*DG9\; ?/Y)2)"62:7=MX2^V7GC//7]R*ELJM^7P81)%2>\PQ2_6;%14*5OA7KOLP$T- :)7&?>-ZPGU"6 M]J83^^Q>3"<\5S%+X5X@F2<)%;LYQ'Q[W<.]YP,:F5"6G'\R-[?A=<\SC""& M0!D(JO\VL( X-DB:Q^<2M%?Y-(;-ZV?T7VSP.I@EE;#@\0<6JNBZ-^ZA$%8T MC]4#W_X&94 #@Q?P6-I?M"W&CO3@()>*)Z6Q9I"PM/BG3V4B&@;^8(\!*0W( M*P."]QCXI8%O RV8V;!NJ*+3B>!;),QHC68N;&ZLM8Z&I68:'Y70;YFV4]-Y M+O43*=$-R$"PS.9VEH;HD:U3MF(!316:!0'/4\72-;KG,0L82'1V XJR6+Z9 M])7F8=#Z0>ES7O@D>WQB@NYXJB*)WJ8AA"\!^CJ *@KR',6<.!%O(#A'/OX) M$8_@]X\WZ.R'-P(R+@SGO_.4J0Z6B^,QO1+30=6O$NY;6/];)_SC.VV';A4D M\B\'CXN*QX7E<;&'QX+*"$40AXBE2,N!7N]F4UF_LFM."[BAA3/BL)D.QF// M\R;]33.I[6'#$6D.>\%V4+$=.-G^GB=+$(BO4#6MR$RK1/^B@Q,]+[ '#4ZX MF\ZPHC-TTOF5\W#+XABQ)*-,:%GK]#MLY>)UMH8M9GL2-:J8C9S,[N@32_($ M92 8MW.[C5@053.KLQ4 V]!E#&@) 4\ A3ETD7?[P0,/A70G'2MQ7%$>.Z$> M- V]]/^!L%J'02X$I,$.*4%32:WB2[3650F=Q5QVB\ZXE>V?,6XOT'$KY62T M=WU>5C%<.F.8A1O0:U":=0E/NL;*SIQ>MBB2 6E3O&Q1]$=X+T?LU5KON1<' M2^WB^'@'9CNY9 0W"@@^J:!A4C,ASO#^$#0$E'(%+Y8Y2Q4(D H)J@!)I7]# MLS\"O6OU2:6S?KD=#2L42F[A><998NU?,>@SY61=Q4EB03? /F MC3XPZ,V[ RKVG!C<_K$U=8525Q+L+B4?J-"BHG:NU+H1#I.IZPAV%Y)79 XE MR0UVF%==1?!Q9>08I:AU'H]/JQ2U6F.W7']#I7 [&AU0"E)K-W%K]UC]B=8.:[Y M#7;A[?T$\QO='[?N+O(DUQ3UFD)9+H)(+Z#.;DL)T_0_[/B8[1@VN-Q/LY9T MWRWILXYV09@#6@F>O$PRDB;WG2&T6T%X/.B(H3W.;X?0;_0X$Q!KV_J5R-(L M&H75TZJ]/+--U5?/Y_AJ432):YBB9WU'Q9JE4F_KE8;TSDV MD[KD2O'$7D:@CV7"#-#O5UP?S\H;XZ!JQD__ U!+ P04 " !K7&M4X)RK MM _OPHDTIW2C^;"M'"BZBEF025MQ,Q1]AR62! M@N=P]I5IS=Q9GG)^0'0TG,/*RXR.R*RXWK%$:X>D> MQ1KU3_@-G]7:P*IM:-W"4JN-9N)P_P&+-L<"%J*IU2LB+%ZH30R:P>@$V7@@ M&WNRT1&R15E2[1J@XKUM;4N$"Z8EX1J@GP4S9BJXI:XRA&.H"FD'2JT$P7"B MKIF$IR^D"7<6A3E%=#D079X\JV\-NM*@.-CG^[_"Z#2NO(:[%+;9.([H2SPH&H%ZHWO30.Y:J7M"GA8'=K_IJOZO^;=W7'/](9+ S66Y!I=O"<$W?5C M-[&J\3VP5I8ZR@\KNL)0.P/:+Y6R^XD+,%R*V1]02P,$% @ :UQK5#^O M&ULO59+;]I M$/XK(ZN'1&KB!X0\!$B!T)8#!$%(#U4/BSW *O:NN[L\TE_?V34X) IN+^D% M[V/FFV\^>V9H;J1ZTDM$ ]LL%;KE+8W);WQ?QTO,F#Z7.0JZF4N5,4-;M?!U MKI ESBE+_2@(&G[&N/#:377* G/4&@N!2BKU(SEYAON$KJP>+%,M?N%S:2.SG3,QR+@HGFR[$^+ M(6P<<8AV#M%;A_H1A]K.H>82+9BYM.Z88>VFDAM0UIK0[,)IX[PI&R[L:YP8 M1;><_$Q[C&L4*X0QQG(AN)/V9,B48E;>4SBY0\-XJD_A#'KS.8D/<@XLD;DS MI?6#S'D,C: !/P:8S5#])-/;.)8K8;A8P,0PD3"5:)CF"3,(41#6SX+K0_/I MY Y./ITV?4,I66)^O*/?*>A'1^B'$0RD,$L-/9%@\AK )RU*0:*]()VH$O$. MXW.HA9^)9A2^0ZC[[^Y!!9U:^7YJ#J]V[/WT'GO#:0_&O>[]UV'_H7\_)+T> M[D?]KM6\(D*]C%!W$>I'(O2SG'%%E6D@E5JC!FH.$).JBFH,&!T9_=Z;*6 ; M#M9VBW6;$EX?2E5E\8KK1K;+RTZE(OU%"-CY(X,LRPF4EZ1$J M+A.G*O475 H3V-@*$^:9.F%1?[C-J;;HQDB8(1V[3U!ZD=!B\=+?C/>O\E8,T)KM\C[Q]TY@S5P@TL#:XY M%CVI/"V'XJT;!6_..W98NH[_ E-,V@%3"RXTI#@GR.#\DDI(%<.KV!B9N_X_ MDX:FB5LN:>"CL@9T/Y?2[#&PO=V]R:W-H965TZB*8-T>ICV8Y"!1$YO9!KK]];.=$* -68MX ?^X[_/= M^ELN'F4,H-!3EC+9=V*E5C>N*\,8,BH;? 5,[RRXR*C24[%TY4H C2PH M2UT/X[:;T80Y@YY=FXA!CZ]5FC"8""3764;%GR&D?-MWB+-;F";+6)D%=]!; MT27,0#VL)D+/W)(E2C)@,N$,"5CTG5MR,R*^ 5B+[PELY<$8F5#FG#^:R=>H M[V#C$:00*D-!]=\&1I"FADG[\;L@=,\!S1, OP#8S+FY9S:L,55TT!-\BX2QUFQF8'-CT3J:A)EKG"FA=Q.- M4X,I;("M 4TAY$N6V-1>S?([1?<+M-N?@+":82&@^WF:+*DQE=?H:@R*)JD> M?40/LS&Z>G>-WJ&$H6\Q7TO*(MESE7;4'.>&A5/#W"GOA%/$0W>+>,8P@;RR0?D88]4.#1Z/1S7N..76?EA/0C!N8/R^ZOK. ![%T2[C:+\FO;J V<_E+T2(;T @I4L;^GD' MV1S$KYIS@O*113^(U MFM7B>#/L* :"]Z44OU4<5"&*5CS1L>F2^%J5D(/J32ZL$^+MN;VSE5) CVH) M;IG2>J25"K-VIXF]:K60??DD_B7T\A^6;M!H5ROF#& >B7OP$F<@EK9!D2CD M:Z;RUZI<+9N@6_OT/UL?FN;(OO![FKRSNJ-BF3")4EAH2MP(=.T3>;.23Q1? MV?=^SI7N'NPPU@T>"&.@]Q>P( !T& 9 >&PO=V]R:W-H965T%?[]K)PV%MA/:2^./>X[/ M/?:]3==2/>L2P)"7B@O=]TICEE>^K_,2*JK/Y!($[LREJJC!J5KX>JF %@Y4 M<3\,@G._HDQX6>K6[E66RMIP)N!>$5U7%56O-\#ENN_UO,W"A"U*8Q?\+%W2 M!4S!/"[O%<[\CJ5@%0C-I" *YGWONG,/^S>6.N:V-K%HP*JB8:+[TI?5A"]"+#P#"%A!^ M%A"U@,@EVBAS:0VIH5FJY)HH&XUL=N"\<6C,A@E[BU.C<)1:%&]K/QF=,8X@T"?D> B&,HZC+^1Q M.B3'1R?DB#!!'DI9:RH*G?H&%=MS_;Q5=].H"P^H&T)^1J+>*0F#L+<'/O@\ M/'@/]]&GSJRP,RMT?-$ALT9/H]O'$9F,!G??;\-%\4OZBF6_7W9S0K(MZO+K!^&[,/D/T%4$L# M!!0 ( &M<:U1YF]E(HP( ,\& 9 >&PO=V]R:W-H965T9],5*,\KQ08):5161;T-D M8C/P F^[,:-%J>V&G_27I, YZJ?E@S21W[)DM$*NJ. @,1]X-\'U*+;Y+N&9 MXD;MK,$Z60CQ8H-I-O Z5A R3+5E(.:QQA$R9HF,C%\-I]=>:8&[ZRW[-^?= M>%D0A2/!?M),EP/OBP<9YF3%]$QL?F#CIV?Y4L&4^X5-D]OQ(%TI+:H&;!14 ME-=/\MK480<0Q$< 80,(]P'=(X"H 43.:*W,V1H339*^%!N0-MNPV86KC4,; M-Y3;+LZU-*?4X'0RPS7R%<(,4U%PZDI[/J];"B('72*02JRX5J9I*2-*T9QB M!KD4%2RPH)Q37D JN):F)\ H65!FB%"!%@;C^"_@?(R:4*8NX#,\S<=P?G8! M9T Y/)9BI0C/5-_7QI"5Y:>-^&$M/CPB/@CAUMQ;*ICP#+/W!+ZI1%N.<%N. M87B2<8SI)43!)P@[8?"!H-'?PSLGY$1M=R+'%QWKSN1Y;_^_E1K^I+8W>I'1[K)/H:]?WU;OD.WH.Y$'H; MV O:;UCR&U!+ P04 " !K7&M4*"&/B]X% !)(0 &0 'AL+W=O]T;!Z[S8?#?E:)''&;G-0K-,TRI\N6<(?SWNP]_S&MWBQ%.4;_=%P%2W8 MF(F[U6TNC_I-+[,X95D1\PSD;'[>NX ?KB@M&U2*'S%[+%JO07DI$\[ORX.; MV7G/*QVQA$U%V44D_SVP*Y8D94_2QZ^ZTUYSSK)A^_5S[Q^KBY<7,XD*=L63 MO^.96)[W@AZ8L7FT3L0W_O@7JR^H,CCE25']!8^UUNN!Z;H0/*T;2P=IG&W^ M1[_K@6@U@,32 -4-T*X-<-T 5Q>Z<59=UG4DHM$PYX\@+]6RM_)%-395:WDU M<59.XUCD\M-8MA.C+U%^ST0T21@8L^DZCT7,"G REK?+;"W?_#H'1LE[<'(M MWXP3^>H4W(VOP?K3VLWEQ@VRN+EFTS. MX1\ >0@:FE_MWMS;;MZ7X](,#FH&!U7]$4M_XR7/Q>EWEJ?@YQ>63EC^CZ-7 MW/2*JUZQI==/,ES@Y#,OY-#)&_DF>V"%D,D0!?CY66K!C6!IX3H3:"%,D[!I-:A:E3E_&/G8\X?]A_90ZZ+ &^!&M&6(-H:HT]!=)E&3Q/^R&2A' MP7B';'J@K?,BU+&F2VA@-C9HC UV-59.##,Z&VBG/>TZTR6>V9C?&/.=QCY& M<0Y^1,F:F1SYVNE\C+H3J8L"6*;+9"MH; 5.6Y]YMM@Y&&'3:7CD8$!/8<_; M*QIUL_9H01\3W!E3DPP'H24>L$5C>'! ZBZV$D*Z_G0-])'%G<(A=/-PIY34 M?6S%)!AT_1E$T#9Z"JP0'Q"6NG%G3 +8M6:0$8_:!D^Q&+IA?'!A?9#%PL6#9] E\G2;R(RFU-T>0)_ =>M_Q !6%(CYTSQ57H!JLU9SHI ML>?1[ESH*A) WS(5BJG0#=6=4J9C$VH4T#5X8#&GR K=:-TM9(%CH:G-N23; MWA2@87A(P$+#G,*@ZTM7D8!:LH\4T)$;Z*^/UZO6,*00CN"1TX5:^U,WD&WI M0CI>PQ!U26=0^12%EIE0%$9N"N^2+J1#MIM]@V1@"1=2$$8O0'B7<-5];"U. MM+NK,H@L\4(*S,B]/7;'"^G;WC 8A%U?NLJG(;584QQ'+W$\7_$\$@Q:K7'344N@K]TQ MN@I#VZ8'*28C-Y-WBIO.W"Z6#1+;EP2LH(Q?@/(N<Z_M3AO6=] $!MT=@$&%(286:XKK^"6N'YBV5ZUMN%6Y.';I BM4X_V*%U@' M+]$Q:%#AT+=@$"M"X\,+&-C Z:X[73*PA4TA&K]!#0,;BAC:%LTHLMA3H,:' M5#*POI66L]K=TYI4'K;-JN(Z=G/]0HZ6 )?1]%Z.72ML>R]?6-$;'[OF012- MR7XU#V(H9J#N=LPDPI;%BR@&D\/K'<10R^B:NWQ!%6+I M?N4+JB.3:,^ G)IM0XJK]/#2!36 L^M-EUAN4JK(2M^@^>6Z_ M.1!\53WZGG A>%J]7+)HQO)2(#^?#\JGZ4# ,$P &0 'AL+W=OJZT OMDC.#,]<>(;@Y,#%D]P"*/0CCA(YM;9*[=[;M@RV$%,YX#M( M],J:BY@J/10;6^X$T#!5BB.;.,[(CBE+K-DDG7L0LPG?JX@E\""0W,*'J86MEXDO;+-59L*>379T TM0C[L'H4=V;B5D,222\00)6$^M&_Q^3GRC MD$I\8W"0I6]D7%EQ_F0&'\.IY1A$$$&@C FJ_YYA#E%D+&D<_V1&K7Q/HUC^ M?K'^(75>.[.B$N8\^LY"M9U:OH5"6--]I+[PPY^0.>09>P&/9/J+#IFL8Z%@ M+Q6/,V6-(&;)\9_^R )14L##!@62*9"N"FZFX*:.'I&E;BVHHK.)X 'I/;!;^.[VF0'1PX;B/5P+G>MZ) U49 MIQZ^E\/W6G-Y)PSB$P] MB1VE%L>]9'84<7C*_\TK34R#5D=Y^#'/65U7,5& M3N!711J2ZN?H_5;TCX/E -WQ9Q")[BX*W20ANME $OQ$GU<1VU#CAT1_W4.\ M O%W2[*O\QVOSZ<$[!0$[/11.]DNY$\\Y"7^-E.LV9 "7>@CNJ8*RC>KK M(W.A3>2U P7)XW:6_WUFP 7GXUY(/]OEU>'RQJ>QJ0HUQ:;@?-P7Z>,V1L\< MZ$SZN&!][+4Z,.=BQX7&B!:P4N5KCN&*.0C%UBS0Z]+<=A:P,]YU(0Q@/** @;G\?874NJ2L8>]OW3E%2EAKBAY>""M7$[;;]A5?D=[A(U0DUU5;0! MW-X'?I\T2-$42"]-@53I_@J?)KA6J#XXI&@)I*^60*I\7[E59#*C7Z>7E"[^ MI-6#&YU,A6YI\*0=*)%&!V(@17,@[OG$0 JN)N=Q==>RJ;(P)F._(:(%$9-V M(G[#FO"Z'F=2<#1IY^C_<9P+PB:]$#:IN6 W43$IJ)CT1<791FW'T"X]59AW MHGLJ-DS?SR-8:QUG,-;.B>/3RW&@^"Y]O5AQI7B!N9! M)'\ F_T'4$L#!!0 ( &M<:U0C+;GT% , / ( 9 >&PO=V]R:W-H M965TV+\.U5 \Z132PR42N1UYJ MS/+4]W6<8L;TD5QB3F_F4F7,T% M?+U4R!)GE D_"H*^GS&>>^.AF[M5XZ$L MC. YWBK0198Q]72.0JY'7N@]3]SQ16KLA#\>+MD"IVCNE[>*1GZMDO ,<\UE M#@KG(^\L/)V$@35P*[YS7.NM9["AS*1\L(/+9.0%E@@%QL9*,/I;X02%L$K$ M\5B)>K5/:[C]_*S^Q05/PQ 7VLBL,B:"C.?E/]M4B=@R"/<91)5!]-:@N\>@4QET7* EF0OK M@ADV'BJY!F57DYI]<+EQUA0-SVT9IT;16TYV9GS-U ,:-A,(4XP+Q0U'#02U@$_,-7CT#'X>M2I>8'P$G? C1$$4-@!-WF\>M.!TZCQVG%YGC]Y7.C%P M<"4UY8EVYV6^0FUHNQL-/Z]H+5P:S/2O%D_=VE/7>>KNK=B&9T5&F\#8ZU*-W0=T27SR; -%#G= M-H+_Q@0$90MU$U@IUW=R]B):C;N=(* ZK1HH^C5%_W\H%E2Y)HA)?PM%+=*QHB)AKF2&6A&E;(5S%[.X4L=FU)3JO=>4?6VJ4KXW65[N TJD_P(Z&;R7X*0F./G+QF_P#+%@6O,YITHR&C&= CX6?$6X=/B:,GBR M S88!,%N"G?7A9W7ZUZ%$08O5V[0&LC]F\T'4E5GP5X=[]X)E9=^8X;+$%J7 ME/3^5N_(4"U<2Z5$RB(WY6UJ;*_EP,BEZU S::C?N<>4/DE0V07T?BZE>1Y8!_5'SO@/4$L#!!0 M ( &M<:U1 0PZA7P( %8% 9 >&PO=V]R:W-H965TS MG9"QJJ!]B7WG>YY[R]UP)]6;KA -[#D3>A14QFSNPE#G%7*BK^4&A7TII>+$ M6%&M0[U12 H/XBR,H^@VY(2*(!EZW4(E0UD;1@4N%.B:Q\CD;A3T@H-B M2=>5<8HP&6[(&C,T+YN%LE+8L124H]!4"E!8CH+[WETZX)7B3A_=P66R MDO+-";-B%$0N(&28&\= [+'%%!ES1#:,WRUGT+ETP./[@?V'S]WFLB(:4\E^ MT<)4H^![ 66I&9F*7AL6$XLC!O78X;E_$)E[T8YE*82L-4%%C\2Q#:^+LDXD,2X_@LXP3S M:^CWKB".XMXG :7_#X_.A-/O:MKW?/U3-7U^F"XA?9HOEM.'Z6,V>YW"[-'* M4UO3IRR[/.-CT/D8>!^#$SZ6F#.B-2UI3OP\E$IRN,_SFM>,&"S@=&>O(*V5 M0F%@@8K*X@I6:/1J MR&4M3-/H3MLMAWL_$Q_T8[LTFAG_2]-LG#E1:RHT,"PM973][28 U4QQ(QBY M\8.PDL:.E;]6=O&A<@;VO932' 3GH%NER1]02P,$% @ :UQK5!MJS$Z, M P Y L !D !X;"]W;W)K&ULK59;;^HX$/XK M5G0>6NG0W+@> 5*AK%II>U%ISSZ;,)#L<6S6-M"SOW['3II"$E*D[0O$SGPS MW^<99V:X%_*7B@$T>4L95R,GUGKSPW55%$-*U978 ,UTUIPIWQT.X]R?%0;#5+.#Q)HK9I2N7O"3"Q'SF^\[[QG*QC;3;< M\7!#US '_;IYDKAR"R_+) 6N$L&)A-7(N?9_3/W *S%SP3VZN"9&"D+(7Z9 MQ=URY'B&$3"(M'%!\6\'4V#,>$(>_^1.G2*F 1X^OWO_PXI',0NJ8"K87\E2 MQR.G[Y EK.B6Z6>QOX5<4,?XBP13]I?LS86C6H2;M(XUQ+? M)HC3XT<=@R13D6(1Q"8[.R!W/!(ID(L_A5*7Y&(:4[X&11).<'\C.'"MB%@1 M8;'1$3;)L@:<+058N\SF_(Q;=+\LTP M>8G%5J%[-70U'H,1XT:YY$DF.3@AV0_(O> Z5F3&E[ \=N#B^16'&+P?XB1H M]'@#T14)_>\D\ *_AM#T?+C70"*(>K>@WOTBZ@_8!O">&077J=CR6@7="K^: M#%2-3F:@5\CH-24;5I!7Z]3(&A8S!5\LX MJ[X&-6GQ.R4]52/?;]?K\;V/UN8U*GH1FK(SNM0B*ZM\T_:KVJ[B596TNV4E M-59A>*+"_(,N[3=*>?Q,Q&2D%N;9CI$*.&#KK^L5N,:I>VP&MM#\Q(ZR=PS[<9//O/95K M&ULQ9=1;]LV$,>_"B'T(06:2)1LQRYL [:S8066+:C3[:'8 RV= M+:X2Z9&4G7[['2E%EA59ZX &?;%%Z>ZOW]V1/&IZE.J+3@$,>:LS^ MO>_K.(6AN11$ MP7;F+>C[%1U9!V?Q!X>C;EP3&\I&RB]V\"&9>8$E@@QB8R48_AU@!5EFE9#C MGTK4J]]I'9O7S^H_N^ QF W3L)+9GSPQZR2!+2LR\U$>?X$JH*'5BV6F MW2\Y5K:!1^)"&YE7SDB0N-PX;XR&"UO&M5'XE*.?F?]N4E!D)7.8*4AN9?"I)K\)!)(S@5\#+R./GR.?AGV M*MY!?$,B^HZ$04@[@%;?[A[TX$1U,2*G%UW0:V;W/POSCOR&JQQK\LB>R.?% M1AN%:^*O'HQ!C3%P&(,+&$N6,1$#888@!-G C@O!Q,POZ8T"*?^H9G0+JM!,*JMSH"'-?"P%[C,57R6JPQS1'"; M03!N0;\TBH)!-_*H1A[]GQR#2/JS.WK)28]J+B=HF; MH2"K0BD0\5?RJ)C0.$OM-KQ(_L9-"O=UH\GG>\@WH/JFX+A^Y_A'KH1)C3%Y MA94PZ:A".!ZV:M5E-;@==M>*!J?]/'BMM5 IGR--HA9WAQ6=!!>P&VV(?M?U M4,FUT]=>N9UFS5JFDTFERHT:DIT%?K"K2C+82TO8([K"B]T!?H MJ3'0[]L9*KFSEAJUVVZ'4;,*):K?.$;FH';N=*TQ@X4PY9FJOEN?X!?NW-JZ MO[0G>W<\/8/%6>M,N!D7MW6-U(@T=?=YGBUPDH M:X#/MU*:YX%]0?V],_\74$L#!!0 ( &M<:U0D&PO=V]R:W-H965TI$"W5CB078* MQT#JM+L!TFVVV70OBKV@;=HF(HDN2<<-T(=?2E9$V9)H%=86NDETF*&'\Y/S M66.-MD(^JA5C&GR/PEA=]E9:K]_V^VJV8A%5YV+-8G-G(61$M3F5R[Y:2T;G MJ5,4]J'G!?V(\K@W'J77[N1X)#8ZY#&[DT!MHHC*YWZ9?EC?27/6ST>9\XC%BHL82+:X[%WY;R>!ESBD%E\XVZK",4BF M,A7B,3FYF5_VO"0B%K*93H:@YM\3F[ P3$8R<7S+!NWEGYDX%H]?1O^03MY, M9DH5FXCP'S[7J\O>L ?F;$$WH?XLMG^P;$(D&6\F0I7^!=O,UNN!V49I$67. M)H*(Q[O_]'N6B(*#CVL<8.8 FSJ@S &E$]U%ED[KFFHZ'DFQ!3*Q-J,E!VEN M4F\S&QXG,MYK:>YRXZ?''RB7X L--PQ\9%1M)#,::07.ZFZ8Y(&/5#XR3:#]]]F*QDN67-A2.0<3$6MI-%.OP=FU\>6A.?H- M/-Q?@[-7K\$KP&/P]TIL%(WG:M379FI)@/U9-HUWNVG FFES^@9<*<5,WLR\P"VG4Q[NLI4E=0[,6OZ< M)%'R>)E:_2EBF5]X1Q57X.NM^0!PHUFD_G6$A_+P4!H>K@FOH)_*]:M*^FZ8 M(!TF*0A/8X@#;SCJ/Q5S6V$%_0'*K?9BQ'F,V!GC7QNA37;N))^9;-W$X"K= M\-G:VZW#F[E9DGQ&PY$$[8NZ& M(069,#I0LFR"O&H9!WET V=T]Z8:\(71*-;@DUXQ"3Y-%9-/:;PW\7IC58.- M5!OF'SSLHFH7>7@7[:AV49($8A*0 ^$JK*"/:[:@[UDX>(W5>XA%G7*HD7)^ M@4E^%[7S;7GW83OJ9>,4A?$.I'.:[,=GZ[OO+O /Y_?GX'?QQ&2<4#M%\]62 MQ;-GL_U"OJ3)5RC52#1;KWW<2=%L&?=)2Z*1DB(^' X'A\)5F6$\K!'/UG/? M7=!_4CSP _S_K/1MO?<'G5P&E@O^L*5E,#R^=UTF^_%9,/AN,OR\_*TS%EI M0*^+:D.+$NBWHW8VSK%-7VE6N^EAX8'!39335#^9S="B!:).*FXY!-T/#LT5 MQT?WM]-D/SZ+(>C&T$3(M9!4,W#-IOKP 7K"I$Y5U>;"IX6Q60O%=2,-+6%@ MT$D-+42@^ZFAN8:#DD 77NFQIL)JX <7-4I:DD W24Y3\I=P&UKLP(LNK@ED M48/T7WM--F/SY(&N4ES\FIH'>/(T@=ULU]5:%BUU;%"30I"A55] M04 6/R%8[TI>KC,?O^2Q B%;&!_O?@]R]K[8[T6*=OO(U%5J+*#U<,3IG,C$P M]Q?"%.;L)'F++']K&PO=V]R:W-H965T]W6<8L9T1Q:8T\E>JHP9,M7!UX5"ECA0)OR@VQWZ&>.Y%X[< MWE*%(UD:P7-<*M!EEC'U.D$A3V.OYYTW5OR0&KOAAZ."'7"-9E,L%5E^PY+P M#'/-90X*]V,OZMU/!];?.6PYGO3%&FPF.RF?K?&8C+VN#0@%QL8R,/H=<8I" M6"(*XW?-Z362%GBY/K,_N-PIEQW3.)7B!T],.O:^>)#@GI7"K.3I*];YW%F^ M6 KMOG"J?.^&'L2E-C*KP11!QO/JSU[J.EP >M< 00T(W@(&5P#]&M!WB5:1 MN;1FS+!PI.0)E/4F-KMPM7%HRH;GMHMKH^B4$\Z$#XPKV#)1(BR0Z5(AM1PBZ0>^=@*;_#^_>"*??5++O^/K7*AD] MKF ;?=O,83&/UIO5?#%_^KZ&G]%.&T77]=<-D4$C,G B@RLBD=8TV3PKJ&VV M41"G3!U0O]>/BFGHF.PP'T-*\WA9H%L>57C^Q M*U36@<[W4IJS806:%S#\ U!+ P04 " !K7&M4*IEZZ?X( #, &0 M 'AL+W=O.33<%_E"O&!'K*TKP\G:R$6/\ZG9;QBF6T/"[6+(=?%@7/J(!'OIR6 M:\[H7%7*TJGK.,$THTD^.3M1W]WPLY.B$FF2LQN.RBK+*-]>L+38G$[P9/?% M]V2Y$O*+Z=G)FB[9+1-WZQL.3].VE7F2L;Q,BAQQMCB=G.-?KX)(5E E?D_8 MINQ\1G(H]T7Q0SY\G9].'*F(I2P6L@D*_Q[99Y:FLB70\= T.FG[E!6[GW>M M?U&#A\',%#!;2JX8RMX307O605"!BJ0I@)YWD,X4,%O M*JBA3^NQ*\-=4D'/3GBQ05R6AM;D!V5]51OLE>1RHMP*#K\F4$^/$(?+IF@25H>G4P%]"EK3N.F_8NZ?7>@_6NZ M1=C[B%S'Q7>WE^C#+T>_H"DJ9;=E_=?0Z.<1C1+5J#.^T4M[HYWI/Z M(/@ZI?F(QJ_&-SY.\A0J6NZ%; M]?7YAO(Y^O,?T"3Z*EA6_MLBR&L%>4H0&1#TK_QS#N9/AHTD583L6H"PV30KQ($L:YD_!$T0OWA+AD4$?0Z@BL.OY0\1FL2A\9!][4BM"< M"H86-.'HD:85^[@3BCXD.:K*.5K#7%%2CT"S7A\FW;6 L&OG\'A&S+K#5G=H MU7V7/[)2"AIAN+!G.#^<.?B9G_NE@HCX S*C5F9DE7G#BY@QF(@+7F2(/3$> M)R5K5QDJUG)E&577#0?=>>=&3L??M>Q^,<_?*[:G>];JGEEU7SU4B=@B0Q!@ M3_(S,RF>]2R(/1+V)1O*X0@/:L:.)J1S8%)P%A?+//G/<]5Q40J(("F54P9" M15[DGYH)Q(:&:@23TS.W.W.<8>T=NN/QV@NBK"#(-Z*58E< B%@:P,=UJ3#KK7U?]$G=,]RMDA$O0S$B@TO!00!'$G7 MR"@N?Y3+NK'$N@:@.65P>YZ)/*\_^9IRW=D78G?8@9J?V [06S6*?S:C^/.: M29[:R(PU!C%Y'\D"UOC"=G[]WGAHW/2SMT7JJC9=&F?8SK.KIW7":^/T9I:: M?(IL\%/-N0.Z[7V%AW5KG&$[SWHD=>L M==(N]>C@4M>TPW;Y42'NI\+AOL(ZV(\HN#^4SO;-#K6_D-BY M?0(9,SM#.5MJYVI2N792?6GS^A:P):JS(:/>_KZ.S+!!KZ&<'PSKU?AS[=O M?;*>0W[P'<3R)):KN/[Q+D\$+,OOMW?ET1CVNAITKO\^V.MJQKD'&/>:Y+QI ML[NJ9S-#?F0H%X46+VK"N7;P7&7KM-@RUGCLIN+Q"D: ;E*:CW*9II ;O1.7 M:>BX]IC?.5VIEQM]I$FJ(K%DS*(2%62YNU.-4<9HAGITA MU_0IR:JLIF%R7]5G/Z!>GOLH=AD/?_K4"/RA6>-I9'AV9.QF38EBZ'R]FS1U MD*5"[25 6PR^4RQOLCOY=5IL:I/+AXSR'TR@-40-*)"K[Q8)AUTAF#^EI3SR MV.X*%XL%I+6=[):"PW;=&)%_8!21?^PX?[.=TFGP>';PO.+@R#-L>;SH^<(W ME,*S:!8.>+!SKFBGS:NB5=/F7O[G&0!O*H>'CQ(\S1S/SIQ1T0JL?@V9HUPL M(P*8IYGCO1/F>)HYGITYT#PO('^?LWE5OSA2N?'.2O5Z;)>GBA1Z61H];.\/ M'UHPFCO>3^".]&03]L9X4J/(>R2IE%=$(:-]Y_V-M%_+ M*[!3(M*1 "/]G<5 ED,ZKY;L ;X[EYJ4;'AC,69JZ>A.WDET)SJZ$WNT?452 MT;0X_#JJ>7O6+^8YX1"?B8[JY(7G93__O56C8/C%53/"?C$W.O:&7GUJ=)#_ MTUD:Z9^E60]!B$8)L8?V%QXD-*WM)6O$=&QC*!CYX:!@7P/$MP.D7M-?Q ,E-(CKRW,/O7"EX)V#Q-5A\.UC>8HH9 MB#)\/N5KHOAVHKSQ%.M?+Q@^RO4U)'P[)'KVW?%.ZI8ON=N\?M[,OA)5:W5S M\-/N"N XJT=]W _KUP3QQYZ+/524"\;3+> .#)NFZDTO/*#-*HE7.QMO$@"? M1 RH?1#&DRB_?S V<(LCT. (QH!#3@2P[;SJ' Z-L=Y%T_J@]^NK=(=*[6O7 MY GLAT^U]C:W4[PVBL3]/,$E!IFF:!1 M$]A1\ZISW,"P]S#$E"M#.3PSS+%IY_ZTO!Y_3?D2)@Y*V0(J.LWSBO M'T2Q5E>J[PLABDQ]7#$Z9UP6@-\712%V#_*6=GOO_^Q_4$L#!!0 ( &M< M:U1K*;NSD , )8- 9 >&PO=V]R:W-H965TH%OM_S,D)S9SPT8S,^'K*M3&D.,X[$-LL(?YI"RG8C M!SO[@3NZ6DL]X(V'&[*"./0JA3ZM0+Z^V]]+?& M>&7,@@BX8>E7FLCUR.D[*($EV:;RCNW>0V%0J.7%+!7F%^V*N;Z#XJV0+"L6 M*X*,YO:?/!:.J"WH-"T(B@6!X;:*#.4MD60\Y&R'N)ZMI.F&,=6L5G TU[LR MEUQ]I6J=',_7A,/U5-F5H!N6JH,&O3A 'UDNUP*]R1-(G@OPE!&E)<'> MDFG0*O$68A=U\!4*_ "_0AX2VC1A?UOD=TI/=8S\3JNG%H>>FG!.\A6H4)5H M\83J\V;DR0Q/=H0G5X4#A6ILI9 D3VB^0M_N6)HB%6)ZSO<6T&X)VC6@W0;0 M0DM=R=7SSA16-,^UE@*GR60%_JL.@0#$=1>)RK7W+U_S+LU$D_,>#Z!Z"=$/>#!M)!23HX>VO) M(H5S2 >',1A&?M [3HK]*CW[_R/K7*&OIEZIV9,'X*K^EK&-9IS&@+Y-%D)R M533;4A*NE1G7I,'V;X5ZJ9[U& M-/!2Y*4>>6MC-A^#0"_76'#MRPV6]"23JN"&NFH5Z(U"GEI0D0=1&-X&!1>E M-Q[:L4D'+DHH"2RUD"0JSD3=A'V!>WW6ALK*0LKGJO,Y'7EAI0AS7)J* M@M/?#F>8YQ43Z?B[(?7:=U; \_:1_3=KGLPLN,:9S+^)U*Q'WL"#%#.^SV[X>*CD'E0UF]BJAHV-19,;45;+.#>*G@K"F?%\S17>3"D0*DV1_B2P=S(Y3-\V=@G7WF^K>=,-*V^'=2_P(=[-%SDU+J! MGR 73'K86!(9?6N8-DHFM:*HC<4L0@>9&G6&CZ5*::7! '9:SU&1X_3R,EX MCTL?8O8K1&'$.@3-KH>'#CEQ&_+8\L7.D"]>AWRB%"]72$EB8'& \WF/_&"' M)WNN4OC^!U'"9X.%_LLAJ-<*ZEE!O;<,BIU(L4SA(#!/NU;,C0_],/RY*Z[_ M&78A/VGE)TZ>;S95*4A\AXJ.'LBX4+"C78I 45U14 VDW&"7LYJZ;ZFK(V\W MCB(_Z@V#W;F1U[-8ST\&[:P+W;>M[ENG[@=1BF);P/<'+!:H7"O9;RG[/\;6 M&K2"!DZ/3T(_WV0*$41ID,X# XI6HO-8<#,QGR6=F\P-"_U>S[7)[EHC=TZ> M3R\;NG@H7+G(*C-P0*XZ;;AYDAH($13U(3>@K7GH(II=1\1J(F!Q!]&%51:> M[H3P.K,[F=/^R84Y=)[C;I9DX(=1YY*]![SS>[%KT=C9[<;<.<9?KLTQ%IU( MHQ\CR]CI2F'Q_Y9G[U!1H@VZ5\V-"_W$>9RSTW7$W!?#];GV#M$Q1_K'9(O" M-[/M2JK;(Q7K2MQ+PZ<+C+EOL&OSSL<^F"L\*R0+6R M];:&I=R6IJZ_VM&VII_82O9?X].JUK<%ZXFF_E!XX&HE2@TY9D09^GW2JNK: MN^X8N;'EZT(:*H9M&ULM99+ M;]LX$(#_RD#H(0$2Z^U'81NPDW;;0S=!C$T/Q1YH:6P)D427I.P&Z(_OD))E M[UI6@VSV(O$U,]\,R>&,=UP\R011P8\\*^3$2I3:O+=M&268,]GC&RQH9L5% MSA1UQ=J6&X$L-D)Y9GN.T[=SEA;6=&S&[L5TS$N5I07>"Y!EGC/Q/,>,[R:6 M:^T''M)UHO2 /1UOV!H7J/[:W OJV8V6.,VQD"DO0.!J8LW<]W,WT )FQ6.* M.WG4!NW*DO,GW?D<3RQ'$V&&D=(J&/VV>(-9IC41Q_=:J=78U(+'[;WVC\9Y ML'0JUOHAGTGQA5Z]U+(A*J7A>"Q-! MGA;5G_VH W$DX)\3\&H!SW!7A@SE+5-L.A9\!T*O)FVZ85PUT@27%GI7%DK0 M;$IR:KI(F,#K.?D5PPW/:;,E,^&Z6- !B,L,X6X%?_+B^A&EHD4/]!-II)L+ MQ:,GF.FXINKY$BYN4;$TDY=C6Q&:-F!'-<:\PO#.8+@>?.&%2B1\*&*,_ZG M)I\:Q[R]8W.O4^,M1CWPW2OP',]]!S9([:FLOAWZ_29POM'O=P9N>1JXF1"L M6".=7 7+9SA>=\^>S?!LQT1\!1^^EQ0W^%Q01$L](>%.)2A ):R NXU6)Z]T M\+\8!J<,KN^[[0C# M!F'XWT^'YW2"#4_ PL'(.0,V:L!&__=M;+MO7TU2I[6S+0IZI*K3!Y1I$3ZR M5, CRTJ$;[,E76%Z8+INH.L<4K+3&>676?W]';U("RAE#!L:-/MQ21MS2(6M M6;HB&QQ?';<7A.V[XQZ],NZ;N+2_W:]!KQ\ZYXC='_1&9_*.ZQW8O3=AKQ/# M:]"]4W0*>]@_@WYXHUS_3= /*>4U]'X+O=]S_#/TAZ?([7Z+WN0>4#9ZC4_! MZ3T8]KQ_9RG[J/#*4:Q->2DAXF6AJAJL&6U*V%E5N!V65_7O%R;6:2$APQ6) M.KT!94A1E9151_&-*>.67%%1:)H)E>$H] *:7W&N]AUMH"GLI[\ 4$L#!!0 M ( &M<:U0CT1C7CP( "$& 9 >&PO=V]R:W-H965T9=N12ASXLBNS40<\5J5E.%,@*RKBHB/$99\-7!\ M9[/P1!>%,@MN'"W) A-4+\N9T#.W8\EHA4Q2SD!@/G"&_LVX;^)MP"^**[DU M!N-DSOFKF=QE \N*K6VS]6($I+Z7]A54;ZSF0UE+QJ@5K!15ES9>L MVW/8 OB7!P!!"PAV ;T#@+ %A-9HH\S:FA!%XDCP%0@3K=G,P)Z-16LWE)DJ M)DKH7:IQ*DX*(O!\I \B@S&O].60Q)[O:=+4%1YSF.D01=8P?:NI^H ]T=.U M&>,9G$Y0$5K*,SB'EV0"IR=G< *4P7/!:TE8)B-7:=TFNYNV&D>-QN" 1C^ M>\Y4(6'*,LR^$KC:<.!4<9)YA>0.C_@, +_#V"QO\/]X[(";LBA)8O M/%2$V^'3]'PT3*83&#_>SZ8/R?#Y[O$!_@SG4@E]U?\>R=+KLO1LEMZ!+)LJ M2EORN2UBNEU$;(JXKT -\Z5E-HWA/?;#WE7DOF\?VIX@_]KO@KZ([G>B^T=% MWS$M$<'HGB/#G"JIFT=)E!:O^$$O^SSTO\F[#L,="]]CKOQ@QX&[]=HJ% O; MA*1.7S/57,%NM>MS0_N\=]9'NO\U[>H?3=,\[XE84":AQ%Q3>A=76I=H&E(S M47QIW_2<*]TA[+#0/1R%"=#[.>=J,S$)NG^%^!-02P,$% @ :UQK5%00 M8%A1 P '0H !D !X;"]W;W)K&ULK5;;;MLX M$/V5@9"'!$BMFV4YA6W MT7SD,:(F^U#L0^*15E$)=(E*;O]^QU2LB(KLI%V M]T7B9<[PG.&0G-&!B^\R)43!SSQC_> M@N=X;@>A^?OAS@4Z?KU3OO'GG]NIY1>X_SQ_?%C":OD$ZT_3IR5\F[Y()? L M_'-AA7Z]0M^LT+^0"]3L=%?X2^S 8/7EL,>0AP$&9M^,R5NK(.Q[M=$)KZ#F M%5SD]=6<1;,[AKT>^P?\A2LL#DPSQ?J-"&V \PGGZMC1"]05X>1?4$L#!!0 ( &M< M:U058\UU30( #$% 9 >&PO=V]R:W-H965T\ZYJZ.3D*\J1]3P5C"N1EZN=?GD^RK)L2"J(TKDYF8O9$&TV*)W6Q!AO)3HA7NUFD M(R^P#B'#1%L&8CY'G")CELBX\;OF]!I)"[QF418\$07"&B5LNJXHVI\W@&M^_--5C MLB0RHUP!P[VA##J/QB=9#6BUT:)T/;X3VDR,6^;F34-I#&ULC97;;N(P$(9?913UHI6ZS0&2T J0*+1JI>U!0+<7J[TP MB2%6$SMK&VC??L=)FDTAH-XD=CS_S#=C>]+?"OFF$DHUO&Y; OUCIEG#Y+ M4.LL(_+CFJ9B.[!"#XVM Q35/C"#'^5CZM M.J01-L>?WF^+W#&7!5%T+-)7%NMD8/4LB.F2K%,]%=L[6N7C&W^12%7QA&UE MZU@0K946625&@HSQ\DW>JSHT!&[W@,"K!-YW!9U*T"D2+S*"H3:'&;!@WNSC3$E<9ZO3P22=4PBWCA$>,I##31%/<)0W&'9S.\-C$ MZY3"TQ+N^087A/R L*SZ MMD92$\^.*JKKDLH[0#6AT05TW'/P',]MD8^_+W>^RFVL3UTDKRZ25_CK'"K2 M_.YF"K?WCZ/'\?WH)\SFH_G-P\WC'":C^0A^CQ9*2SR0?X[$ZM2Q.D6L[H%8 M4[+%_=54XFXHP/)!OI91@B<51T3JUFJ6+H/"I;FWFZ';<]Q.W]XTB]9BY5XZ M_ZV^\'9KWNY1WE>\I6:WU[]L9_-K-O\H&QYK MAEBY7CA;M\ M=J.=F5_) Y$KQA6D=(DZYR+$_&39GLN)%GG1X19"8[\LA@G^T:@T!KB^%$)_ M3DS3K/^1PW]02P,$% @ :UQK5#OK_/7@ @ 0@D !D !X;"]W;W)K M&ULM5;+3N,P%/T5*V(!$I!W'ZBM!.V@00)1T6%F M@6;A)FYCX<3!=EK@Z^?:"2&4M.IBNFG]N.?<)8)(0J]IBR30RM1 M*K^P;1DE),7RG. M(4$60^O2O1B[!F B?E.REHTVTJ7,.7_6G9MX:#E:$6$D4IH"P]^*C ECF@ET MO%2D5IU3 YOM#_9K4SP4,\>2C#G[0V.5#*V>A6*RP 53#WS]DU0%A9HOXDR: M7[2N8AT+1854/*W H""E6?F/7RLC&@ WV +P*H"W+\"O +XIM%1FRII@A4<# MP==(Z&A@TPWCC4%#-333RSA3 F8IX-3H7B5$H&N:X2RBF*&9PHK ,BFDZ=#Q M#/9-7#""[A?HQTM!E2F^+R@F)SI'OGB+/\=P6^'A_N/,5 M;H-?M6E>;9IG^/PM?%,!QTBHMU,T91CL@*(:YCS=0CBZ 1OEWQW)_#J9;Y(% M6Y)]$NLTK':=-EP_14O!9:NQ)7G'D.LSO1JY?5>;N&KZUQ+5JY/U#KG7>]],=3M.N+G76Z)"I^NT>]^OE?=W*F^_#?=9"-?YO*J= MPR^%VW@9W$,N1L7>O%/\ILW5Q=T:M7GQV(T'3G]=W&&QI)D$40N .>==6$U1 M/MAE1_'PTVCBW?1W'-M^ 9/9*;T'A MDY4VDCD&1S%-4K!)2C+M2(&5M/HFKZ>TX$/""O^ MYK"SC7OBI2RU_N('[XIIE'A&("!W'H+AY0'F((1'0A[_'D"C.JT!Z2$@_3J@=R8@.P1D06C%+,BZ98[-)D;OB/&K$V?P*<Q0PX>*[(>\Z6 M7'"W)W/4R]4:5+XGG]_C6?)2*^O\#N&1X.H!-TZ; M/2DMK$I!!%\!N>"*R%#RUNWJ3I -#K$=9/LUV7XGUG6>E[(4^'X5A$EM'/^O MXHUFA">O30D'V\:YRC,(>;Q//)_D_BAN?,MZX;/UST3,JB%#+J%-,G# M(SJJ!;2T2IG3+]-2I>HW. Z3\:F4EF7#\TJ&M9+A-]X?]'X\]TTE;22')]GI MH*W@PY."TZZ"CVJ:HQ<7/!S8M(WLZ)3L^#R'<JQ4G)_O1ZYUGT?AFT$X6"ZZX+"7YO "Y!-/E9#0]@J8_WSCIT:9I MUJGAD_^P*)U='3:[;@+]OC=M3TZ+^W_@MH> M_9%V&^0+:]L-EE6A;<3B1M\CP:Q#.VA)KDOEJ@:BGJU;SNO0:'TU?^-;T=!/ M'6&J/G;!S)HK2P2L$#*Y&F*A3=4:5@.GMZ&[6FJ'O5JXW6 [#<8OP.H&_39_U!+ P04 " !K7&M4-;FK^VDB@:154Y#X)@J%?4,:]V:2Z M=B=G$U'JG'&XDTB514'EG_>0B^W4P][3A7NVSK2]X,\F&[J&!>BOFSMI9GZ3 M)64%<,4$1Q)64^\:OYN3P 94B&\,MFIOC.Q2ED(\V,EM.O4"RPAR2+1-0/<:&EN&IBWF)S6E]SM*I(?2#217*,1_(1(0[ B?/S\\ M. SWC3B-0J11B%3YPIY\1ANFX?*3Z;;T6 +TXY/!HULCFOIYHEK85 NK:H.> M:G]+H12:4RG_,+Y&UX4HN79IN$LSK-+8=_5Q1LAP,/$?]Y5R@' X;D '# <- MP\%)AM=)4A9E;MHDM?2D9O]1^T:Z2.XR17OU+W$ACM?0/P248+L=);*N$Y[8E;W\2O89RX=4Y\)NNL\QR(& R[ M2I\&'7)LO1.?SSRQPQ<=/)VHOI9HW1._R#[QL3<&74+'D#[96O?$I^WS,Y4/ MH*NGNFL>L[- \VIW9'8O]Y!7(JJ,;9YEL;CU6/P:)HM;E\5GLEE\;*'Q46LX M;#; /<^BM5E\/I_%#@L==C__+M"HQV5)Z[+D12Y;1^UOB?"H0\B!(=U-D[^W MY;;G'=.A:\85RF%E@H*KD5F.W!TA=A,M-M4N?"FTZ=IJF)EC%T@+,/=70NBG MB=W8-P>YV?]02P,$% @ :UQK5-FAW.)Y P '@P !D !X;"]W;W)K M&ULO5?;;MLX$/V5@="'!&BCBZ\); ..TV(#)&@0 M;[_K.,6IL0?^:+!D"YRB^;%\4+3S*Y2$ MYR@TEP(4SH?>.+R:A%VKX"3^XKC1M3784&92/MG-;3+T NL19A@;"\'HL<8) M9IE%(C]^E:!>9=,JUM=;]&\N> IFQC1.9/:3)R8=>GT/$IRS568>Y>8/+ /J M6+Q89MK]PJ:4#3R(5]K(O%0F#W(NBB=[+A-14X@Z)Q2B4B':4PC;)Q1:I4++ M!5IXYL*Z88:-!DIN0%EI0K,+EQNG3=%P8^7A>^1B=\#2.X ME\*D&KZ*!)/7 #X%7D4?;:._CAH1;S"^@%;X&:(@"H\X-'F[>M#@3JLJ1LOA MM4[@41FXP2]W1.SD,*GP]QW)PRW51__38*U=66L[:^T3UEZ54\ZI.%N#1VM3 M@'4=F&T.ZU$44,[6]70=RH27.YE77G8J+SN-7M;2P(HTL/C7BBM,/L-/=TDI M5^,U*FHZ<,?G"&?$LA=D2I\?"Z/1FFV:5WK)8AQZU!4UJC5Z(VA(=K<*H]L8 MQ@-=*V%K>(_Y#%53_7H59.\#V-*OK/7?DRW]0R;T>WML*60Z=9E.ZSA;+BLO M+S^4+I"G1ZJSI[G&F%*F3)KH\SIEPUW;#5J.;]TP]H>%BL4T$?9]@XCZ^]'%\ MQ,P%H%.^?-,%#G<=.&Q_1#UVO31L;J;_MQZ=@WKT]^MQ*'*J'+M6&3;WRO>^ MQ/]A+BI4(=I>8YHS3MUCOS9I$3<6;@#5$,N5,,7849U60^[8C79[Y]=V^'43 MW ZFF)R)C LN-&0X)\C@HD<95L4P6FR,7+IY;B8-$=0M4QK@45D!>C^7TFPW MUD#UEV#T+U!+ P04 " !K7&M4'1=":+(" !P &0 'AL+W=O*2VR0FP(,LIW?[(IZG @\)HG!'XA\+\J" I!D">Z(\O3&A%-!CTI MUB"MM?%F&WEM8P'AC]I!"=067(]2$,M/Z#J^3$5Q>7,$%4 [35*P4X8GJ MN=I0VEAN7!#=[HC\$T0CC*\A\+Z!W_"]&OGPZ_+&9[EK:E,6R"\+Y.?^@E,% MFMZ/7^#NX2EZ&CY$/V RC:;CQ_'3%$;1-(+?T4QI:3;CGS.Q@C)6D,=JGHCU M9LZ- E,VF"''.=6UY=OY"',?]I!^#/QN&/;(U_X,G M)>%Z"XR2&654;^OP=CY:!Y&[S>X17=6FW0WJX5HE7.LLW ./18:@R<:4<$FV M9,:P#J]5"1TTO2.\JHT?=NOQPA(O/(N7G[,ZGK 2RPO](YZJ37BB6NT2IWT6 M9W^4L3C*=63MRA9J-KW.$5K5*.A4EM(]N)_LV_!(Y()R!0SG1M:X;IO4Y.Z^ MW76T6.97UDQHX!]02P,$% @ :UQK M5'$NI5=L @ U 4 !D !X;"]W;W)K&ULC911 M3]LP$,>_RBGB :2-I$D+"*610@L":3!$RWB8]N FE\;"L3O;;>#;SW;2K$"* M>$ELY_Y__^[B-J[)5:K\Y]7V4E5D0=BQ5R\Z40LB+:3.72 M5RN))'>BBOEA$)SX%:'<2V*W=B^36*PUHQSO):AU51'Y>H%,U&-OX&T7'NBR MU';!3^(56>(,]>/J7IJ9W[GDM$*NJ. @L1A[Z>!\,K+Q+N 7Q5KMC,%FLA#B MV4YN\K$76"!DF&GK0,QK@Q-DS!H9C+^MI]=M:86[XZW[E"/=%< MEV/OS(,<"[)F^D'4U]CFXP SP91[0MW&!AYD:Z5%U8H-045Y\R8O;1UV!(/A M'D'8"L*O"J)6$+E$&S*7UI1HDL12U"!MM'&S U<;IS;94&[_XDQ+\Y4:G4Y^ MZA(E7%%.>$8)@YDF&LU?TF#MX'!FCDV^9@BB@";V!R4+RJBFJ([@<(J:4&9& MW^%Q-H7#@R,X ,IA7HJU(CQ7L:\-IMW,SUJDBP8IW(,TQ>P8HL$W"(-PT".? M?%T>O)7[ICA=A<*N0J'SB_95:'Y]^0!7-W?IW>0F_0&S>3J_O+V\F\,TG:?P M.UTH+O?6R-QVAGWV'X#JTGY*0?;=2A MC3Y%:\XG^W\^^\A&'ZMV>OH.K2&ULE999 M;]LX$(#_RD#H0P)LHLN7"MM [+1H@00-XNWVH=@'6AI;1"G2)2FK^?HO^Z>I%GYC96,%L@5%1PD;F;>7?A^&096P4G\1[%2)\]@ M0UD+\<,N/F3#J-3ZMXNGST?I'%[P)9DT4 M+@7[1C.=S[R)!QEN2,GTLZ@^X2&@H;67"J;<+U0'V<"#M%1:% =E0U!07O^3 M7X=$G"B$HPL*T4$A:BL,+BC$!X78!5J3N;#NB2;SJ1052"MMK-D'EQNG;:*A MW)9QI:5Y2XV>GG_1.4KX2#GA*24,5IIH-&728,W!UG<-[X!R^#<7 MI2(\4U-?&WB+X*<'T$4-&ET #2-X%%SG"C[P#+.W!GP3=1-Z= Q]$?5:O,?T M%N+P'XB"*.P 6OZY>M"#$S>5B)V]^(*]1[&O$V_R9*K ,R(S>)(B*U/]FN6[ M-)6EJ=/W9\$8F$ZNC-C_/>X'C?N!5;$!O8H:0B MZZI7;6_D[-EIL9]/XF3J[T]3>"XS3B:-S!O080,Z[ 4]9L",,*CJM%#L;*C: MSO#$>1A$@Q;AN= D'G43CAK"42]A4RR)>VKG71?U7NQ/2G4N&$9OA6!T[@1V'8Q=Y?]B!J,7?)M+\M_^3L*E!N MW9&N(!4EU_4L;W:;:\.=.RQ;^PM[G7!GXJN9^B[R2*09: H8;HS)X'9LLBCK MX[U>:+%S)^1::'/>NL?<7(E06@'S?B.$/BZL@^:2-?\-4$L#!!0 ( &M< M:U0 TC82)P, ,<( 9 >&PO=V]R:W-H965T-JZ*5:+R]\7\4I9D2=B25R\V8N9$:T M&*<,N8'K5;7SPCEWFC@YN[E:"!RS2C'>PDJSS(BW\?(Q'KHM;W- MQ -=I-I.^*/!DBQPAOII>2_-R*]4$IHA5U1PD#@?>I?MB\FYM7<&/RFNU=8S MV$Q>A'BU@YMDZ+4L$#*,M54@YF^%$V3,"AF,/Z6F5X6TCMO/&_5KE[O)Y84H MG CV3!.=#KV^!PG.2<[T@UA_QS*?CM6+!5/N%]:E;P= A=H@692VM*-!D-I%B#M-9&S3ZXVCAODPWE M=A5G6IJWU/CIT9U.4<(UY83'E#"8::+1K)(&*P?',[-MDIPAW,UADA*^0 4W M'*8X1RDQ@6'Z'1YPA3S'$SB>HB:4J1,XA:?9%(Z/3N (*(?'5.2*\$0- M?&W(;7P_+BG'!65P@+(=P*W@.E5PQ1-,/@OX)N4J[V"3]SAH5)QB? 9A^QL$ MK:!= S3YNGNK 2>LEB%T>N$!O5NQ*JINZG3UIM%F"?=2)'FL/VI\&<$CZKPD0L?'0@_)LRL/P+1\((+RCGE"Q!S6**D(JE;KT*O MZ_3L3;$:A5$T\%?;)=RW"7J=RN83:*<"[32"EKO,'E2S_PBKW4N%1&XZ\D4+]F<$5E UZ%V]S!.H]YN'6N,PNZ! M0O8JV%XC[*/09B-5B.O-%FM@[>V7+-HMZ[[-]K;X1-JO2/N-I)/<$)J3L;35 MW:GL5[#[-=5KMW:X:XR"3K<>_+P"/V\$_R'XXE2CS/Z/]WSOU+3#W3+OV_3[ M.[#^5D_(4"Y0Y4[\G MR.5VZ'6\G>$Q6Z?&&OS18,/6.$?SM'E0M/-KE"3+4>A,"E"X&GKCSM4TLO[. MX6N&6]U8@U6RE/+9;FZ2H=>VA)!C;"P"H]<+3I%S"T0T?E687IW2!C;7._3/ M3CMI63*-4\F_98E)A]ZE!PFN6,'-H]Q^P4I/S^+%DFOWA&WEV_8@+K21>15, M#/),E&_V6M6A$=")C@0$54"P'Q >">A6 5TGM&3F9,V88:.!DEM0UIO0[,+5 MQD63FDS8+LZ-HM.,XLSH1L0R1UBP5]30FM-'DA0 O@DJ]86[+1-@I.(,XPOH-OY $$[Z!P@-/WW\/8).MVZU%V'USU6ZKOI M_>TU+,;?K^?P8[S41M%'_/,$*N@U))5N_,0ER5&LW(#7$LA"FO#BUM9[!8S=Z]NP3FLWE*/T+ M4P[V6Z;6F=# <460[8L^%5"5P[+<&+EQ\V8I#4TOMTSI_X+*.M#Y2DJSV]@$ M]1]K] =02P,$% @ :UQK5$WT9#(5 P & H !D !X;"]W;W)K&ULG9;?;]HP$,?_%2OJ Y6V)DX@0 5(!5:M#]50:;=G M-[F0J(G-; /=?S_;"2'-+U5] =NY[_ESYTO.LQ/C;R(&D.@]2ZF86[&4^UO; M%D$,&1$W; ]4/8D8SXA44[ZSQ9X#"8TH2VW7<7P[(PFU%C.SMN&+&3O(-*&P MX4@N\\)3L8JD7[,5L3W:P!?FRWW ULTLO89(!%0FCB$,T MM^[P[0I[6F L?B=P$I4QTJ&\,O:F)P_AW'(T$:002.V"J+\CK"!-M2?%\;=P M:I5[:F%U?/9^;X)7P;P2 2N6_DE"&<^MB85"B,@AE4_L]!.*@$;:7\!287[1 MJ;!U+!0)*(BP'Z'P"T$;ETP[!!XAEA7+W(M(W';VSF3B]GN\6&Z<#J/+AQ5\MS4+Y\7SK2$V;40>2>T%R/U&;85$)K61N\_PF M7AVM:>3Y'>6)+]],['T";E]V)76%47W&]"*I>U$KKM?XON'QL)'*II6/W1JO M7>FQ&?"=N7H(%+ #E7DC*E?+Z\V=:>JU]:6^]IC>?7&3WYD>"=\E5* 4(N72 MN1FK#/+\&I)/)-N;3O[*I+H7F&&LKF[ M8%Z'C$FSQ.]07D97/P'4$L#!!0 M ( &M<:U382)X [0, %X. 9 >&PO=V]R:W-H965T; M@]ZO[]@)@6W!X;Y XOAY/,]X/)X9;(7\JG( 379EP=6PDVN]?N_[*LFAI,H3 M:^#X)1.RI!I?YK7)L!?S18TQ4L0/^^?I;XYC_8,5CV*65,%$%'^P5.?#SFV'I)#13:'G8OL;U(*N#5\B"F5_R;:>&W1( MLE%:E#48+2@9K_[IKG;$$2#LGP%$-2#Z$= [ XAK0&R%5I9965.JZ6@@Q99( M,QO9S(/UC46C&L;--BZTQ*\,<7HTXXDH@;S0'2C276"4I)L"R%-&QF0.B> ) M*QBU'L>QEQS(0E.]T4)^(W.J$2GLZ$.6@=T1"CU$9OM-=['SD9IY!X) [?DBB(PA,& M32Z'!PYSXL;]L>6+S[G_\^3I\8&\C/]\6)"_QDNE)0;VWP[F7L/,AOF*DRE(/(+I,68_L]47;F.ZD7<7 MO#D%G+B!D1./&O>\YE?#.9.R4H"*\QE25EMJ5N8F[L7=[1ED+\,;K M_01\I>VVT7;K9)J# BJ3G%">$MBA%G-3ZEK?_!=:KG^=7I%$0GI16+M7PZV, MSPAN <8FLEV"[QK!=^[D5,#SF.F-$USADP&[D9*9PST*O9M'_>A]X9FO2^<7XL6L8FM\0?>M M>C(TBQN4G$M4EFL%!HMY=-?_M)QZ^V#P.\>=/1F#C^15ZS<_>()H<#, M>01&CRTN40@/1#3^/F)&S9'>\73\COY+B)UB>646EUK\P7-7SJ-I!#D6;"/< ML][]BL=X1AXOT\*&?]@=;9,(LHUU6AZ=B8'DJGZR_5&'$X?^^()#>G1(?W08 M7G 8'!T&(=":60AKQ1Q;S(S>@?'6A.8'09O@3=%PY6_QQ1G:Y>3G%H\JTQ+A M*]NCA:LOS!CF=>W!U0H=X\+VX"-\>UG!U4^]6>SH1.\79T?T^QH]O8#>3^&S M5JZT\*!RS+\'B(EJPS=]YWN?=B*N,+N!0?\:TB3MMQ!:_G_WI(/.H)%O$/ & M_RD?_/D;[<&C0VG_ZD >-LC#@#R\@/P%,0=Z2V'+Q(;5*2_HG6,JPY"X.=!2 MR2E#S %T0=2*0+U12+<)5C/>H! M5VVQM+&LL<A[6)RFR1T7]O3FSZW^IB.1Z=VWU$?-]3'G=2?T9((60D? MF*Q^AA5NJ=155+@<.+IFBB;GKE7<&G=T0FB0A%\[H4E#:-)):,EL"14[> HV MI 2OL\[YE_8:%-5ZNG\J?QN56WIF2$F0MS&%$9+0%D) M?4 $2OSL#705T@GW:#+N[9G*88O6<;6N5;'.\,S1ZU([;!1A!:O3K9(9+^6= MU!OEVI2;GB?;.!F=2]=B-[R=G(L7GY1LB68=.IF%S)]?5\-FM6F6=Z%'_+!^ M3TVT[GG_PM0=^#,S:ZXL""P(,KF9T(6:NJO5$Z>KT!A>M:,V$X8E?0B@\0:T M7VCMWB?^@.;38O$/4$L#!!0 ( &M<:U0/J&MN2@, %D) 9 >&PO M=V]R:W-H965T#NT,U+&=.@F39"9I M^>@!Z*0M'!@.JKU)-,A2D.2F\.M9R:Y)'2<#7&QIM;MZ[VGU,=XJ_=VL$2T\ M%D*:2;"V=O,Z#$VVQH*9,[5!22-+I0MFJ:M7H=EH9+D/*D08]WII6# N@^G8 MVZ[U=*Q**[C$:PVF+ JF?\Y1J.TDB((GPX*OUM89PNEXPU9X@_9NZSY MG+M\F1+&?V%;^_8"R$IC55$'$X*"R^K/'FL==@*B]$! 7 ?$[8#^@8"D#D@\ MT0J9IW7)+)N.M=J"=MZ4S36\-CZ:V'#I5O'&:AKE%&>G5S)3!<(M>T0#)S?5 M6L*G)<><')=KM&F..*2\GE"F8RAS0^QYR_P#DNB!NY[3;!),9 K-PWQ01 M4?B)3'>M=94W]7G=8?0PC0;#T3A\V-6_RRF-&J=GD,\;R.='(<_RG#M]C3\@ M;.G9;N VI!WO=(>]V(!PWBP5'$"\S+[/\A#_8 O4K: M]=+A$Z6C;MC#!O;PWTL)1NWR#7=NJ0+URE_>!C)W-E4GKB[SJ6+7Q=^&]LG2S^N::WCZHG0.-+Y6R M3QTW0?.:FOX&4$L#!!0 ( &M<:U2(,B6#5@0 'P0 9 >&PO=V]R M:W-H965TI$ <212UL&%;2"-M]@ M732HT_::EFB;J"2Z)!4G^_1+2HIDBQ2;B[V)=9@9?AQQYB>S.#'^2QP(D>"E MR$NQG!RD/'[T/)$>2('%+3N24KW9,5Y@J6[YWA-'3G!6.Q6YAWP_\@I,R\EJ M43][Y*L%JV1.2_+(@:B* O/73R1GI^4$3MX>?*/[@]0/O-7BB/=D0^3WXR-7 M=UX7):,%*05E)>!DMYSY+G.I+B^-T&G71C:L?SZ[?HG^O)J\ELL2#W+/]),WE83I()R,@. M5[G\QDY_DW9"H8Z7LES4?\&IM?4G(*V$9$7KK @*6C:_^*5-Q)D#G(TXH-8! MO=J(-63VM-99XM>#L!+BV5M'T19V;VEO-AI;Z,VXD5V^I\I.KAS)E M!0%/^(4(<+51JR2K<@*^[L":[ CG)-/OP)T01 IP5V;@"\5;FE-)B;@&5VLB M,IQ=)T^KV 2+KSG M\R19;.*HL[F8P*R;P,PY@:]'PA58N6_X0=ZO!!ME$RP\(XAB-* T;9)@;J<, M.\K02?E0/JL<,_X*<*Z:%"Y3.UYH#!V&_@#/8C,;P8LZO,B)=Y>FO%)515Y4 M)Q9VM,@8%@9#-(L-&D&+.[38B?83_0)MW:',GVF>2J;+(ZT(6$DL"I&J8 MJ8*EP[;1<,Y-AOE\"&H:!?/(MY-"OV_VOI-U4_.IK@)87\M,")"J3_\*U*[@ MA/E(S_9-[" 84-N,XG"$^DRBH)OZ@#F9:K'.@%(K73=U?[1B0C-Q$1QB6HS" M9 2SUPF(W.U1'@@?[=FM\V51&V 6(QB,@/6Z ]W"LZFVDDE[/;>N%RTN3H;- MQF(5Q?.Q#]OK"70+R@^<5[C9S;VU:BNCJ1)3.)L;B\]J-E;>L-<3Z!:4)YT[ MO35L.I"N;FS9$[2LIF3,4!(/42W"$B1PA+27%A@YMRI?Q@3Y,EZO!] M"/_? MC@5:=,.0-)M1.):47CF@6SKJD\F4[::5VK(T'PY>\F!EK$Q$BK:3-2N:@7$N06$G>O0Z8,#*$L)N&(O*%>*- ? MA,+1Z)#9\R,X_)@6HS@9:2#H[ #A%@9+ _G#UKD-&+EA32,3UCL[&NIS^3^8 M[VDIU++?*2__-E9SYN5;*\V[D.J!XFW.7/F\#*CP4:J;WJ):. A%9D> MMI;&Y.\\3\=+3)D^E3EF-#.7*F6&NFKAZ5PA2YQ1*KS0][M>RGC6&@W3*")[AK0*]2E.FMAS0?\UM%/:]"27B* MF>8R X7S8>L\>#<.NM; K?C$<:/WVF!#F4GYS78FR;#E6T8H,#86@M'/&L.L*1J>V6V\-XIF.=F9T4V.BAF>+> #DAH: MCJZ9LB-K/(:C2S2,"WT\\ SYLA9>7.)>%+CA =P@A*G,S%+#599@\A3 (Y(5 MT_"1Z478B'B)\2E$P0F$?AA\O+^$HS?'<_/K+T&O_YO"##=,_"5S>S9JV(Y? MC^V7V V4HTK?@;?>C_KENK->9W_9DRA[592]QB@G6:P< M4XJGB;S50-F]MU&N:)(5%ZP^J''O)=EV<)!LOR+;;R1[/[E^?WY[E[*1+,X!,3 K?P98KI#-57(C.= M7%]?W=_\>=XD2+AS$_Y4Y7U?4 5#4 M ?H$LI4]+:3?#RN$BQ+ZR?D]H.#NL0Z:7^L7?%P^MHJY7%@O6#-D5)C6R>7M ME8$IJH6KCC6X3%C46=5H58&?N[KSV?B%K;F#*&PO=V]R:W-H965TL$4K$=.AUG MY[ACFT0;ASL:Y'0#$>B'?"'1!OPR&"K]M;$ M9+(4XLD8U_'0\8P@2&&E#0/%US-,(4T-$L7^QN6,N2ZI@ M*M*?+-;)T+ET2 QK6J3Z3FR_095/S_"M1*KLDVRK6,\AJT)ID55@5) Q7K[I M2U6'/4"G?P3@5P#_$- ] @@J0& 3+979M&94T]% BBV1)AK9S,+6QJ(Q&\9- M%R,M\2M#G![]R$%2S?B&W !60Y'3" ]*7*1 Q)JL1)8+#EPK8XE"HD>A@:>' MB!J96N09.9V!IBS%U3EYB&;D].2,G!#&R7TB"D5YK :N1LUF9W=5Z9N4^OPC M^CH^N15<)XK,>0SQ6P(7DZTS]G<93_Q6QAFL+DC0^41\S^\T")K^/]QKD1/4 M#0@L7W"L 8OYW?C^^OM7Z22T26>M79U)4EO;V>_ M__E 74-,Z#>KZ]?J^JWJHD1(?:Y!9A_HZ[_;.SB4UQ!RV:PNK-6%K>KNA:9I MDYKP79\Z7L\[T-,4%!QVT]V;*QG(C1VW"LM0<%W^<+6WGNAC.\@._!.<].5@ M_D=37A.W5&X85UC@-5)Z%R&62):CMS2TR.WT6@J-L] N$[RM0)H _+X60N\, MLT%]_XW^ E!+ P04 " !K7&M4=F=3:JL" Y!P &0 'AL+W=OL/-;0"XD]\H[94*U7B5/:*;,9A$"9#?]/"ZC2L MSBE6W,:J5-T=5K\7MZ.Z#:I["M5I0W7W4$FWWXY*&E1R"M5M0R7[J%ZG'=5K M4+U3J*0-U=M#=8(#'[#?H/I'44\*N:SO2\'?J*!AZY7H[Z'C)#J0YJ!A#XZR M'\"8*\8S5>9()93*MB&\O>PB1Z 1MCD9[#L9A.U&PN!OF0F.6IE6;+;ALG2E M136%9Z^6M%:,8.\>Q5'\_]GX.X70/BI?N%Z+W!!B1;+@LD=9Z:I.5P-4A:N- M-Z364-O!PO4?_['(WN2R)PHE@/VFF\Y$W\"## M%=DP?2=V7[#.IV?Q4L&4^X5=Y=OO>I!NE!:\#C8*."VJ+WFJZW 0$/9; J(Z M('H=T,80UP&Q2[12YM*:$DV2H10[D-;;H-F%JXV+-MG0PG9QH:4YI29.)]T@ MO/AZ":3(X+O.4<(45\8E@XDHM*3+C2OVG)%"P<44-:%,7<('N%],X>+=Y=#7 M1H2%\M.:<%P11BV$800S YTK^%1DF+T$\(WZ)H5HG\(X.HLXQ;0#HB * M3PB:O#T\.",G;BH:.[QN"]X=:BK17'0-"[*EQ5JY\L&BOKBFXH_P,$.^1/GK M#%^WX>LZOKA5?TO#8$I5RH3:2(2';\8';C5R=8ZSUW#VSN8X(SK-36J0'I J MT *0ETP\(ZI3-Z,"[3M0.UZV21S%06"JOCWLUPFWX(7;"\W]1G/_K.:3=6II MEGI+@ZX:XJO_UJ!!PSGX%PT:'%6^%QSWY]@K_GC<'O]@*'&4:S>KE1&T*73U MYVYVF^?@QDW!5_MC\TQ44_TO3/7&S(A<4Y,6PY6!##I7YN;(:FY7AA:E&WU+ MH&ULM59M;]HP$/XKIV@? M6FEK8B"C7IN("KQ3H=5TS=3_!2FY& 0FV!]=\61IW$(Z' M*[;$.9JOJRME=V'GI> U"LVE (6+47!.WDY)[ #>XAO'C=Y9@TOE1LI?;G-1 MC(+(,<(*<^-<,/MWBU.L*N?)\OC=.@VZF ZXN]YZ?^^3M\G<,(U367WGA2E' M03^ A=L79EKN?F(;4*I\Y?+2OM?V+2V40#Y6AM9MV#+H.:B^6=WK1 [ -([ M * M@.X#D@. N 5XY<*&F4]KQ@P;#Y7<@'+6UIM;>&T\VF;#A7N-N?@USOA1\P7,F#$P]#53VF(D"/J!<*K8J>0[GMG(T MG,R;&H#/"]CZF]S#E9+%.C?PR88\A9,9&L8K?0IOX.M\!B>O3N$5< %?2KG6 MUJ\>AL8FY&B%>4M^TI"G!\@3"I=2F%+#.U%@\;>#T"K1R4&WSNQ]Q5\$(T'ZPK_!].3[@P6.N?1T(D78C$ MATB.%\"3ZC?(GD>Z?G ['M L2X;A[:XDCZVRB)"LL_J+5MK12H_2^F@_/UM! MF'/?,.*9+STZ@[EM(5)I^'&)]0VJ8Q+TNEB]EU(YZT)DSU:Y0:8[^M%TD) ] ME1];D2RE]&F5^QVM_E%:%T*OMOW4RGN)1LE*+N]A?J]=ZO^B\J"+-7@IE4GT MT,VB9^O<0G\)_819G*7)@7HF.XV6'*4VQYKG4C@-I/J?,B;T(01] M,8D?6A*)GR]Q_*@7T+B?I?L2/S8C:93T]R0.=\::'3]+/^TUY'(M3-/2N]/N M1G'NY^C>^<3=-/RX?'#37%,NF5IRH:'"A749G67VM:MF\C<;(U=^>-Y(8V>@ M7Y;VMH3*&=CG"RG-=N,"=/>O\1]02P,$% @ :UQK5./'M87Z P FQ( M !D !X;"]W;W)K&ULM5A=C]HX%/TK5M1*,])T M$CM 8 1(?.QV*RW5"#J[#U4?3&(@G<2FMH%6VA^_=A+B,(20J28O)';NO3[W M'GQNXOZ!\6>Q(42"GW%$Q<#:2+E]L&WA;TB,Q3W;$JJ>K!B/L51#OK;%EA,< M)$YQ9"/'Z=@Q#JDU["=SCWS89SL9A90\LX,0_7&ZDG M[&%_B]=D0>33]I&KD9U'"<*84!$R"CA9#:P1?)B@GG9(+/X)R4$4[H%.9%=).?L\!?)$FKK>#Z+1/(+#IFM8P%_)R2+,V>%( YI>L4_ MLT(4'&#G@@/*'-!+A]8%!S=S<)-$4V1)6E,L\;#/V0%P;:VBZ9ND-HFWRB:D MFL:%Y.IIJ/SD<$[VA.X(F##J$RHYUL45=V 1KFFX"GU,)9@D, A7TY@&X"-A M:XZWF] '(_7/$>#F,^;:<4]NP@9""+QNV$\I= M]&VI<.O5;3_#.$XQH@L8(0(S1N5&@#]H0(+3 +9*.,\:';,>H\J(4^+? Q?> M >0@6 )H4M_=J8#CYB2X23RWFH0[,,/?&<_K#;[^K0S!)TEB\:UBF5:^3"M9 MIE6]3"D#J6U]L2SG5IX#H9=;GP4K$Y@]7)8O;JE_25T MKG5*"QVC;DZ3Q84%&86_7=[,M;AM7.B,Z+#?X#QPR*]^9YWWNCO6?$%_::I D9'4;.:WO\':!$ENV^+-2I#EZ20604&E4K M=(.L3.JP@HQ@(]0H*T9ZD?MVK+AG[=^]V/V1$654+8D-LC*MQ8I17-1NE!6C MG:CZ;?-5K'3.]XIWD16CJJA:# N?>*_O+Y\9_?"TJ%5\(ZFHVVCQC2*BZO?1 M^B\)5P)U2_I)]FUYQ=&YU(CLPF>^2GZ=G'X(D/Q;TF_??#8_81DEYPHOYL?P M89*>DY@PZ;'-#/-U2 6(R$J%=.X]M2=X>A*2#B3;)H<)2R85 \GMAN" <&V@ MGJ\8D\>!7B _CQK^#U!+ P04 " !K7&M4GF;.[P $ ![$0 &0 'AL M+W=OG/G>6J9TIRH6[&AW+Q9"9D3;9IR[:F-I"0IG?+,0[X? M>CEA?# =EWU/E0VGQ-Z,[=? ,BE)>A?A:-#XEDX%? M9$0SNM1%"&)^WNB<9ED1R>3QK0XZ:,8L' ^?]]%_+HLWQ;P21> VN'J@F+%/7X"?PLG@ 5Q^NP0? ./@K M%5ME8JNQITU116K>LBY@5A6 >@J "#P*KE,%/O*$)N\#>(9&@P3MD8:E9Z$+;],815$P]MX.L72M(A_"J+%ZE]:P26OH3.N% M,TT3L-!$4P6^/-+\E4I7O6$3.+PDUJ@9)CH;:^4Y/ &AQA%+:Q'K *(@^-8 M1TU:(V=:?U*=4ID5_W*G0(V;L/$EH4+?JI9_-M;:]9 8BGR_A?68%<(]JQ4> MR"ET)O:YX H^;J79:$\A"Y&-C"[*UNH-Q.>SQ1UJ<1C$;;9=*R,%?6RM0D&W M1,U3QLE)4*VZP.%%H5JU@>'Y4,,.+NR'\:A-M6L&1[&/>[!:A8)NB5HPOB8; M(4];KU9AX.BB:*WFP/A\M'&'6>#';8D]8H6CN&>](BM2R"U2"W-L3L'OANQ) MJQ99D4'PDFB1U1R$SD9;N[[?F$9^6PN.F(4X"GO86I%";I'ZC6P(/XFJE1<4 M7)2J%1WD/M,XJ0X[N(8P&+:A=JTPC% /5"M2R"U2U>9UK]AIZ]4J#(HN2M9J M#G(?:YQD1]U-"0T[9+M6Y@SK]Z&U(H7<(E6A/8$JMO*"_4M2Q59NL/M,XZ): MNX;O]JZX?34X8F4N$'$+JG=PC36%K,O;O0)+L>6ZNKXUO?4=P(:I/DL\$KEF7(&,KDQ(_S8R$RVKFW[5T&)37I9?A38TR\>4DH3*PL"\ M7PFA]XUB@.9[R_1_4$L#!!0 ( &M<:U2$YRVN\ ( )4) 9 >&PO M=V]R:W-H965TT#VXR:2P2.VL[+?OW:[LA#:54?4#B);&=.<=GSD1C#Y9$819A@I0T'T:X$3 MS#+#I'7\K4B=>D\#;(Y?V;_;Y'4R,R)QPK/?-%;IT.DY$&-"RDS=\^5/K!)J M&[Z(9](^85G%>@Y$I50\K\!:04[9ZDU>*B,: +_U 2"H ,&^@+ "A#;1E3*; MU@519#00? G"1&LV,[#>6+3.AC)3QJD2^BO5.#6ZQP6R$F'"681,"6+,E<

4EY*+4(.7*6S-SFX497I^2K3X(-,+S ZA= _AL +_"WPR?YP[RWU\8'E"W<;+R$1/(?+%X6"D6SMM;7:FGG=-//I6O/ E<)<_MFA(JQ5A%9% MZP,5#USI3;-US8C=9IN[*Z*.)3+-83$*VZW^P%TT/=P6U/'JH#<:6[7&UDZ- MCXPJK6RJB-)V/=U@/D.Q*_EV3=S^PA)T:A6=SRK!BJC=<#=H!YV-$FP)ZOFM M[27HUAJ[.S5>ED(?'/MXWZL9>U_H?;]6T?\L[_OO;/7##>??AW2VV^Y[Z^[L M[10XEI3 6%MQJU(4^Q3 ;W1^_PM+X*\;H1]\5A$JIF9_\3W?VZC#EJAN:[,) MN8TSTUQ8;HB84R8APT2CO-.NKJ-8W0%6$\4+>XS.N-+^V&&J[TTH3(#^GG"N M7B?F9*YO8J/_4$L#!!0 ( &M<:U3;'L5/&@, H2 - >&PO)MT1[CF&;U?&H4'*;W)@X@V6F)0L>J,C( MA H^U1R\"EIRL7;F/AAF2B@=&%M5&RH"2_WHX,C-H. M3\FETDUL%\']G;;+ M#X#-# 1R(3J!?>(,XU%%C6%:7MM)L[@Q/H&"=GRWKJS"N:;KJ#\@6X?F9H-, ME]2_LZWJ#B#\I\7MKMR&8.3<9N-"OX MJIFOBDX QA[A[+2JQ/J3X'-9,K?Y%P<01]&2Z=O9PW@+2<[DDT/8TALZM2^Z>_QV?\6RL;C,V8KEDW:JY]-F&-B!C=I>X'"(7#>7'\%\'.9' ,/B8 HP M'^>%Q?F?]C-$]^,P3-O0BPQ1GR'JX[Q\R*3Y8''\/JF]_#M-TSA.$BRCDXE7 MP03+6Y+ U\^&:0,/+ Y$^K-6!6PWH'X_CC04WZ?.(:J8MJP)QA'TA1#H!?]/9HD2'82^/CK@STE M<9RF?@0POX(XQA!X&G$$4P :,"2.FW/PX#P*-^=4N/WU9_P;4$L#!!0 ( M &M<:U27BKL

-8?20$3;8T.P6BP^0"X99K>]9!:GV:4055F,_/$X'I5Y>-&N,+M MT;K2-[*HA)GR2OQM]'HEU4M]&_<4(_ 831QVGVT0S\W_":/.J7)#8-]7>RI6MG]1]];>L?>K*X8(8 MFG/I+IAO60-.!WGMCG4A,_?M&;OB!5>I8$UP+0#T$4#_:(!L..< ,D @@P-" M+FJ(^A\LF^5LMA(&0(8(9'@TR&M=K@!DA$!&QX/D=@D@8P0R/AKDHM(I@$P0 MR(06\FIMI1+6LJFPJ9&KND#3%2WDBY(Y@#Q%($^I([F1V1?OC*VXRD0I8>S. M$*PS6JQ[L1%J+=B]2+4+UN_=]1CKK\>T:-^Y>17.B(7K!46Z-@Y.P*[:0V5" M;)-9M12FZ4V,6 IEG9B=\E)="C:\U1U,3"D>L5-NN#3LD1>NAK\+;M>F;;\0 M#Y.)1VR3Q9(;\>6*6]>[U+%T@?R4,6 >\8A%R8?KPB/W1 MOH$W4KD\0?+BHW=F+A^$V8*'^<,C%L@V>@_\1[?M8KKPB'U1)RKNK'IAMZY- M=+DP0WC$B@C'WO#?$^;\P-K*G8K]*"7$C.(3VP0-$_H5C@F$Y]8)GORA%TX(29F$Y_8)OORA2TGQ,0$ MXQ,+IB]MZ'TS,=OXQ+;!\P<&,3';^,2V@0E$7PP#S#$!L6-^SR1Z 3'?!,2^ M05W=Z7X"S#<5,'=2-.V!!B8LX)B)W3 M:^\/4(B).2<@=DXOYF)=EMS\9#,X;1-@S@F(G8-B=IL0YIR V#DX9J<)8=8) MB*VS)VM;N%MGZX[! \PZ ;%U4,Q.I8>8?\)C3)%]M'6(B5DH/.9D6>?=##$+ MA<06PC%#B(E9*"2V$(X904QT#8;80GN'%.T%B(E9*#S6R*=M1! 3LU!XM)%/ MPPDQ,0N%Q!;:C]ETG1 3LU!(;"$4L]N]8Q8*B2V$8\)^,\(L%!%;",&L\P^( MB5DH(K90_ZA\EWG 6^$62@BME _YGOZ#C$Q"T4'L=">Z8-.$XHP"T4'F7_; MA]EI0NA>@&,NYG12CPBS4$1L(1P3IAX19J&(>H$'Q8PA)F:AZ)@S<$\)Q,0L M%!%;",<\A1M5, O%U'-Q*.89Q,0L%!]D+-2/^=3LMWC'Q"P4$UNH.^WZ+LE9 MWKH)8F(6BHDMM!]S;O0&KD7&F(5B8@OMQ_Q:3]A 3,Q",;&%NIAP:G,J*MZ) M)KHG[8!["N",81M,#3$Q"\7$%MI?Z5.1=[9*QIB%8FH+?5K#Z%0\Q,0L%%-; MZ!/F>T1USCH[$3$+)0=?$8*8<#HAP2R4$%L(W6K2R=X3S$+)@?8A]"]?P>P] MP2R4$%L(QX39>X)9*#G0NE _)LS>$\Q"R8'6A?HQ8?:>8!9*&@N-FL+V\B)K M7_ []Q76G4]YD&PO7W)E;',O=V]R:V)O;VLN M>&UL+G)E;'/-VDMNHT 4A>&M6"P@N.ZKDE:<44\RC;(!Y)0?BFT0T$JR^[:< M@7U0#WH2<4:H0%S^"9\0\/A2#LVX;T_#;M\-B\_CX32LJMTX=K_J>ECORK$9 M[MJNG,Y'-FU_;,;SLM_67;-^;[:EEN4RZOYV1O7T>#MS\?K5E?^9V&XV^W7Y MW:[_',MI_,?@^J/MWX==*6.U>&WZ;1E75?UYN.X>ZLLFW9TG5XOGMU75/[^E MJIX[2"!(Y@]2"-+Y@PR";/X@AR"?/R@@*.8/RA"4YP^ZAZ#[^8,>(.AA_J"T M1!F7!$D3K FT3LAU(O Z(=B)0.R$9"<"LQ.BG0C43LAV(G [(=R)0.Z$="<" MNQ/BG0CT%M1;"/06U%L(]);)PS:!WH)Z"X'>@GH+@=Z">@N!WH)Z"X'>@GH+ M@=Z">@N!WH)Z"X'>BGHK@=Z*>BN!WHIZ*X'>.GE90J"WHMY*H+>BWDJ@MZ+> M2J"WHMY*H+>BWDJ@MZ+>2J"WH=Y&H+>AWD:@MZ'>1J"WH=Y&H+=-7G83Z&VH MMQ'H;:BW$>AMJ+<1Z&VHMQ'H;:BW$>CMJ+<3Z.VHMQ/H[:BW$^CMJ+<3Z.VH MMQ/H[9./E01Z.^KM!'H[ZNT$>COJ[01Z.^KM!'H'ZAT$>@?J'01Z!^H=!'H' MZAT$>@?J'01Z!^H=!'K'Y&<3 KT#]0X"O0/U#@*] _4. KTSZIT)],ZH=R;0 M.Z/>F4#OC'IG KTSZIT)],ZH=R;0.Z/>^2?U'L:O0QFN/=]KO/Y/4CV>SRW7 MRU^6WSLG]_@%Y_JV8GCZ"U!+ P04 " !K7&M4SA7,7P\" #J*P $P M %M#;VYT96YT7U1Y<&5S72YX;6S-VLUNXC 4!>!70=E6Q/@WTQ&PF9EMAT5? MP$TN)2*)+=MMX>W'"6VE5ATT%2/U;(C ]CTWOM*W8GE[]!1GA[X;XJK8I>2_ M,Q;K'?4VEL[3D%>V+O0VY:_AGGE;[^T],;%8&%:[(=&0YFFL4:R7/VEK'[HT M^W7(/\?6#:LB4!>+V8_3QC%K55CON[:V*:^SQZ%YES)_3BCSR6E/W+4^7N4- M!?LP85SY>\#SN=^/%$+;T&QC0[JQ?=[%#AV+Z=A1+,^7^*!'M]VV-36N?NCS MD3+Z0+:).Z+4=^6IZ-7YY)1OF$Z?_.+\J6*!/A_W,I+Q]-SG M0A12>_X57Q-SZ8O?C\9I-]3\8W:^WB<7]M,\(IL>E]_QVQF_UO]D'P*D#PG2 MAP+I0X/T84#ZJ$#Z^ ;2QS5('WR!T@B*J!R%5(YB*D=!E:.HRE%8Y2BN&UL4$L! A0#% @ :UQK5"&@N*'N M *P( !$ ( !KP &1O8U!R;W!S+V-O&UL4$L! M A0#% @ :UQK5)E&PO=V]R:W-H965T&UL4$L! M A0#% @ :UQK5)-\O!Z8!@ C!H !@ ("!3 X 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK5$O( MK09V P @H !@ ("!XQP 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0#% @ :UQK5+(1[CSX'0 \%D !@ M ("!MBT 'AL+W=O1+ !X;"]W;W)K M&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK5%A["="4 M P ? @ !D ("!\%\ 'AL+W=O&PO=V]R:W-H965T-J !X;"]W;W)K&UL4$L! A0#% @ :UQK5.5N"9$*! R@H !D M ("!/W0 'AL+W=O >&PO=V]R M:W-H965T&UL M4$L! A0#% @ :UQK5%RJC]Q(!@ <0X !D ("!T8P M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M:UQK5$79REDU! $@D !D ("!)9P 'AL+W=O&UL4$L! A0#% @ :UQK5,4I"ZA^! M2PT !D ("!@\, 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK5,HHI5/A! G0L !D M ("! M 'AL+W=OP" "L!@ &0 @($:U0 >&PO=V]R:W-H M965T&UL4$L! M A0#% @ :UQK5.Y4A.:5!@ )!$ !D ("!LMX 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK M5!E]*RTC!0 F!< !D ("!5NT 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK5'^ULZ[V @ /@H M !D ("!>?@ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK5"@ACXO>!0 22$ !D M ("!,@$! 'AL+W=O4# ,$P &0 @(%'!P$ >&PO=V]R:W-H965T M&UL4$L! A0# M% @ :UQK5$!##J%? @ 5@4 !D ("!K@X! 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK5"1S M*9>6!0 02@ !D ("!R!@! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK5&LIN[.0 P E@T !D M ("!02H! 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ :UQK5"/1&->/ @ (08 !D ("! MAS4! 'AL+W=O&UL4$L! A0#% M @ :UQK5+UXG1W, @ +P< !D ("!63X! 'AL+W=O# &0 M@(&[2P$ >&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK5'$NI5=L @ U 4 !D M ("!5%(! 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ :UQK5!B(6L^C @ O08 !D ("!VEL! M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M:UQK5-FKR)M& P 9@@ !D ("!)&8! 'AL+W=O&UL4$L! A0#% @ :UQK5&M8: +T P MNPP !D ("!KW$! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ :UQK5,OF3QJ7 @ 2 < !D M ("!G'L! 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ :UQK5)YFSN\ ! >Q$ !D ("![X4! 'AL M+W=O&PO=V]R:W-H965T7!E&UL4$L%!@ !4 %0 Q< .*; 0 $! end XML 90 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 91 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 92 FilingSummary.xml IDEA: XBRL DOCUMENT 3.22.0.1 html 195 487 1 false 65 0 false 9 false false R1.htm 0001000 - Document - Document And Entity Information Sheet http://cyberoptics.com/role/DocumentAndEntityInformation Document And Entity Information Cover 1 false false R2.htm 1001000 - Statement - Consolidated Balance Sheets Sheet http://cyberoptics.com/role/ConsolidatedBalanceSheets Consolidated Balance Sheets Statements 2 false false R3.htm 1001501 - Statement - Consolidated Balance Sheets (Parenthetical) Sheet http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical Consolidated Balance Sheets (Parenthetical) Statements 3 false false R4.htm 1002000 - Statement - Consolidated Statements Of Operations Sheet http://cyberoptics.com/role/ConsolidatedStatementsOfOperations Consolidated Statements Of Operations Statements 4 false false R5.htm 1003000 - Statement - Consolidated Statements Of Comprehensive Income Sheet http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome Consolidated Statements Of Comprehensive Income Statements 5 false false R6.htm 1004000 - Statement - Consolidated Statements Of Cash Flows Sheet http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows Consolidated Statements Of Cash Flows Statements 6 false false R7.htm 1005000 - Statement - Consolidated Statements Of Stockholders' Equity Sheet http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity Consolidated Statements Of Stockholders' Equity Statements 7 false false R8.htm 2101100 - Disclosure - Business Description And Significant Accounting Policies Sheet http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPolicies Business Description And Significant Accounting Policies Notes 8 false false R9.htm 2102100 - Disclosure - Covid-19 pandemic Sheet http://cyberoptics.com/role/Covid19pandemic Covid-19 pandemic Notes 9 false false R10.htm 2103100 - Disclosure - Revenue Recognition Sheet http://cyberoptics.com/role/RevenueRecognition Revenue Recognition Notes 10 false false R11.htm 2104100 - Disclosure - Marketable Securities Sheet http://cyberoptics.com/role/MarketableSecurities Marketable Securities Notes 11 false false R12.htm 2106100 - Disclosure - Other Comprehensive Income (Loss) Sheet http://cyberoptics.com/role/OtherComprehensiveIncomeLoss Other Comprehensive Income (Loss) Notes 12 false false R13.htm 2107100 - Disclosure - Fair Value Measurements Sheet http://cyberoptics.com/role/FairValueMeasurements Fair Value Measurements Notes 13 false false R14.htm 2108100 - Disclosure - Share-Based Compensation Sheet http://cyberoptics.com/role/DisclosureShareBasedCompensation Share-Based Compensation Notes 14 false false R15.htm 2109100 - Disclosure - Net Income Per Share Sheet http://cyberoptics.com/role/DisclosureNetIncomePerShare Net Income Per Share Notes 15 false false R16.htm 2110100 - Disclosure - Other Financial Statement Data Sheet http://cyberoptics.com/role/OtherFinancialStatementData Other Financial Statement Data Notes 16 false false R17.htm 2112100 - Disclosure - Income Taxes Sheet http://cyberoptics.com/role/IncomeTaxes Income Taxes Notes 17 false false R18.htm 2113100 - Disclosure - Operating Leases Sheet http://cyberoptics.com/role/OperatingLeases Operating Leases Notes 18 false false R19.htm 2114100 - Disclosure - 401(K) and Other Defined Contribution Plans Sheet http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlans 401(K) and Other Defined Contribution Plans Notes 19 false false R20.htm 2115100 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas Sheet http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreas Revenue Concentrations, Significant Customers, and Geographic Areas Notes 20 false false R21.htm 2117100 - Disclosure - Contingencies Sheet http://cyberoptics.com/role/Contingencies Contingencies Notes 21 false false R22.htm 2201201 - Disclosure - Business Description And Significant Accounting Policies (Policies) Sheet http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies Business Description And Significant Accounting Policies (Policies) Policies http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPolicies 22 false false R23.htm 2303301 - Disclosure - Revenue Recognition (Tables) Sheet http://cyberoptics.com/role/RevenueRecognitionTables Revenue Recognition (Tables) Tables http://cyberoptics.com/role/RevenueRecognition 23 false false R24.htm 2304301 - Disclosure - Marketable Securities (Tables) Sheet http://cyberoptics.com/role/MarketableSecuritiesTables Marketable Securities (Tables) Tables http://cyberoptics.com/role/MarketableSecurities 24 false false R25.htm 2305301 - Disclosure - Other Comprehensive Income (Loss) (Tables) Sheet http://cyberoptics.com/role/OtherComprehensiveIncomeLossTables Other Comprehensive Income (Loss) (Tables) Tables http://cyberoptics.com/role/OtherComprehensiveIncomeLoss 25 false false R26.htm 2306301 - Disclosure - Fair Value Measurements (Tables) Sheet http://cyberoptics.com/role/FairValueMeasurementsTables Fair Value Measurements (Tables) Tables http://cyberoptics.com/role/FairValueMeasurements 26 false false R27.htm 2307301 - Disclosure - Share-Based Compensation (Tables) Sheet http://cyberoptics.com/role/DisclosureShareBasedCompensationTables Share-Based Compensation (Tables) Tables http://cyberoptics.com/role/DisclosureShareBasedCompensation 27 false false R28.htm 2308301 - Disclosure - Net Income Per Share (Tables) Sheet http://cyberoptics.com/role/DisclosureNetIncomePerShareTables Net Income Per Share (Tables) Tables http://cyberoptics.com/role/DisclosureNetIncomePerShare 28 false false R29.htm 2309301 - Disclosure - Other Financial Statement Data (Tables) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataTables Other Financial Statement Data (Tables) Tables http://cyberoptics.com/role/OtherFinancialStatementData 29 false false R30.htm 2310301 - Disclosure - Income Taxes (Tables) Sheet http://cyberoptics.com/role/IncomeTaxesTables Income Taxes (Tables) Tables http://cyberoptics.com/role/IncomeTaxes 30 false false R31.htm 2311301 - Disclosure - Operating Leases (Tables) Sheet http://cyberoptics.com/role/OperatingLeasesTables Operating Leases (Tables) Tables http://cyberoptics.com/role/OperatingLeases 31 false false R32.htm 2313301 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Tables) Sheet http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables Revenue Concentrations, Significant Customers, and Geographic Areas (Tables) Tables http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreas 32 false false R33.htm 2401402 - Disclosure - Business Description And Significant Accounting Policies (Details) Sheet http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails Business Description And Significant Accounting Policies (Details) Details http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies 33 false false R34.htm 2402401 - Disclosure - Covid-19 Pandemic (Narrative) (Details) Sheet http://cyberoptics.com/role/Covid19PandemicNarrativeDetails Covid-19 Pandemic (Narrative) (Details) Details 34 false false R35.htm 2403402 - Disclosure - Revenue Recognition (Narrative) (Details) Sheet http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails Revenue Recognition (Narrative) (Details) Details http://cyberoptics.com/role/RevenueRecognitionTables 35 false false R36.htm 2403403 - Disclosure - Revenue Recognition (Summary Of Revenue Performance Obligations) (Details) Sheet http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails Revenue Recognition (Summary Of Revenue Performance Obligations) (Details) Details http://cyberoptics.com/role/RevenueRecognitionTables 36 false false R37.htm 2403404 - Disclosure - Revenue Recognition (Summary Of Contract Assets And Contract Liabilities) (Details) Sheet http://cyberoptics.com/role/RevenueRecognitionSummaryOfContractAssetsAndContractLiabilitiesDetails Revenue Recognition (Summary Of Contract Assets And Contract Liabilities) (Details) Details http://cyberoptics.com/role/RevenueRecognitionTables 37 false false R38.htm 2403405 - Disclosure - Revenue Recognition (Summary of the amounts reclassified from beginning contract liabilities to revenue) (Details) Sheet http://cyberoptics.com/role/RevenueRecognitionSummaryoftheamountsreclassifiedfrombeginningcontractliabilitiestorevenueDetails Revenue Recognition (Summary of the amounts reclassified from beginning contract liabilities to revenue) (Details) Details http://cyberoptics.com/role/RevenueRecognitionTables 38 false false R39.htm 2404401 - Disclosure - Marketable Securities (Schedule Of Marketable Securities) (Details) Sheet http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails Marketable Securities (Schedule Of Marketable Securities) (Details) Details http://cyberoptics.com/role/MarketableSecuritiesTables 39 false false R40.htm 2404402 - Disclosure - Marketable Securities (Schedule Of Unrealized Loss Position) (Details) Sheet http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails Marketable Securities (Schedule Of Unrealized Loss Position) (Details) Details http://cyberoptics.com/role/MarketableSecuritiesTables 40 false false R41.htm 2404403 - Disclosure - Marketable Securities (Narrative) (Details) Sheet http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails Marketable Securities (Narrative) (Details) Details http://cyberoptics.com/role/MarketableSecuritiesTables 41 false false R42.htm 2405401 - Disclosure - Other Comprehensive Income (Loss) (Narrative) (Details) Sheet http://cyberoptics.com/role/OtherComprehensiveIncomeLossNarrativeDetails Other Comprehensive Income (Loss) (Narrative) (Details) Details http://cyberoptics.com/role/OtherComprehensiveIncomeLossTables 42 false false R43.htm 2405402 - Disclosure - Other Comprehensive Income (Loss) (Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss)) (Details) Sheet http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails Other Comprehensive Income (Loss) (Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss)) (Details) Details http://cyberoptics.com/role/OtherComprehensiveIncomeLossTables 43 false false R44.htm 2405404 - Disclosure - Other Comprehensive Income (Loss) (Schedule of Accumulated Comprehensive Income (Loss)) (Details) Sheet http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails Other Comprehensive Income (Loss) (Schedule of Accumulated Comprehensive Income (Loss)) (Details) Details http://cyberoptics.com/role/OtherComprehensiveIncomeLossTables 44 false false R45.htm 2406402 - Disclosure - Fair Value Measurements (Fair Value Measurements For Marketable Securities And Foreign Exchange Forward Contracts) (Details) Sheet http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails Fair Value Measurements (Fair Value Measurements For Marketable Securities And Foreign Exchange Forward Contracts) (Details) Details http://cyberoptics.com/role/FairValueMeasurementsTables 45 false false R46.htm 2406403 - Disclosure - Fair Value Measurements (Narrative) (Details) Sheet http://cyberoptics.com/role/FairValueMeasurementsNarrativeDetails Fair Value Measurements (Narrative) (Details) Details http://cyberoptics.com/role/FairValueMeasurementsTables 46 false false R47.htm 2407402 - Disclosure - Share-Based Compensation (Narrative) (Details) Sheet http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails Share-Based Compensation (Narrative) (Details) Details http://cyberoptics.com/role/DisclosureShareBasedCompensationTables 47 false false R48.htm 2407403 - Disclosure - Share-Based Compensation (Schedule Of Stock Option Activity) (Details) Sheet http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails Share-Based Compensation (Schedule Of Stock Option Activity) (Details) Details http://cyberoptics.com/role/DisclosureShareBasedCompensationTables 48 false false R49.htm 2407404 - Disclosure - Share-Based Compensation (Schedule Of Stock Option Valuation Assumptions) (Details) Sheet http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails Share-Based Compensation (Schedule Of Stock Option Valuation Assumptions) (Details) Details http://cyberoptics.com/role/DisclosureShareBasedCompensationTables 49 false false R50.htm 2407405 - Disclosure - Share-Based Compensation (Schedule Of Non-Vested Restricted Stock Activity) (Details) Sheet http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails Share-Based Compensation (Schedule Of Non-Vested Restricted Stock Activity) (Details) Details http://cyberoptics.com/role/DisclosureShareBasedCompensationTables 50 false false R51.htm 2407406 - Disclosure - Share-Based Compensation (Summary Of Pre-tax Equity Based Compensation Expense) (Details) Sheet http://cyberoptics.com/role/DisclosureShareBasedCompensationSummaryOfPretaxEquityBasedCompensationExpenseDetails Share-Based Compensation (Summary Of Pre-tax Equity Based Compensation Expense) (Details) Details http://cyberoptics.com/role/DisclosureShareBasedCompensationTables 51 false false R52.htm 2408402 - Disclosure - Net Income Per Share (Schedule Of Net Income Per Basic And Diluted Shares) (Details) Sheet http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails Net Income Per Share (Schedule Of Net Income Per Basic And Diluted Shares) (Details) Details http://cyberoptics.com/role/DisclosureNetIncomePerShareTables 52 false false R53.htm 2408403 - Disclosure - Net Income Per Share (Narrative) (Details) Sheet http://cyberoptics.com/role/NetIncomePerShareNarrativeDetails Net Income Per Share (Narrative) (Details) Details http://cyberoptics.com/role/DisclosureNetIncomePerShareTables 53 false false R54.htm 2409402 - Disclosure - Other Financial Statement Data (Schedule Of Inventory Components) (Details) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails Other Financial Statement Data (Schedule Of Inventory Components) (Details) Details http://cyberoptics.com/role/OtherFinancialStatementDataTables 54 false false R55.htm 2409403 - Disclosure - Other Financial Statement Data (Schedule Of Equipment And Leasehold Improvements) (Details) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails Other Financial Statement Data (Schedule Of Equipment And Leasehold Improvements) (Details) Details http://cyberoptics.com/role/OtherFinancialStatementDataTables 55 false false R56.htm 2409404 - Disclosure - Other Financial Statement Data (Narrative) (Details) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails Other Financial Statement Data (Narrative) (Details) Details http://cyberoptics.com/role/OtherFinancialStatementDataTables 56 false false R57.htm 2409405 - Disclosure - Other Financial Statement Data (Schedule Of Intangible Assets) (Details) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails Other Financial Statement Data (Schedule Of Intangible Assets) (Details) Details http://cyberoptics.com/role/OtherFinancialStatementDataTables 57 false false R58.htm 2409406 - Disclosure - Other Financial Statement Data (Schedule Of Amortization Expense For Intangible Assets) (Details) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails Other Financial Statement Data (Schedule Of Amortization Expense For Intangible Assets) (Details) Details http://cyberoptics.com/role/OtherFinancialStatementDataTables 58 false false R59.htm 2409407 - Disclosure - Other Financial Statement Data (Schedule of Accrued Expenses) (Details) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails Other Financial Statement Data (Schedule of Accrued Expenses) (Details) Details http://cyberoptics.com/role/OtherFinancialStatementDataTables 59 false false R60.htm 2409408 - Disclosure - Other Financial Statement Data (Schedule of Other Liabilities) (Details) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails Other Financial Statement Data (Schedule of Other Liabilities) (Details) Details http://cyberoptics.com/role/OtherFinancialStatementDataTables 60 false false R61.htm 2409409 - Disclosure - Other Financial Statement Data (Schedule Of Changes In Estimated Warranty Liability) (Details) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails Other Financial Statement Data (Schedule Of Changes In Estimated Warranty Liability) (Details) Details http://cyberoptics.com/role/OtherFinancialStatementDataTables 61 false false R62.htm 2409410 - Disclosure - Other Financial Statement Data (Schedule Of Changes In Deferred Warranty Revenue) (Details) Sheet http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails Other Financial Statement Data (Schedule Of Changes In Deferred Warranty Revenue) (Details) Details http://cyberoptics.com/role/OtherFinancialStatementDataTables 62 false false R63.htm 2410402 - Disclosure - Income Taxes (Schedule Of Income Before Income Taxes) (Details) Sheet http://cyberoptics.com/role/IncomeTaxesScheduleOfIncomeBeforeIncomeTaxesDetails Income Taxes (Schedule Of Income Before Income Taxes) (Details) Details http://cyberoptics.com/role/IncomeTaxesTables 63 false false R64.htm 2410403 - Disclosure - Income Taxes (Schedule Of Provision (Benefit) For Income Taxes) (Details) Sheet http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails Income Taxes (Schedule Of Provision (Benefit) For Income Taxes) (Details) Details http://cyberoptics.com/role/IncomeTaxesTables 64 false false R65.htm 2410404 - Disclosure - Income Taxes (Schedule Of A Reconciliation Of The Statutory Rate To The Effective Income Tax Rate) (Details) Sheet http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails Income Taxes (Schedule Of A Reconciliation Of The Statutory Rate To The Effective Income Tax Rate) (Details) Details http://cyberoptics.com/role/IncomeTaxesTables 65 false false R66.htm 2410405 - Disclosure - Income Taxes (Narrative) (Details) Sheet http://cyberoptics.com/role/IncomeTaxesNarrativeDetails Income Taxes (Narrative) (Details) Details http://cyberoptics.com/role/IncomeTaxesTables 66 false false R67.htm 2410406 - Disclosure - Income Taxes (Summary Of A Reconciliation Of The Beginning And Ending Amount Of Gross Unrecognized Tax Benefits ("UTB")) (Details) Sheet http://cyberoptics.com/role/IncomeTaxesSummaryOfReconciliationOfBeginningAndEndingAmountOfGrossUnrecognizedTaxBenefitsUtbDetails Income Taxes (Summary Of A Reconciliation Of The Beginning And Ending Amount Of Gross Unrecognized Tax Benefits ("UTB")) (Details) Details http://cyberoptics.com/role/IncomeTaxesTables 67 false false R68.htm 2410407 - Disclosure - Income Taxes (Schedule Of Deferred Tax Assets And Liabilities) (Details) Sheet http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails Income Taxes (Schedule Of Deferred Tax Assets And Liabilities) (Details) Details http://cyberoptics.com/role/IncomeTaxesTables 68 false false R69.htm 2411400 - Disclosure - Operating Leases (Narrative) (Details) Sheet http://cyberoptics.com/role/OperatingLeasesNarrativeDetails Operating Leases (Narrative) (Details) Details http://cyberoptics.com/role/OperatingLeasesTables 69 false false R70.htm 2411401 - Disclosure - Operating Leases (Schedule of components of our costs for operating leases) (Details) Sheet http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails Operating Leases (Schedule of components of our costs for operating leases) (Details) Details http://cyberoptics.com/role/OperatingLeasesTables 70 false false R71.htm 2411402 - Disclosure - Operating Leases (Schedule of the future maturities of lease liabilities) (Details) Sheet http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails Operating Leases (Schedule of the future maturities of lease liabilities) (Details) Details http://cyberoptics.com/role/OperatingLeasesTables 71 false false R72.htm 2412401 - Disclosure - 401(K) and Other Defined Contribution Plans (Details) Sheet http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlansDetails 401(K) and Other Defined Contribution Plans (Details) Details http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlans 72 false false R73.htm 2413402 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Summary Of Revenue By Product Line) (Details) Sheet http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails Revenue Concentrations, Significant Customers, and Geographic Areas (Summary Of Revenue By Product Line) (Details) Details http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables 73 false false R74.htm 2413404 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Narrative) (Details) Sheet http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails Revenue Concentrations, Significant Customers, and Geographic Areas (Narrative) (Details) Details http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables 74 false false R75.htm 2413405 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Revenue By Geographic Area) (Details) Sheet http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Revenue By Geographic Area) (Details) Details http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables 75 false false R76.htm 2413406 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Long-lived Assets Attributable To Each Geographic Area's Operations) (Details) Sheet http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Long-lived Assets Attributable To Each Geographic Area's Operations) (Details) Details http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables 76 false false All Reports Book All Reports cybe-20211231.htm cybe-20211231.xsd cybe-20211231_cal.xml cybe-20211231_def.xml cybe-20211231_lab.xml cybe-20211231_pre.xml ex21_1.htm ex231_2.htm ex311_3.htm ex312_4.htm ex32_5.htm http://fasb.org/us-gaap/2021-01-31 http://xbrl.sec.gov/dei/2021q4 true true JSON 95 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "cybe-20211231.htm": { "axisCustom": 1, "axisStandard": 21, "contextCount": 195, "dts": { "calculationLink": { "local": [ "cybe-20211231_cal.xml" ] }, "definitionLink": { "local": [ "cybe-20211231_def.xml" ] }, "inline": { "local": [ "cybe-20211231.htm" ] }, "labelLink": { "local": [ "cybe-20211231_lab.xml" ] }, "presentationLink": { "local": [ "cybe-20211231_pre.xml" ] }, "schema": { "local": [ "cybe-20211231.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/dtr/type/nonNumeric-2009-12-16.xsd", "http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd", "https://xbrl.sec.gov/country/2021/country-2021.xsd", "https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd", "https://xbrl.sec.gov/stpr/2021/stpr-2021.xsd" ] } }, "elementCount": 732, "entityCount": 1, "hidden": { "http://cyberoptics.com/20211231": 2, "http://fasb.org/us-gaap/2021-01-31": 5, "http://xbrl.sec.gov/dei/2021q4": 17, "total": 24 }, "keyCustom": 43, "keyStandard": 444, "memberCustom": 23, "memberStandard": 42, "nsprefix": "cybe", "nsuri": "http://cyberoptics.com/20211231", "report": { "R1": { "firstAnchor": { "ancestors": [ "span", "p", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "0001000 - Document - Document And Entity Information", "role": "http://cyberoptics.com/role/DocumentAndEntityInformation", "shortName": "Document And Entity Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "p", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2103100 - Disclosure - Revenue Recognition", "role": "http://cyberoptics.com/role/RevenueRecognition", "shortName": "Revenue Recognition", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2104100 - Disclosure - Marketable Securities", "role": "http://cyberoptics.com/role/MarketableSecurities", "shortName": "Marketable Securities", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ComprehensiveIncomeNoteTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2106100 - Disclosure - Other Comprehensive Income (Loss)", "role": "http://cyberoptics.com/role/OtherComprehensiveIncomeLoss", "shortName": "Other Comprehensive Income (Loss)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ComprehensiveIncomeNoteTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2107100 - Disclosure - Fair Value Measurements", "role": "http://cyberoptics.com/role/FairValueMeasurements", "shortName": "Fair Value Measurements", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2108100 - Disclosure - Share-Based Compensation", "role": "http://cyberoptics.com/role/DisclosureShareBasedCompensation", "shortName": "Share-Based Compensation", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2109100 - Disclosure - Net Income Per Share", "role": "http://cyberoptics.com/role/DisclosureNetIncomePerShare", "shortName": "Net Income Per Share", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2110100 - Disclosure - Other Financial Statement Data", "role": "http://cyberoptics.com/role/OtherFinancialStatementData", "shortName": "Other Financial Statement Data", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2112100 - Disclosure - Income Taxes", "role": "http://cyberoptics.com/role/IncomeTaxes", "shortName": "Income Taxes", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeasesOfLesseeDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2113100 - Disclosure - Operating Leases", "role": "http://cyberoptics.com/role/OperatingLeases", "shortName": "Operating Leases", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeasesOfLesseeDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2114100 - Disclosure - 401(K) and Other Defined Contribution Plans", "role": "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlans", "shortName": "401(K) and Other Defined Contribution Plans", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1001000 - Statement - Consolidated Balance Sheets", "role": "http://cyberoptics.com/role/ConsolidatedBalanceSheets", "shortName": "Consolidated Balance Sheets", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "lang": null, "name": "us-gaap:MarketableSecuritiesCurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ConcentrationRiskDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2115100 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas", "role": "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreas", "shortName": "Revenue Concentrations, Significant Customers, and Geographic Areas", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ConcentrationRiskDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2117100 - Disclosure - Contingencies", "role": "http://cyberoptics.com/role/Contingencies", "shortName": "Contingencies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ConsolidationPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2201201 - Disclosure - Business Description And Significant Accounting Policies (Policies)", "role": "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies", "shortName": "Business Description And Significant Accounting Policies (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ConsolidationPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2303301 - Disclosure - Revenue Recognition (Tables)", "role": "http://cyberoptics.com/role/RevenueRecognitionTables", "shortName": "Revenue Recognition (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "div", "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AvailableForSaleSecuritiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2304301 - Disclosure - Marketable Securities (Tables)", "role": "http://cyberoptics.com/role/MarketableSecuritiesTables", "shortName": "Marketable Securities (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AvailableForSaleSecuritiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:ComprehensiveIncomeNoteTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2305301 - Disclosure - Other Comprehensive Income (Loss) (Tables)", "role": "http://cyberoptics.com/role/OtherComprehensiveIncomeLossTables", "shortName": "Other Comprehensive Income (Loss) (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:ComprehensiveIncomeNoteTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2306301 - Disclosure - Fair Value Measurements (Tables)", "role": "http://cyberoptics.com/role/FairValueMeasurementsTables", "shortName": "Fair Value Measurements (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2307301 - Disclosure - Share-Based Compensation (Tables)", "role": "http://cyberoptics.com/role/DisclosureShareBasedCompensationTables", "shortName": "Share-Based Compensation (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2308301 - Disclosure - Net Income Per Share (Tables)", "role": "http://cyberoptics.com/role/DisclosureNetIncomePerShareTables", "shortName": "Net Income Per Share (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2309301 - Disclosure - Other Financial Statement Data (Tables)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataTables", "shortName": "Other Financial Statement Data (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1001501 - Statement - Consolidated Balance Sheets (Parenthetical)", "role": "http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical", "shortName": "Consolidated Balance Sheets (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2310301 - Disclosure - Income Taxes (Tables)", "role": "http://cyberoptics.com/role/IncomeTaxesTables", "shortName": "Income Taxes (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "div", "us-gaap:LeasesOfLesseeDisclosureTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2311301 - Disclosure - Operating Leases (Tables)", "role": "http://cyberoptics.com/role/OperatingLeasesTables", "shortName": "Operating Leases (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "div", "us-gaap:LeasesOfLesseeDisclosureTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfProductInformationTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2313301 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Tables)", "role": "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables", "shortName": "Revenue Concentrations, Significant Customers, and Geographic Areas (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfProductInformationTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:MarketableSecuritiesPolicy", "div", "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "0", "first": true, "lang": null, "name": "cybe:CashHeldInForeignAccounts", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2401402 - Disclosure - Business Description And Significant Accounting Policies (Details)", "role": "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "shortName": "Business Description And Significant Accounting Policies (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:MarketableSecuritiesPolicy", "div", "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "0", "first": true, "lang": null, "name": "cybe:CashHeldInForeignAccounts", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:UnusualOrInfrequentItemsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231_SG_JobsSupportProgramMember_ReducedEmployeeExpensesMember", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:OperatingExpenses", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2402401 - Disclosure - Covid-19 Pandemic (Narrative) (Details)", "role": "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails", "shortName": "Covid-19 Pandemic (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:UnusualOrInfrequentItemsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231_SG_JobsSupportProgramMember_ReducedEmployeeExpensesMember", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:OperatingExpenses", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "us-gaap:CapitalizedContractCostImpairmentLoss", "span", "span", "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231_AccountingStandardsUpdate201409Member_DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CapitalizedContractCostImpairmentLoss", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2403402 - Disclosure - Revenue Recognition (Narrative) (Details)", "role": "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails", "shortName": "Revenue Recognition (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "us-gaap:CapitalizedContractCostImpairmentLoss", "span", "span", "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231_AccountingStandardsUpdate201409Member_DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CapitalizedContractCostImpairmentLoss", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2403403 - Disclosure - Revenue Recognition (Summary Of Revenue Performance Obligations) (Details)", "role": "http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails", "shortName": "Revenue Recognition (Summary Of Revenue Performance Obligations) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "ix:continuation", "div", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "3", "lang": null, "name": "cybe:PercentageOfRevenuePerformanceObligations", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerAssetNet", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2403404 - Disclosure - Revenue Recognition (Summary Of Contract Assets And Contract Liabilities) (Details)", "role": "http://cyberoptics.com/role/RevenueRecognitionSummaryOfContractAssetsAndContractLiabilitiesDetails", "shortName": "Revenue Recognition (Summary Of Contract Assets And Contract Liabilities) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerAssetNet", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "cybe:ScheduleOfAmountsReclassifiedFromBeginningContractLiabilitiesToRevenueTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2403405 - Disclosure - Revenue Recognition (Summary of the amounts reclassified from beginning contract liabilities to revenue) (Details)", "role": "http://cyberoptics.com/role/RevenueRecognitionSummaryoftheamountsreclassifiedfrombeginningcontractliabilitiestorevenueDetails", "shortName": "Revenue Recognition (Summary of the amounts reclassified from beginning contract liabilities to revenue) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "cybe:ScheduleOfAmountsReclassifiedFromBeginningContractLiabilitiesToRevenueTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:AvailableForSaleSecuritiesTextBlock", "div", "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231_ShortTermInvestmentsMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AvailableForSaleSecuritiesAmortizedCost", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2404401 - Disclosure - Marketable Securities (Schedule Of Marketable Securities) (Details)", "role": "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails", "shortName": "Marketable Securities (Schedule Of Marketable Securities) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:AvailableForSaleSecuritiesTextBlock", "div", "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231_ShortTermInvestmentsMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AvailableForSaleSecuritiesAmortizedCost", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1002000 - Statement - Consolidated Statements Of Operations", "role": "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations", "shortName": "Consolidated Statements Of Operations", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "lang": null, "name": "us-gaap:CostOfRevenue", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "tbody", "table", "us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValueTableTextBlock", "div", "div", "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2404402 - Disclosure - Marketable Securities (Schedule Of Unrealized Loss Position) (Details)", "role": "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails", "shortName": "Marketable Securities (Schedule Of Unrealized Loss Position) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "tbody", "table", "us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValueTableTextBlock", "div", "div", "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "cybe:MaximumMaturityOfDebtSecurities", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2404403 - Disclosure - Marketable Securities (Narrative) (Details)", "role": "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails", "shortName": "Marketable Securities (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "cybe:MaximumMaturityOfDebtSecurities", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "us-gaap:ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodBeforeTax", "span", "span", "p", "us-gaap:ComprehensiveIncomeNoteTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodBeforeTax", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2405401 - Disclosure - Other Comprehensive Income (Loss) (Narrative) (Details)", "role": "http://cyberoptics.com/role/OtherComprehensiveIncomeLossNarrativeDetails", "shortName": "Other Comprehensive Income (Loss) (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "us-gaap:ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodBeforeTax", "span", "span", "p", "us-gaap:ComprehensiveIncomeNoteTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodBeforeTax", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentBeforeTaxPortionAttributableToParent", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2405402 - Disclosure - Other Comprehensive Income (Loss) (Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss)) (Details)", "role": "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails", "shortName": "Other Comprehensive Income (Loss) (Changes in components of other comprehensive income (loss) and taxes related to items of other comprehensive income (loss)) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "ix:continuation", "us-gaap:ComprehensiveIncomeNoteTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "lang": null, "name": "us-gaap:OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToParent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20201231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2405404 - Disclosure - Other Comprehensive Income (Loss) (Schedule of Accumulated Comprehensive Income (Loss)) (Details)", "role": "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails", "shortName": "Other Comprehensive Income (Loss) (Schedule of Accumulated Comprehensive Income (Loss)) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "div", "us-gaap:ComprehensiveIncomeNoteTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20191231", "decimals": "-3", "lang": null, "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "ix:continuation", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InvestmentsFairValueDisclosure", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2406402 - Disclosure - Fair Value Measurements (Fair Value Measurements For Marketable Securities And Foreign Exchange Forward Contracts) (Details)", "role": "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails", "shortName": "Fair Value Measurements (Fair Value Measurements For Marketable Securities And Foreign Exchange Forward Contracts) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "ix:continuation", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InvestmentsFairValueDisclosure", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "us-gaap:AssetImpairmentCharges", "span", "p", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:AssetImpairmentCharges", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2406403 - Disclosure - Fair Value Measurements (Narrative) (Details)", "role": "http://cyberoptics.com/role/FairValueMeasurementsNarrativeDetails", "shortName": "Fair Value Measurements (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "us-gaap:AssetImpairmentCharges", "span", "p", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:AssetImpairmentCharges", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "0", "first": true, "lang": null, "name": "cybe:NumberOfStockBasedCompensationPlans", "reportCount": 1, "unique": true, "unitRef": "plan", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2407402 - Disclosure - Share-Based Compensation (Narrative) (Details)", "role": "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "shortName": "Share-Based Compensation (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "0", "first": true, "lang": null, "name": "cybe:NumberOfStockBasedCompensationPlans", "reportCount": 1, "unique": true, "unitRef": "plan", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20201231", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2407403 - Disclosure - Share-Based Compensation (Schedule Of Stock Option Activity) (Details)", "role": "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails", "shortName": "Share-Based Compensation (Schedule Of Stock Option Activity) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "0", "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "4", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2407404 - Disclosure - Share-Based Compensation (Schedule Of Stock Option Valuation Assumptions) (Details)", "role": "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails", "shortName": "Share-Based Compensation (Schedule Of Stock Option Valuation Assumptions) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "4", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1003000 - Statement - Consolidated Statements Of Comprehensive Income", "role": "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome", "shortName": "Consolidated Statements Of Comprehensive Income", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "lang": null, "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20201231", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2407405 - Disclosure - Share-Based Compensation (Schedule Of Non-Vested Restricted Stock Activity) (Details)", "role": "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails", "shortName": "Share-Based Compensation (Schedule Of Non-Vested Restricted Stock Activity) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "0", "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensation", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2407406 - Disclosure - Share-Based Compensation (Summary Of Pre-tax Equity Based Compensation Expense) (Details)", "role": "http://cyberoptics.com/role/DisclosureShareBasedCompensationSummaryOfPretaxEquityBasedCompensationExpenseDetails", "shortName": "Share-Based Compensation (Summary Of Pre-tax Equity Based Compensation Expense) (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R52": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2408402 - Disclosure - Net Income Per Share (Schedule Of Net Income Per Basic And Diluted Shares) (Details)", "role": "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails", "shortName": "Net Income Per Share (Schedule Of Net Income Per Basic And Diluted Shares) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "div", "td", "tr", "tbody", "table", "ix:continuation", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "lang": null, "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2408403 - Disclosure - Net Income Per Share (Narrative) (Details)", "role": "http://cyberoptics.com/role/NetIncomePerShareNarrativeDetails", "shortName": "Net Income Per Share (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterialsAndPurchasedPartsNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409402 - Disclosure - Other Financial Statement Data (Schedule Of Inventory Components) (Details)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails", "shortName": "Other Financial Statement Data (Schedule Of Inventory Components) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterialsAndPurchasedPartsNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409403 - Disclosure - Other Financial Statement Data (Schedule Of Equipment And Leasehold Improvements) (Details)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails", "shortName": "Other Financial Statement Data (Schedule Of Equipment And Leasehold Improvements) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "cybe:DemonstrationInventoryUsefulLife", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409404 - Disclosure - Other Financial Statement Data (Narrative) (Details)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails", "shortName": "Other Financial Statement Data (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "cybe:DemonstrationInventoryUsefulLife", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R57": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409405 - Disclosure - Other Financial Statement Data (Schedule Of Intangible Assets) (Details)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails", "shortName": "Other Financial Statement Data (Schedule Of Intangible Assets) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AmortizationOfIntangibleAssets", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409406 - Disclosure - Other Financial Statement Data (Schedule Of Amortization Expense For Intangible Assets) (Details)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails", "shortName": "Other Financial Statement Data (Schedule Of Amortization Expense For Intangible Assets) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AmortizationOfIntangibleAssets", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R59": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409407 - Disclosure - Other Financial Statement Data (Schedule of Accrued Expenses) (Details)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails", "shortName": "Other Financial Statement Data (Schedule of Accrued Expenses) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1004000 - Statement - Consolidated Statements Of Cash Flows", "role": "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows", "shortName": "Consolidated Statements Of Cash Flows", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "lang": null, "name": "us-gaap:DepreciationDepletionAndAmortization", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R60": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:OtherNoncurrentLiabilitiesTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ExtendedProductWarrantyAccrualNoncurrent", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409408 - Disclosure - Other Financial Statement Data (Schedule of Other Liabilities) (Details)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails", "shortName": "Other Financial Statement Data (Schedule of Other Liabilities) (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R61": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20201231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProductWarrantyAccrual", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409409 - Disclosure - Other Financial Statement Data (Schedule Of Changes In Estimated Warranty Liability) (Details)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails", "shortName": "Other Financial Statement Data (Schedule Of Changes In Estimated Warranty Liability) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20191231", "decimals": "-3", "lang": null, "name": "us-gaap:ProductWarrantyAccrual", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R62": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "ix:continuation", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20201231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ExtendedProductWarrantyAccrual", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2409410 - Disclosure - Other Financial Statement Data (Schedule Of Changes In Deferred Warranty Revenue) (Details)", "role": "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails", "shortName": "Other Financial Statement Data (Schedule Of Changes In Deferred Warranty Revenue) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "ix:continuation", "us-gaap:AdditionalFinancialInformationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20191231", "decimals": "-3", "lang": null, "name": "us-gaap:ExtendedProductWarrantyAccrual", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R63": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2410402 - Disclosure - Income Taxes (Schedule Of Income Before Income Taxes) (Details)", "role": "http://cyberoptics.com/role/IncomeTaxesScheduleOfIncomeBeforeIncomeTaxesDetails", "shortName": "Income Taxes (Schedule Of Income Before Income Taxes) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R64": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2410403 - Disclosure - Income Taxes (Schedule Of Provision (Benefit) For Income Taxes) (Details)", "role": "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails", "shortName": "Income Taxes (Schedule Of Provision (Benefit) For Income Taxes) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R65": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2410404 - Disclosure - Income Taxes (Schedule Of A Reconciliation Of The Statutory Rate To The Effective Income Tax Rate) (Details)", "role": "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails", "shortName": "Income Taxes (Schedule Of A Reconciliation Of The Statutory Rate To The Effective Income Tax Rate) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R66": { "firstAnchor": { "ancestors": [ "span", "span", "span", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "cybe:NeedForValuationAllowanceBasedOnHistoryOfCumulativeLosses", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2410405 - Disclosure - Income Taxes (Narrative) (Details)", "role": "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails", "shortName": "Income Taxes (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "span", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "cybe:NeedForValuationAllowanceBasedOnHistoryOfCumulativeLosses", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R67": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20201231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:UnrecognizedTaxBenefits", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2410406 - Disclosure - Income Taxes (Summary Of A Reconciliation Of The Beginning And Ending Amount Of Gross Unrecognized Tax Benefits (\"UTB\")) (Details)", "role": "http://cyberoptics.com/role/IncomeTaxesSummaryOfReconciliationOfBeginningAndEndingAmountOfGrossUnrecognizedTaxBenefitsUtbDetails", "shortName": "Income Taxes (Summary Of A Reconciliation Of The Beginning And Ending Amount Of Gross Unrecognized Tax Benefits (\"UTB\")) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20191231", "decimals": "-3", "lang": null, "name": "us-gaap:UnrecognizedTaxBenefits", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R68": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "cybe:DeferredTaxAssetsFixedAssetAndIntangibleAmortizationNet", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2410407 - Disclosure - Income Taxes (Schedule Of Deferred Tax Assets And Liabilities) (Details)", "role": "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails", "shortName": "Income Taxes (Schedule Of Deferred Tax Assets And Liabilities) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "cybe:DeferredTaxAssetsFixedAssetAndIntangibleAmortizationNet", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R69": { "firstAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:LeasesOfLesseeDisclosureTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2411400 - Disclosure - Operating Leases (Narrative) (Details)", "role": "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails", "shortName": "Operating Leases (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:LeasesOfLesseeDisclosureTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20191231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "1005000 - Statement - Consolidated Statements Of Stockholders' Equity", "role": "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity", "shortName": "Consolidated Statements Of Stockholders' Equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20191231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R70": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:LeaseCostTableTextBlock", "div", "us-gaap:LeasesOfLesseeDisclosureTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseCost", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2411401 - Disclosure - Operating Leases (Schedule of components of our costs for operating leases) (Details)", "role": "http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails", "shortName": "Operating Leases (Schedule of components of our costs for operating leases) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "us-gaap:LeaseCostTableTextBlock", "div", "us-gaap:LeasesOfLesseeDisclosureTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseCost", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R71": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "ix:continuation", "div", "us-gaap:LeasesOfLesseeDisclosureTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeasesFutureMinimumPaymentsNextRollingTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2411402 - Disclosure - Operating Leases (Schedule of the future maturities of lease liabilities) (Details)", "role": "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails", "shortName": "Operating Leases (Schedule of the future maturities of lease liabilities) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "ix:continuation", "div", "us-gaap:LeasesOfLesseeDisclosureTextBlock", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeasesFutureMinimumPaymentsNextRollingTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R72": { "firstAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231_RetirementSavingsPlanSection401KMember", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2412401 - Disclosure - 401(K) and Other Defined Contribution Plans (Details)", "role": "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlansDetails", "shortName": "401(K) and Other Defined Contribution Plans (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231_RetirementSavingsPlanSection401KMember", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R73": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2413402 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Summary Of Revenue By Product Line) (Details)", "role": "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails", "shortName": "Revenue Concentrations, Significant Customers, and Geographic Areas (Summary Of Revenue By Product Line) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:ScheduleOfProductInformationTableTextBlock", "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231_HighPrecision3DAnd2DSensorsMember", "decimals": "-3", "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R74": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2413404 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Narrative) (Details)", "role": "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails", "shortName": "Revenue Concentrations, Significant Customers, and Geographic Areas (Narrative) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "span", "p", "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231_MrsBasedSensorsMember", "decimals": "-5", "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R75": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2413405 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Revenue By Geographic Area) (Details)", "role": "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails", "shortName": "Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Revenue By Geographic Area) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "div", "div", "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock", "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231_US", "decimals": "-3", "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R76": { "firstAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "ix:continuation", "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NoncurrentAssets", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2413406 - Disclosure - Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Long-lived Assets Attributable To Each Geographic Area's Operations) (Details)", "role": "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails", "shortName": "Revenue Concentrations, Significant Customers, and Geographic Areas (Schedule Of Long-lived Assets Attributable To Each Geographic Area's Operations) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "p", "td", "tr", "tbody", "table", "ix:continuation", "us-gaap:ConcentrationRiskDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "I20211231", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NoncurrentAssets", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2101100 - Disclosure - Business Description And Significant Accounting Policies", "role": "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPolicies", "shortName": "Business Description And Significant Accounting Policies", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:UnusualOrInfrequentItemsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "2102100 - Disclosure - Covid-19 pandemic", "role": "http://cyberoptics.com/role/Covid19pandemic", "shortName": "Covid-19 pandemic", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cybe-20211231.htm", "contextRef": "D20211231", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:UnusualOrInfrequentItemsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 65, "tag": { "country_CN": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CHINA", "terseLabel": "China [Member]" } } }, "localname": "CN", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "country_JP": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "JAPAN", "terseLabel": "Japan [Member]" } } }, "localname": "JP", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "country_KR": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "KOREA, REPUBLIC OF", "terseLabel": "South Korea [Member]" } } }, "localname": "KR", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "country_NL": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "NETHERLANDS", "terseLabel": "Netherlands [Member]" } } }, "localname": "NL", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "country_SG": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "SINGAPORE", "terseLabel": "SINGAPORE", "verboseLabel": "Singapore [Member]" } } }, "localname": "SG", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails", "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "country_US": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "UNITED STATES", "terseLabel": "United States [Member]" } } }, "localname": "US", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "cybe_AccountsReceivableAllowanceForDoubtfulAccountsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Allowance established for amounts due that are unlikely to be received.", "label": "Accounts Receivable Allowance for Doubtful Accounts [Member]", "terseLabel": "Allowance for doubtful accounts" } } }, "localname": "AccountsReceivableAllowanceForDoubtfulAccountsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "domainItemType" }, "cybe_AccumulatedAmortizationInventories": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated amortization for demonstration inventories.", "label": "Accumulated Amortization Inventories", "terseLabel": "Accumulated amortization for demonstration inventories" } } }, "localname": "AccumulatedAmortizationInventories", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_AmortizationExpenseRelatedToDemonstrationInventories": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of amortization expense on defective merchandise arising from demonstration inventories.", "label": "Amortization Expense Related to Demonstration Inventories", "terseLabel": "Amortization expense related to demonstration inventories" } } }, "localname": "AmortizationExpenseRelatedToDemonstrationInventories", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_AmortizationOfDeferredRevenue": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of amortization of deferred revenue during the period.", "label": "Amortization of Deferred Revenue", "negatedLabel": "Amortization of deferred revenue" } } }, "localname": "AmortizationOfDeferredRevenue", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails" ], "xbrltype": "monetaryItemType" }, "cybe_AmortizationPeriodOfIncrementalCostsOfObtainingContract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Amortization period of incremental costs of obtaining a contract, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Amortization Period of Incremental Costs of Obtaining Contract", "terseLabel": "Amortization period of incremental costs of obtaining a contract" } } }, "localname": "AmortizationPeriodOfIncrementalCostsOfObtainingContract", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "durationItemType" }, "cybe_AsiaAndOtherMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Asia And Other [Member]", "label": "Asia And Other [Member]", "terseLabel": "Asia And Other [Member]" } } }, "localname": "AsiaAndOtherMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails" ], "xbrltype": "domainItemType" }, "cybe_AvailableForSaleSecuritiesNumberOfEquitySecurities": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Available-for-sale Securities, Number of Equity Securities", "label": "Available-For-Sale Securities, Number Of Equity Securities", "terseLabel": "Available-for-sale securities, number of equity securities", "verboseLabel": "Number of equity securities available-for-sale" } } }, "localname": "AvailableForSaleSecuritiesNumberOfEquitySecurities", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "integerItemType" }, "cybe_BenefitFromEliminatingPreviouslyRecordedDeferredTaxLiabilityForUndistributedEarnings": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of benefit from eliminating the previously recorded deferred tax liability for the undistributed earnings of the Singapore subsidiary.", "label": "Benefit from Eliminating Previously Recorded Deferred Tax Liability for Undistributed Earnings", "terseLabel": "Benefit from eliminating previously recorded deferred tax liability for undistributed earnings" } } }, "localname": "BenefitFromEliminatingPreviouslyRecordedDeferredTaxLiabilityForUndistributedEarnings", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_BloomingtonMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Bloomington [Member]", "label": "Bloomington [Member]", "terseLabel": "Bloomington [Member]" } } }, "localname": "BloomingtonMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_BusinessDescriptionAndSignificantAccountingPoliciesLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business Description And Significant Accounting Policies [Line Items]", "label": "Business Description And Significant Accounting Policies [Line Items]", "terseLabel": "Business Description And Significant Accounting Policies [Line Items]" } } }, "localname": "BusinessDescriptionAndSignificantAccountingPoliciesLineItems", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "stringItemType" }, "cybe_BusinessDescriptionAndSignificantAccountingPoliciesTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Business Description And Significant Accounting Policies [Table]", "label": "Business Description And Significant Accounting Policies [Table]", "terseLabel": "Business Description And Significant Accounting Policies [Table]" } } }, "localname": "BusinessDescriptionAndSignificantAccountingPoliciesTable", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "stringItemType" }, "cybe_CashHeldInForeignAccounts": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Cash Held In Foreign Accounts", "label": "Cash Held In Foreign Accounts", "terseLabel": "Cash held in foreign accounts" } } }, "localname": "CashHeldInForeignAccounts", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "monetaryItemType" }, "cybe_ChangeInAccountingForEmployeeShareBasedPaymentForfeituresMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to change in accounting for employee share-based payment forfeitures.", "label": "Change In Accounting For Employee Share Based Payment Forfeitures [Member]", "terseLabel": "Change in accounting for employee share-based payment forfeitures [Member]" } } }, "localname": "ChangeInAccountingForEmployeeShareBasedPaymentForfeituresMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_ChangeInAccountingForStockOptionForfeituresMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to change in accounting for stock option forfeitures.", "label": "Change in Accounting for Stock Option Forfeitures [Member]", "terseLabel": "Change in accounting for stock option forfeitures [Member]" } } }, "localname": "ChangeInAccountingForStockOptionForfeituresMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "domainItemType" }, "cybe_ContractWithCustomerLiabilityAndDeferredRevenueRevenueRecognized": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/RevenueRecognitionSummaryoftheamountsreclassifiedfrombeginningcontractliabilitiestorevenueDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amounts reclassified from beginning contract liabilities and deferred warranty revenue to revenue.", "label": "Contract with Customer Liability and Deferred Revenue Revenue Recognized", "totalLabel": "Total" } } }, "localname": "ContractWithCustomerLiabilityAndDeferredRevenueRevenueRecognized", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryoftheamountsreclassifiedfrombeginningcontractliabilitiestorevenueDetails" ], "xbrltype": "monetaryItemType" }, "cybe_ContractWithCustomerLiabilityDeferredWarrantyRevenue": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, attributable to deferred warranty revenue.", "label": "Contract with Customer Liability Deferred Warranty Revenue", "terseLabel": "Contract liabilities - deferred warranty revenue" } } }, "localname": "ContractWithCustomerLiabilityDeferredWarrantyRevenue", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfContractAssetsAndContractLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cybe_CorporateDebtSecuritiesAndCertificatesOfDepositMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Corporate Debt Securities And Certificates Of Deposit [Member]", "label": "Corporate Debt Securities And Certificates Of Deposit [Member]", "terseLabel": "Corporate Debt Securities And Certificates Of Deposit [Member]" } } }, "localname": "CorporateDebtSecuritiesAndCertificatesOfDepositMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails", "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesClassifiedAsCashEquivalentsDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "domainItemType" }, "cybe_CustomerFourMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer Four [Member].", "label": "Customer Four [Member]", "terseLabel": "Significant Customer D [Member]" } } }, "localname": "CustomerFourMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_CustomerOneMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer One [Member].", "label": "Customer One [Member]", "terseLabel": "Significant Customer A [Member]" } } }, "localname": "CustomerOneMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_CustomerThreeMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer Three [Member].", "label": "Customer Three [Member]", "terseLabel": "Significant Customer C [Member]" } } }, "localname": "CustomerThreeMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_CustomerTwoMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Customer Two [Member].", "label": "Customer Two [Member]", "terseLabel": "Significant Customer B [Member]" } } }, "localname": "CustomerTwoMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_DebtSecuritiesUnrealizedGainPositionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Debt Securities Unrealized Gain Position [Member]", "label": "Debt Securities Unrealized Gain Position [Member]", "terseLabel": "Debt Securities Unrealized Gain Position [Member]" } } }, "localname": "DebtSecuritiesUnrealizedGainPositionMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_DebtSecuritiesUnrealizedLossPositionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Debt Securities Unrealized Loss Position [Member]", "label": "Debt Securities Unrealized Loss Position [Member]", "terseLabel": "Debt Securities Unrealized Loss Position [Member]" } } }, "localname": "DebtSecuritiesUnrealizedLossPositionMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_DeferredTaxAssetsFederalAndStateTaxCredits": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Deferred Tax Assets, Federal And State Tax Credits", "label": "Deferred Tax Assets, Federal And State Tax Credits", "terseLabel": "Federal and state tax credits" } } }, "localname": "DeferredTaxAssetsFederalAndStateTaxCredits", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cybe_DeferredTaxAssetsFixedAssetAndIntangibleAmortizationNet": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Deferred Tax Assets, Fixed Asset And Intangible Amortization, Net", "label": "Deferred Tax Assets, Fixed Asset And Intangible Amortization, Net", "terseLabel": "Equipment, leaseholds and intangible amortization, net" } } }, "localname": "DeferredTaxAssetsFixedAssetAndIntangibleAmortizationNet", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cybe_DeferredTaxAssetsOperatingLeaseLiabilities": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 12.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from operating lease liabilities.", "label": "Deferred Tax Assets Operating Lease Liabilities", "terseLabel": "Operating lease liabilities" } } }, "localname": "DeferredTaxAssetsOperatingLeaseLiabilities", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cybe_DeferredTaxLiabilitiesFixedAssetAndIntangibleAmortizationNet": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Deferred Tax Liabilities, Fixed Asset And Intangible Amortization, Net.", "label": "Deferred Tax Liabilities, Fixed Asset And Intangible Amortization, Net", "terseLabel": "Equipment, leaseholds and intangible amortization, net" } } }, "localname": "DeferredTaxLiabilitiesFixedAssetAndIntangibleAmortizationNet", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cybe_DeferredTaxLiabilitiesRightOfUseAssets": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 5.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax consequences attributable to taxable temporary differences derived from Right-of-use assets.", "label": "Deferred Tax Liabilities Right of Use Assets", "terseLabel": "Right-of-use assets (operating leases)" } } }, "localname": "DeferredTaxLiabilitiesRightOfUseAssets", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cybe_DefinedContributionRetirementSavingsPlansMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to defined contribution retirement savings plans in the United Kingdom.", "label": "Defined Contribution Retirement Savings Plans [Member]", "terseLabel": "Defined contribution retirement savings plans in the United Kingdom [Member]" } } }, "localname": "DefinedContributionRetirementSavingsPlansMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlansDetails" ], "xbrltype": "domainItemType" }, "cybe_DemonstrationInventoriesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Demonstration Inventories [Member]", "label": "Demonstration Inventories [Member]", "terseLabel": "Demonstration Inventories [Member]" } } }, "localname": "DemonstrationInventoriesMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "domainItemType" }, "cybe_DemonstrationInventoryUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Demonstration Inventory Useful Life", "label": "Demonstration Inventory Useful Life", "terseLabel": "Demonstration inventory useful life (in months)" } } }, "localname": "DemonstrationInventoryUsefulLife", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "durationItemType" }, "cybe_DocumentAndEntityInformationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Document and Entity Information [Abstract]", "label": "Document And Entity Information [Abstract]" } } }, "localname": "DocumentAndEntityInformationAbstract", "nsuri": "http://cyberoptics.com/20211231", "xbrltype": "stringItemType" }, "cybe_EarningsPerShareDilutiveAdjustment": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails": { "order": 1.0, "parentTag": "us-gaap_EarningsPerShareDiluted", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Earnings Per Share Dilutive Adjustment", "label": "Earnings Per Share Dilutive Adjustment", "terseLabel": "Per Share Amount, Dilutive effect of common equivalent shares (in usd per share)" } } }, "localname": "EarningsPerShareDilutiveAdjustment", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails" ], "xbrltype": "perShareItemType" }, "cybe_EffectiveIncomeTaxRateReconciliatioOfCorporateIncomeTaxRateWriteDownOfDeferredTaxAssets": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Effective Income Tax Rate Reconciliatio of Corporate Income Tax Rate Write Down of Deferred Tax Assets", "terseLabel": "Percentage of change in corporate income tax rate due to write-down of deferred tax assets" } } }, "localname": "EffectiveIncomeTaxRateReconciliatioOfCorporateIncomeTaxRateWriteDownOfDeferredTaxAssets", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "percentItemType" }, "cybe_EffectiveIncomeTaxRateReconciliationEarningAndDividendsOfForeignAffiliatePercent": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 4.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Effective Income Tax Rate Reconciliation, Earning and Dividends of Foreign Affiliate, Percent", "label": "Effective Income Tax Rate Reconciliation, Earning and Dividends of Foreign Affiliate, Percent", "terseLabel": "Earnings and dividends of foreign affiliate (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationEarningAndDividendsOfForeignAffiliatePercent", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "cybe_EffectiveIncomeTaxRateReconciliationEarningAndDividendsOfForeignCorporationsPercent": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of effective income tax rate reconciliation, earning and dividends of foreign corporations.", "label": "Effective Income Tax Rate Reconciliation Earning and Dividends of Foreign Corporations Percent", "terseLabel": "Earnings and dividends of foreign corporations (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationEarningAndDividendsOfForeignCorporationsPercent", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "percentItemType" }, "cybe_EffectiveIncomeTaxRateReconciliationExpiringAndUnrecognizedDeferredTaxAttributes": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 12.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to expiring and unrecognized deferred tax attributes.", "label": "Effective Income Tax Rate Reconciliation Expiring and Unrecognized Deferred Tax Attributes", "terseLabel": "Expiring and unrecognized deferred tax attributes (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationExpiringAndUnrecognizedDeferredTaxAttributes", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "cybe_EffectiveIncomeTaxRateReconciliationGlobalIntangibleLowTaxIncome": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 3.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to Global Intangible Low Tax Income.", "label": "Effective Income Tax Rate Reconciliation Global Intangible Low Tax Income", "terseLabel": "Global Intangible Low-Taxed Income (GILTI)/Foreign Derived Intangible Income (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationGlobalIntangibleLowTaxIncome", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "cybe_EffectiveIncomeTaxRateReconciliationSingaporeJobsSupportProgram": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 9.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to singapore jobs support program.", "label": "Effective Income Tax Rate Reconciliation Singapore Jobs Support Program", "terseLabel": "Singapore jobs support program" } } }, "localname": "EffectiveIncomeTaxRateReconciliationSingaporeJobsSupportProgram", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "cybe_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefit": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 10.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to unrecognized tax benefit.", "label": "Effective Income Tax Rate Reconciliation Unrecognized Tax Benefit", "terseLabel": "Unrecognized tax benefit (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefit", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "cybe_EffectiveIncomeTaxRateReconciliationUsSubpartFIncome": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 2.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Effective Income Tax Rate Reconciliation US Subpart F Income", "label": "Effective Income Tax Rate Reconciliation US Subpart F Income", "terseLabel": "U.S. Subpart F income (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationUsSubpartFIncome", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "cybe_ForeignEarningsRepatriatedAmountPreviouslyTaxed": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Foreign Earnings Repatriated Amount Previously Taxed", "label": "Foreign Earnings Repatriated Amount Previously Taxed", "terseLabel": "Amount of foreign earnings repatriated previously taxed" } } }, "localname": "ForeignEarningsRepatriatedAmountPreviouslyTaxed", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_GoldenValleyMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Golden Valley [Member]", "label": "Golden Valley [Member]", "terseLabel": "Golden Valley [Member]" } } }, "localname": "GoldenValleyMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_HighPrecision3DAnd2DSensorsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "High Precision 3D and 2D Sensors [Member].", "label": "High Precision 3D and 2D Sensors [Member]", "terseLabel": "High Precision 3D and 2D Sensors [Member]" } } }, "localname": "HighPrecision3DAnd2DSensorsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "domainItemType" }, "cybe_IncomeTaxLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Income Tax [Line Items]", "label": "Income Tax [Line Items]", "terseLabel": "Income Tax [Line Items]" } } }, "localname": "IncomeTaxLineItems", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "stringItemType" }, "cybe_IncomeTaxTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Income Tax [Table]", "label": "Income Tax [Table]", "terseLabel": "Income Tax [Table]" } } }, "localname": "IncomeTaxTable", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "stringItemType" }, "cybe_IncreaseInOperatingLeaseLiabilitiesForRightOfUseAssets": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in operating lease liabilities for right of use assets.", "label": "Increase in Operating Lease Liabilities for Right of Use Assets", "terseLabel": "Increase in operating lease liabilities for right of use assets" } } }, "localname": "IncreaseInOperatingLeaseLiabilitiesForRightOfUseAssets", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_InspectionAndMetrologySystemsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Inspection and Metrology Systems [Member].", "label": "Inspection and Metrology Systems [Member]", "terseLabel": "Inspection and Metrology Systems [Member]" } } }, "localname": "InspectionAndMetrologySystemsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "domainItemType" }, "cybe_InspectionSystemsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to inspection systems.", "label": "Inspection systems [Member]", "terseLabel": "Inspection systems [Member]" } } }, "localname": "InspectionSystemsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "domainItemType" }, "cybe_InterestPortionOfOperatingLeases": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails": { "order": 1.0, "parentTag": "cybe_PresentValueOfOperatingLeasesFutureMinimumPayments", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount necessary to reduce minimum lease payments to present value for operating leases.", "label": "Interest Portion of Operating Leases", "terseLabel": "Less: amount representing interest" } } }, "localname": "InterestPortionOfOperatingLeases", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cybe_JobsSupportProgramMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to jobs support program that is intended to support businesses and encourage retention of employees during the period of economic uncertainty caused by the Covid-19 pandemic.", "label": "Jobs Support Program [Member]", "terseLabel": "Jobs Support Program [Member]" } } }, "localname": "JobsSupportProgramMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_KeyTronicCorporationMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Key Tronic Corporation [Member]", "label": "Key Tronic Corporation [Member]", "terseLabel": "Key Tronic Corporation [Member]" } } }, "localname": "KeyTronicCorporationMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "domainItemType" }, "cybe_MarketableSecuritiesClassifiedAsCashEquivalentsCost": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Marketable Securities Classified As Cash Equivalents, Cost", "label": "Marketable Securities Classified As Cash Equivalents, Cost", "terseLabel": "Cost", "verboseLabel": "Marketable securities classified as cash equivalents" } } }, "localname": "MarketableSecuritiesClassifiedAsCashEquivalentsCost", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_MarketableSecuritiesClassifiedAsCashEquivalentsRecordedBasis": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Marketable Securities Classified As Cash Equivalents, Recorded Basis", "label": "Marketable Securities Classified As Cash Equivalents, Recorded Basis", "terseLabel": "Marketable securities classified as cash equivalents, recorded basis", "totalLabel": "Recorded Basis" } } }, "localname": "MarketableSecuritiesClassifiedAsCashEquivalentsRecordedBasis", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_MarketableSecuritiesClassifiedAsCashEquivalentsUnrealizedGains": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Marketable Securities Classified As Cash Equivalents, Unrealized Gains", "label": "Marketable Securities Classified As Cash Equivalents, Unrealized Gains", "terseLabel": "Unrealized Gains" } } }, "localname": "MarketableSecuritiesClassifiedAsCashEquivalentsUnrealizedGains", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesClassifiedAsCashEquivalentsDetails" ], "xbrltype": "monetaryItemType" }, "cybe_MarketableSecuritiesClassifiedAsCashEquivalentsUnrealizedLosses": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Marketable Securities Classified As Cash Equivalents, Unrealized Losses", "label": "Marketable Securities Classified As Cash Equivalents, Unrealized Losses", "terseLabel": "Unrealized Losses" } } }, "localname": "MarketableSecuritiesClassifiedAsCashEquivalentsUnrealizedLosses", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesClassifiedAsCashEquivalentsDetails" ], "xbrltype": "monetaryItemType" }, "cybe_MaximumContributionPerPlanYear": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Maximum Contribution Per Plan Year", "label": "Maximum Contribution Per Plan Year", "terseLabel": "Maximum contribution per plan year" } } }, "localname": "MaximumContributionPerPlanYear", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_MaximumMaturityOfDebtSecurities": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Maximum Maturity Of Debt Securities", "label": "Maximum Maturity Of Debt Securities", "terseLabel": "Maximum maturity of debt securities (less than 5 years)" } } }, "localname": "MaximumMaturityOfDebtSecurities", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "durationItemType" }, "cybe_MaximumPeriodInWhichAccountsReceivableBecomeDue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the maximum period in which account receivable become due under normal trade terms.", "label": "Maximum Period in Which Accounts Receivable Become Due", "terseLabel": "Maximum period in which accounts receivable become due" } } }, "localname": "MaximumPeriodInWhichAccountsReceivableBecomeDue", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "durationItemType" }, "cybe_MaximumTimeForLossPosition": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Maximum Time For Loss Position", "label": "Maximum Time For Loss Position", "terseLabel": "Maximum time for loss position (in months)" } } }, "localname": "MaximumTimeForLossPosition", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "durationItemType" }, "cybe_MetrologyProductsAndServicesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Metrology Products and Services [Member].", "label": "Metrology Products and Services [Member]", "terseLabel": "Metrology Products and Services [Member]" } } }, "localname": "MetrologyProductsAndServicesMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "domainItemType" }, "cybe_MinimumOwnershipPercentageInForeignCorporationsForForeignSourceDividendsDeduction": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the minimum ownership percentage in foreign corporations for foreign-source dividends deduction.", "label": "Minimum Ownership Percentage in Foreign Corporations for Foreign Source Dividends Deduction", "terseLabel": "Minimum ownership percentage in foreign corporations for foreign-source dividends deduction" } } }, "localname": "MinimumOwnershipPercentageInForeignCorporationsForForeignSourceDividendsDeduction", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "percentItemType" }, "cybe_MrsBasedSensorsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the information pertaining to MRS based sensors.", "label": "Mrs Based Sensors [Member]", "terseLabel": "MRS based sensors [Member]" } } }, "localname": "MrsBasedSensorsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_MrsBasedSystemsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the information partaining to MRS based systems.", "label": "Mrs Based Systems [Member]", "terseLabel": "MRS based systems [Member]" } } }, "localname": "MrsBasedSystemsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_NeedForValuationAllowanceBasedOnHistoryOfCumulativeLosses": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Need For Valuation Allowance Based On History Of Cumulative Losses", "label": "Need For Valuation Allowance Based On History Of Cumulative Losses", "terseLabel": "Need for valuation allowance based on history of cumulative losses" } } }, "localname": "NeedForValuationAllowanceBasedOnHistoryOfCumulativeLosses", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "durationItemType" }, "cybe_NewNonEmployeeDirectorStockPlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "New Non-Employee Director Stock Plan [Member]", "label": "New Non-Employee Director Stock Plan [Member]", "terseLabel": "New Non-Employee Director Stock Plan [Member]" } } }, "localname": "NewNonEmployeeDirectorStockPlanMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_NonEmployeeDirectorStockPlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Non Employee Director Stock Plan [Member].", "label": "Non Employee Director Stock Plan [Member]", "terseLabel": "Non Employee Director Stock Plan [Member]" } } }, "localname": "NonEmployeeDirectorStockPlanMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_NumberOfCustomers": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of customers.", "label": "Number of Customers", "terseLabel": "Number of customers" } } }, "localname": "NumberOfCustomers", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "integerItemType" }, "cybe_NumberOfQuarterlyInstallmentsInWhichAwardsWillVest": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of quarterly installments in which awards will vest.", "label": "Number of Quarterly Installments In Which Awards Will Vest", "terseLabel": "Number of quarterly installments in which awards will vest" } } }, "localname": "NumberOfQuarterlyInstallmentsInWhichAwardsWillVest", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "integerItemType" }, "cybe_NumberOfSharesGrantedForNonEmployeeDirectorsUponReElection": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number Of Shares Granted For Non-Employee Directors Upon Re-Election", "label": "Number Of Shares Granted For Non-Employee Directors Upon Re-Election", "terseLabel": "Number of shares granted for non-employee directors upon re-election, shares" } } }, "localname": "NumberOfSharesGrantedForNonEmployeeDirectorsUponReElection", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "cybe_NumberOfStockBasedCompensationPlans": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of Stock-Based Compensation Plans", "label": "Number Of Stock-Based Compensation Plans", "terseLabel": "Number of stock-based compensation plans" } } }, "localname": "NumberOfStockBasedCompensationPlans", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "integerItemType" }, "cybe_OemAlignmentSensorsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "OEM Alignment Sensors [Member]", "label": "Oem Alignment Sensors [Member]", "terseLabel": "High Precision 3D and 2D Sensors [Member]" } } }, "localname": "OemAlignmentSensorsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "domainItemType" }, "cybe_OrderBacklogYetToBeRecognizedAsRevenue": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of order backlog not yet recognized as revenue.", "label": "Order Backlog Yet to be Recognized as Revenue", "terseLabel": "Order backlog not yet recognized" } } }, "localname": "OrderBacklogYetToBeRecognizedAsRevenue", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_OtherAsiaMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Other Asia [Member]", "label": "Other Asia [Member]", "terseLabel": "Other Asia [Member]" } } }, "localname": "OtherAsiaMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "cybe_OtherEuropeMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Other Europe [Member]", "label": "Other Europe [Member]", "terseLabel": "Other Europe [Member]" } } }, "localname": "OtherEuropeMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "cybe_OtherFinancialStatementDataAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Other Financial Statement Data [Abstract]", "label": "OTHER FINANCIAL STATEMENT DATA [Abstract]" } } }, "localname": "OtherFinancialStatementDataAbstract", "nsuri": "http://cyberoptics.com/20211231", "xbrltype": "stringItemType" }, "cybe_OtherGeographicLocationMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Other Geographic Location [Member]", "label": "Other Geographic Location [Member]", "terseLabel": "Other [Member]" } } }, "localname": "OtherGeographicLocationMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "cybe_PatentsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Patents Policy [Policy Text Block]", "label": "Patents Policy [Policy Text Block]", "terseLabel": "Patents" } } }, "localname": "PatentsPolicyPolicyTextBlock", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "cybe_PayrollDeductionForEmployeeStockPurchasePlanPercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Payroll Deduction For Employee Stock Purchase Plan Percentage", "label": "Payroll Deduction For Employee Stock Purchase Plan Percentage", "terseLabel": "Payroll deduction for employee stock purchase plan percentage" } } }, "localname": "PayrollDeductionForEmployeeStockPurchasePlanPercentage", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "percentItemType" }, "cybe_PercentageOfDividendsReceivedDeductionForForeignSourceDividendsReceivedFrom10PercentOrMoreOwnedForeignCorporations": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The percentage of dividends-received-deduction for foreign-source dividends received from 10%-or-more owned foreign corporations.", "label": "Percentage of Dividends Received Deduction for Foreign Source Dividends Received from 10 Percent or More Owned Foreign Corporations", "terseLabel": "Percentage of dividends-received-deduction for foreign-source dividends received from 10%-or-more owned foreign corporations" } } }, "localname": "PercentageOfDividendsReceivedDeductionForForeignSourceDividendsReceivedFrom10PercentOrMoreOwnedForeignCorporations", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "percentItemType" }, "cybe_PercentageOfRevenuePerformanceObligations": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of the revenue performance obligations.", "label": "Percentage of Revenue Performance Obligations", "terseLabel": "Percent of Revenues" } } }, "localname": "PercentageOfRevenuePerformanceObligations", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails" ], "xbrltype": "percentItemType" }, "cybe_PeriodBetweenWhenEntityTransferPromisedGoodOrServiceToCustomerAndWhenCustomerPaysForThatGoodOrService": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Period between when entity transfer a promised good or service to a customer and when the customer pays for that good or service, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Period Between When Entity Transfer Promised Good or Service to Customer and When Customer Pays for That Good or Service", "terseLabel": "Period between when entity transfer a promised good or service to a customer and when the customer pays for that good or service" } } }, "localname": "PeriodBetweenWhenEntityTransferPromisedGoodOrServiceToCustomerAndWhenCustomerPaysForThatGoodOrService", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "durationItemType" }, "cybe_PeriodForValueOfUnsatisfiedPerformanceObligationsWhichNotDisclosed": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents period for the value of unsatisfied performance obligations which are not disclosed.", "label": "Period for Value of Unsatisfied Performance Obligations Which Not Disclosed", "terseLabel": "Period for the value of unsatisfied performance obligations which are not disclosed" } } }, "localname": "PeriodForValueOfUnsatisfiedPerformanceObligationsWhichNotDisclosed", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "durationItemType" }, "cybe_PresentValueOfOperatingLeasesFutureMinimumPayments": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of minimum lease payments for operating leases.", "label": "Present Value of Operating Leases Future Minimum Payments", "totalLabel": "Present value of operating lease liabilities" } } }, "localname": "PresentValueOfOperatingLeasesFutureMinimumPayments", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cybe_ProductWarrantiesTimeFrame": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Product Warranties Time Frame.", "label": "Product Warranties Time Frame", "terseLabel": "Warranty period" } } }, "localname": "ProductWarrantiesTimeFrame", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "durationItemType" }, "cybe_ProductWarrantyPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Product Warranty, Period", "label": "Product Warranty, Period", "terseLabel": "Warranty period (in years)" } } }, "localname": "ProductWarrantyPeriod", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "durationItemType" }, "cybe_ProgramAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Program [Axis]" } } }, "localname": "ProgramAxis", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "stringItemType" }, "cybe_ProgramDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Program [Domain]" } } }, "localname": "ProgramDomain", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_ReceivableFromLessor": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of receivable from lessor.", "label": "Receivable from Lessor", "terseLabel": "Receivable from lessor" } } }, "localname": "ReceivableFromLessor", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "monetaryItemType" }, "cybe_RecognitionOfDeferredTaxAssetsForPreviouslyUnrecognizedExcessTaxBenefitsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to recognition of the deferred tax assets for previously unrecognized excess tax benefits.", "label": "Recognition of Deferred Tax Assets for Previously Unrecognized Excess Tax Benefits [Member]", "terseLabel": "Recognition of the deferred tax assets for previously unrecognized excess tax benefits [Member]" } } }, "localname": "RecognitionOfDeferredTaxAssetsForPreviouslyUnrecognizedExcessTaxBenefitsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "domainItemType" }, "cybe_RelatedPartyTransactionsPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for related party transactions.", "label": "Related Party Transactions [Policy Text Block]", "terseLabel": "Related Party Transactions" } } }, "localname": "RelatedPartyTransactionsPolicyTextBlock", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "cybe_RenewalOptionsNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Renewal Options, Number", "label": "Renewal Options, Number", "terseLabel": "Renewal options, number" } } }, "localname": "RenewalOptionsNumber", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "integerItemType" }, "cybe_RestrictedSharesAndRestrictedStockUnitsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to restricted shares and restricted stock units.", "label": "Restricted Shares and Restricted Stock Units [Member]", "terseLabel": "Restricted Shares and Restricted Stock Units [Member]" } } }, "localname": "RestrictedSharesAndRestrictedStockUnitsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_RestrictedStockUnitsToCommonStockRatio": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Restricted Stock Units to Common Stock Ratio", "label": "Restricted Stock Units to Common Stock Ratio", "terseLabel": "Restricted stock units to common stock ratio, shares entitled, shares" } } }, "localname": "RestrictedStockUnitsToCommonStockRatio", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "cybe_RetirementSavingsPlanSection401KMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to retirement savings plan pursuant to Section 401(k) of the Internal Revenue Code (the Code).", "label": "Retirement Savings Plan Section 401k [Member]", "terseLabel": "Retirement savings plan pursuant to Section 401(k) [Member]" } } }, "localname": "RetirementSavingsPlanSection401KMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlansDetails" ], "xbrltype": "domainItemType" }, "cybe_ScheduleOfAmountsReclassifiedFromBeginningContractLiabilitiesToRevenueTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amounts reclassified from beginning contract liabilities to revenue.", "label": "Schedule of Amounts Reclassified from Beginning Contract Liabilities to Revenue [Table Text Block]", "terseLabel": "Summary of the amounts reclassified from beginning contract liabilities to revenue" } } }, "localname": "ScheduleOfAmountsReclassifiedFromBeginningContractLiabilitiesToRevenueTableTextBlock", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionTables" ], "xbrltype": "textBlockItemType" }, "cybe_ScheduleOfMarketableSecuritiesClassifiedAsCashEquivalentsTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule Of Marketable Securities Classified As Cash Equivalents [Table Text Block]", "label": "Schedule Of Marketable Securities Classified As Cash Equivalents [Table Text Block]", "terseLabel": "Schedule of Marketable Securities Classified As Cash Equivalents" } } }, "localname": "ScheduleOfMarketableSecuritiesClassifiedAsCashEquivalentsTableTextBlock", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesTables" ], "xbrltype": "textBlockItemType" }, "cybe_SemiconductorSensorsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Semiconductor Sensors [Member]", "label": "Semiconductor Sensors [Member]", "terseLabel": "Semiconductor Sensors [Member]" } } }, "localname": "SemiconductorSensorsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "domainItemType" }, "cybe_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share Based Compensation Arrangement By Share Based Payment Award Options Expired In Period Weighted Average Exercise Price", "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Expired In Period Weighted Average Exercise Price", "terseLabel": "Weighted-Average Exercise Price Per Share, Expired (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpiredInPeriodWeightedAverageExercisePrice", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "cybe_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedToNonEmployeeDirectorsUponReElection": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Options, Granted To Non-Employee Directors Upon Re-election", "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Options, Granted To Non-Employee Directors Upon Re-election", "terseLabel": "Options granted to non-employee directors upon re-election" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedToNonEmployeeDirectorsUponReElection", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "cybe_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedToNonEmployeeDirectorsUponReElectionPerDirector": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-Based Compensation Arrangement By Share-Based Payment Award, Options, Granted To Non-Employee Directors Upon Re-election, Per Director", "label": "Share-Based Compensation Arrangement By Share-Based Payment Award, Options, Granted To Non-Employee Directors Upon Re-election, Per Director", "terseLabel": "Number of shares granted for non-employee directors upon re-election, per director" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedToNonEmployeeDirectorsUponReElectionPerDirector", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "cybe_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodFairValue": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Fair Value", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Fair Value", "terseLabel": "Options granted in period, fair value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodFairValue", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_ShareRepurchaseTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Repurchase [Text Block]", "terseLabel": "SHARE REPURCHASES" } } }, "localname": "ShareRepurchaseTextBlock", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/ShareRepurchases" ], "xbrltype": "textBlockItemType" }, "cybe_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisedIntrinsicValue": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercised Intrinsic Value", "label": "Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercised Intrinsic Value", "terseLabel": "Aggregate intrinsic value of exercised stock options" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisedIntrinsicValue", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_StockGrantPlanForNonEmployeeDirectorsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Stock Grant Plan For Non-Employee Directors [Member]", "label": "Stock Grant Plan For Non Employee Directors [Member]", "terseLabel": "Stock Grant Plan For Non-Employee Directors [Member]" } } }, "localname": "StockGrantPlanForNonEmployeeDirectorsMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_StockIncentivePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Stock Incentive Plan [Member]", "label": "Stock Incentive Plan [Member]", "terseLabel": "Stock Incentive Plan [Member]" } } }, "localname": "StockIncentivePlanMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_StockIssuedDuringPeriodSharesStockOptionsExercisedAndVestingOfRestrictedUnitsNetOfSharesExchangedAsPayment": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Stock Issued During Period Shares Stock Options Exercised And Vesting Of Restricted Units, Net Of Shares Exchanged As Payment", "label": "Stock Issued During Period Shares Stock Options Exercised And Vesting Of Restricted Units, Net Of Shares Exchanged As Payment", "terseLabel": "Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment, shares" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercisedAndVestingOfRestrictedUnitsNetOfSharesExchangedAsPayment", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "cybe_StockIssuedDuringPeriodValueStockOptionsExercisedAndVestingOfRestrictedUnitsNetOfSharesExchangedAsPayment": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Stock Issued During Period Value Stock Options Exercised And Vesting Of Restricted Units, Net Of Shares Exchanged As Payment", "label": "Stock Issued During Period Value Stock Options Exercised And Vesting Of Restricted Units, Net Of Shares Exchanged As Payment", "terseLabel": "Exercise of stock options and vesting of restricted stock units, net of shares exchanged as payment" } } }, "localname": "StockIssuedDuringPeriodValueStockOptionsExercisedAndVestingOfRestrictedUnitsNetOfSharesExchangedAsPayment", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "cybe_StockOptionsAndRestrictedStockUnitsRsusMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Stock Options And Restricted Stock Units (RSUs) [Member]", "label": "Stock Options And Restricted Stock Units Rsus [Member]", "terseLabel": "Stock Options And Restricted Stock Units (RSUs) [Member]" } } }, "localname": "StockOptionsAndRestrictedStockUnitsRsusMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "cybe_StockRepurchaseProgramNumberOfSharesRepurchased": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of shares repurchased by an entity's Board of Directors under a stock repurchase plan.", "label": "Stock Repurchase Program, Number of Shares Repurchased", "terseLabel": "Stock Repurchase Program Number of Shares Repurchased" } } }, "localname": "StockRepurchaseProgramNumberOfSharesRepurchased", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/ShareRepurchasesNarrativeDetails" ], "xbrltype": "sharesItemType" }, "cybe_SummaryOfPreTaxEquityBasedCompensationExpenseTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Summary Of Pre-tax Equity Based Compensation Expense [Table Text Block]", "label": "Summary Of Pre-tax Equity Based Compensation Expense [Table Text Block]", "terseLabel": "Summary Of Pre-tax Equity Based Compensation Expense" } } }, "localname": "SummaryOfPreTaxEquityBasedCompensationExpenseTableTextBlock", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "cybe_TaxPaymentsRelatedToSharesWithHeldForShareBasedCompensationPlans": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the amount of tax payments related to shares withheld for share-based compensation plans.", "label": "Tax Payments Related to Shares with held for Share Based Compensation Plans", "terseLabel": "Tax payments related to shares withheld for share-based compensation plans" } } }, "localname": "TaxPaymentsRelatedToSharesWithHeldForShareBasedCompensationPlans", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "cybe_TaxPaymentsRelatedToSharesWithheldForShareBasedCompensationPlansShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares related to tax payments of shares withheld for share-based compensation plans.", "label": "Tax Payments Related to Shares Withheld for Share Based Compensation Plans Shares", "terseLabel": "Tax payments related to shares withheld for share-based compensation plans, shares" } } }, "localname": "TaxPaymentsRelatedToSharesWithheldForShareBasedCompensationPlansShares", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "cybe_ThreeDimensionalScanningSystemsAndServicesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Three Dimensional Scanning Systems and Services [Member]", "label": "Three Dimensional Scanning Systems and Services [Member]", "terseLabel": "3D Scanning Solutions and Services [Member]" } } }, "localname": "ThreeDimensionalScanningSystemsAndServicesMember", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "domainItemType" }, "cybe_TradeNotesReceivableInterestRateStatedPercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents an annual effective interest rate of trade notes receivable.", "label": "Trade Notes Receivable Interest Rate Stated Percentage", "terseLabel": "Trade notes receivable interest rate stated percentage" } } }, "localname": "TradeNotesReceivableInterestRateStatedPercentage", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "percentItemType" }, "cybe_TradeNotesReceivableRepaymentPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the repayment period of trade notes receivable.", "label": "Trade Notes Receivable Repayment Period", "terseLabel": "Trade notes receivable repayment period" } } }, "localname": "TradeNotesReceivableRepaymentPeriod", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "durationItemType" }, "cybe_UnrecognizedTaxBenefitsCurrent": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Current portion of the unrecognized tax benefits", "label": "Unrecognized Tax Benefits Current", "terseLabel": "Unrecognized tax benefits current" } } }, "localname": "UnrecognizedTaxBenefitsCurrent", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_UnrecognizedTaxBenefitsNet": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of net unrecognized tax benefits.", "label": "Unrecognized Tax Benefits, Net", "terseLabel": "Net UTB balance at end of year" } } }, "localname": "UnrecognizedTaxBenefitsNet", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesSummaryOfReconciliationOfBeginningAndEndingAmountOfGrossUnrecognizedTaxBenefitsUtbDetails" ], "xbrltype": "monetaryItemType" }, "cybe_UnrecognizedTaxBenefitsNetClassifiedAsCurrentLiability": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of net unrecognized tax benefits classsified as current liability.", "label": "Unrecognized Tax Benefits Net Classified as Current Liability", "terseLabel": "Net UTB classsified as current liability" } } }, "localname": "UnrecognizedTaxBenefitsNetClassifiedAsCurrentLiability", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "cybe_ValuationAllowanceChangeInAmountDueToNonUtilizationOfResearchAndDevelopmentTaxCredits": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in the valuation allowance due to non-utilization of research and development tax credits.", "label": "Valuation Allowance Change in Amount Due to Non Utilization of Research and Development Tax Credits", "terseLabel": "Valuation allowance change in amount due to non utilization of research and development tax credits" } } }, "localname": "ValuationAllowanceChangeInAmountDueToNonUtilizationOfResearchAndDevelopmentTaxCredits", "nsuri": "http://cyberoptics.com/20211231", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag", "terseLabel": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_AuditorFirmId": { "auth_ref": [ "r820", "r821", "r822" ], "lang": { "en-us": { "role": { "documentation": "PCAOB issued Audit Firm Identifier", "label": "Auditor Firm ID" } } }, "localname": "AuditorFirmId", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "nonemptySequenceNumberItemType" }, "dei_AuditorLocation": { "auth_ref": [ "r820", "r821", "r822" ], "lang": { "en-us": { "role": { "label": "Auditor Location" } } }, "localname": "AuditorLocation", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "internationalNameItemType" }, "dei_AuditorName": { "auth_ref": [ "r820", "r821", "r822" ], "lang": { "en-us": { "role": { "label": "Auditor Name" } } }, "localname": "AuditorName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "internationalNameItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area code of city", "label": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date", "terseLabel": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentAnnualReport": { "auth_ref": [ "r820", "r821", "r822" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as an annual report.", "label": "Document Annual Report" } } }, "localname": "DocumentAnnualReport", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.", "label": "Document Fiscal Period Focus", "terseLabel": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus", "terseLabel": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "gYearItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.", "label": "Document Period End Date", "terseLabel": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "dateItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r823" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as a transition report.", "label": "Document Transition Report" } } }, "localname": "DocumentTransitionReport", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type", "terseLabel": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address, State or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r817" ], "lang": { "en-us": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key", "terseLabel": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.", "label": "Entity Common Stock, Shares Outstanding", "terseLabel": "Entity Common Stock, Shares Outstanding" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status", "terseLabel": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r817" ], "lang": { "en-us": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.", "label": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r817" ], "lang": { "en-us": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category", "terseLabel": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r831" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).", "label": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityPublicFloat": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.", "label": "Entity Public Float", "terseLabel": "Entity Public Float" } } }, "localname": "EntityPublicFloat", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "monetaryItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r817" ], "lang": { "en-us": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name", "terseLabel": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r817" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r817" ], "lang": { "en-us": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r817" ], "lang": { "en-us": { "role": { "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.", "label": "Entity Tax Identification Number" } } }, "localname": "EntityTaxIdentificationNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "employerIdItemType" }, "dei_EntityVoluntaryFilers": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.", "label": "Entity Voluntary Filers", "terseLabel": "Entity Voluntary Filers" } } }, "localname": "EntityVoluntaryFilers", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityWellKnownSeasonedIssuer": { "auth_ref": [ "r832" ], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.", "label": "Entity Well-known Seasoned Issuer", "terseLabel": "Entity Well-known Seasoned Issuer" } } }, "localname": "EntityWellKnownSeasonedIssuer", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_IcfrAuditorAttestationFlag": { "auth_ref": [ "r820", "r821", "r822" ], "lang": { "en-us": { "role": { "label": "ICFR Auditor Attestation Flag" } } }, "localname": "IcfrAuditorAttestationFlag", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12gTitle": { "auth_ref": [ "r819" ], "lang": { "en-us": { "role": { "documentation": "Title of a 12(g) registered security.", "label": "Title of 12(g) Security" } } }, "localname": "Security12gTitle", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r818" ], "lang": { "en-us": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://cyberoptics.com/role/DocumentAndEntityInformation" ], "xbrltype": "tradingSymbolItemType" }, "srt_AffiliatedEntityMember": { "auth_ref": [ "r420", "r663", "r664", "r665", "r810" ], "lang": { "en-us": { "role": { "label": "Affiliated Entity [Member]", "terseLabel": "Affiliated Entity [Member]" } } }, "localname": "AffiliatedEntityMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "domainItemType" }, "srt_CounterpartyNameAxis": { "auth_ref": [ "r65", "r67", "r128", "r129", "r335", "r342" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Axis]", "terseLabel": "Counterparty Name [Axis]" } } }, "localname": "CounterpartyNameAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "stringItemType" }, "srt_EuropeMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Europe [Member]", "terseLabel": "Europe [Member]" } } }, "localname": "EuropeMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails" ], "xbrltype": "domainItemType" }, "srt_MajorCustomersAxis": { "auth_ref": [ "r218", "r358", "r364", "r763" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]", "terseLabel": "Customer [Axis]" } } }, "localname": "MajorCustomersAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "stringItemType" }, "srt_MaximumMember": { "auth_ref": [ "r334", "r341", "r440", "r446", "r675", "r676", "r677", "r678", "r679", "r680", "r699", "r760", "r764", "r812", "r813" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "terseLabel": "Maximum [Member]" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "domainItemType" }, "srt_MinimumMember": { "auth_ref": [ "r334", "r341", "r440", "r446", "r675", "r676", "r677", "r678", "r679", "r680", "r699", "r760", "r764", "r812", "r813" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "terseLabel": "Minimum [Member]" } } }, "localname": "MinimumMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "domainItemType" }, "srt_NameOfMajorCustomerDomain": { "auth_ref": [ "r218", "r358", "r364", "r763" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]", "terseLabel": "Name of Major Customer [Domain]" } } }, "localname": "NameOfMajorCustomerDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "srt_ProductOrServiceAxis": { "auth_ref": [ "r212", "r358", "r362", "r703", "r759", "r761" ], "lang": { "en-us": { "role": { "label": "Products and Services [Axis]", "terseLabel": "Products and Services [Axis]" } } }, "localname": "ProductOrServiceAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "stringItemType" }, "srt_ProductsAndServicesDomain": { "auth_ref": [ "r212", "r358", "r362", "r703", "r759", "r761" ], "lang": { "en-us": { "role": { "label": "Products and Services [Domain]", "terseLabel": "Products and Services [Domain]" } } }, "localname": "ProductsAndServicesDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [ "r334", "r341", "r395", "r440", "r446", "r675", "r676", "r677", "r678", "r679", "r680", "r699", "r760", "r764", "r812", "r813" ], "lang": { "en-us": { "role": { "label": "Range [Axis]", "terseLabel": "Range [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [ "r334", "r341", "r395", "r440", "r446", "r675", "r676", "r677", "r678", "r679", "r680", "r699", "r760", "r764", "r812", "r813" ], "lang": { "en-us": { "role": { "label": "Range [Domain]", "terseLabel": "Range [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "domainItemType" }, "srt_RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis": { "auth_ref": [ "r801", "r802", "r803", "r804", "r805", "r806", "r807", "r808", "r811" ], "lang": { "en-us": { "role": { "label": "Name of Property [Axis]", "terseLabel": "Name of Property [Axis]" } } }, "localname": "RealEstateAndAccumulatedDepreciationDescriptionOfPropertyAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "stringItemType" }, "srt_RealEstateAndAccumulatedDepreciationNameOfPropertyDomain": { "auth_ref": [ "r801", "r802", "r803", "r804", "r805", "r806", "r807", "r808", "r811" ], "lang": { "en-us": { "role": { "label": "Name of Property [Domain]", "terseLabel": "Name of Property [Domain]" } } }, "localname": "RealEstateAndAccumulatedDepreciationNameOfPropertyDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "domainItemType" }, "srt_RepurchaseAgreementCounterpartyNameDomain": { "auth_ref": [ "r66", "r67", "r128", "r129", "r335", "r342" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Domain]", "terseLabel": "Counterparty Name [Domain]" } } }, "localname": "RepurchaseAgreementCounterpartyNameDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "domainItemType" }, "srt_RestatementAdjustmentMember": { "auth_ref": [ "r139", "r140", "r141", "r143", "r144", "r148", "r149", "r151", "r153", "r154", "r156", "r157", "r169", "r598", "r599" ], "lang": { "en-us": { "role": { "label": "Restatement Adjustment [Member]", "terseLabel": "Cumulative effect adjustment of accumulated other comprehensive income [Member]", "verboseLabel": "Restatement Adjustment [Member]" } } }, "localname": "RestatementAdjustmentMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "domainItemType" }, "srt_RestatementAxis": { "auth_ref": [ "r3", "r139", "r140", "r141", "r143", "r144", "r148", "r149", "r150", "r151", "r153", "r154", "r155", "r156", "r157", "r158", "r169", "r247", "r248", "r494", "r541", "r594", "r598", "r599", "r600", "r767", "r768", "r769", "r770", "r771", "r772", "r773", "r774", "r775", "r776", "r836", "r837" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Axis]" } } }, "localname": "RestatementAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "stringItemType" }, "srt_RestatementDomain": { "auth_ref": [ "r3", "r139", "r140", "r141", "r143", "r144", "r148", "r149", "r150", "r151", "r153", "r154", "r155", "r156", "r157", "r158", "r169", "r247", "r248", "r494", "r541", "r594", "r598", "r599", "r600", "r767", "r768", "r769", "r770", "r771", "r772", "r773", "r774", "r775", "r776", "r836", "r837" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Domain]" } } }, "localname": "RestatementDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "domainItemType" }, "srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock": { "auth_ref": [ "r137" ], "lang": { "en-us": { "role": { "label": "Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]", "terseLabel": "Schedule of valuation and qualifying" } } }, "localname": "ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureScheduleOfvaluationAndQualifying" ], "xbrltype": "textBlockItemType" }, "srt_SegmentGeographicalDomain": { "auth_ref": [ "r213", "r214", "r358", "r363", "r762", "r801", "r802", "r803", "r804", "r805", "r806", "r807", "r808", "r809" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]", "terseLabel": "Segment, Geographical [Domain]" } } }, "localname": "SegmentGeographicalDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails", "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "srt_StatementGeographicalAxis": { "auth_ref": [ "r213", "r214", "r358", "r363", "r762", "r795", "r801", "r802", "r803", "r804", "r805", "r806", "r807", "r808", "r809" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]", "terseLabel": "Geographical [Axis]" } } }, "localname": "StatementGeographicalAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails", "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "stringItemType" }, "srt_ValuationAndQualifyingAccountsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "SCHEDULE OF VALUATION AND QUALIFYING ACCOUNTS [Abstract]" } } }, "localname": "ValuationAndQualifyingAccountsAbstract", "nsuri": "http://fasb.org/srt/2021-01-31", "xbrltype": "stringItemType" }, "srt_ValuationAndQualifyingAccountsDisclosureLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Valuation and Qualifying Accounts Disclosure [Line Items]", "terseLabel": "Schedule of valuation and qualifying" } } }, "localname": "ValuationAndQualifyingAccountsDisclosureLineItems", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "stringItemType" }, "srt_ValuationAndQualifyingAccountsDisclosureTable": { "auth_ref": [ "r131", "r132", "r133", "r135", "r136" ], "lang": { "en-us": { "role": { "label": "Valuation and Qualifying Accounts Disclosure [Table]" } } }, "localname": "ValuationAndQualifyingAccountsDisclosureTable", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "stringItemType" }, "stpr_MN": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "MINNESOTA", "terseLabel": "MINNESOTA" } } }, "localname": "MN", "nsuri": "http://xbrl.sec.gov/stpr/2021", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountingStandardsUpdate201409Member": { "auth_ref": [ "r370" ], "lang": { "en-us": { "role": { "documentation": "Accounting Standards Update 2014-09 Revenue from Contracts with Customers (Topic 606).", "label": "Accounting Standards Update 2014-09 [Member]", "terseLabel": "Accounting Standards Update 2014-09 [Member]", "verboseLabel": "ASU 2014-09 [Member]" } } }, "localname": "AccountingStandardsUpdate201409Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountingStandardsUpdate201601Member": { "auth_ref": [ "r613" ], "lang": { "en-us": { "role": { "documentation": "Accounting Standards Update 2016-01 Financial Instruments-Overall (Subtopic 825-10): Recognition and Measurement of Financial Assets and Financial Liabilities.", "label": "Accounting Standards Update 2016-01 [Member]", "terseLabel": "ASU 2016-01 [Member]" } } }, "localname": "AccountingStandardsUpdate201601Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "domainItemType" }, "us-gaap_AccountingStandardsUpdate201602Member": { "auth_ref": [ "r645" ], "lang": { "en-us": { "role": { "documentation": "Accounting Standards Update 2016-02 Leases (Topic 842).", "label": "Accounting Standards Update 2016-02 [Member]", "terseLabel": "ASU 2016-02 [Member]" } } }, "localname": "AccountingStandardsUpdate201602Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "domainItemType" }, "us-gaap_AccountingStandardsUpdate201609Member": { "auth_ref": [ "r495", "r496", "r497", "r498", "r499", "r500", "r501", "r502", "r503", "r504" ], "lang": { "en-us": { "role": { "documentation": "Accounting Standards Update 2016-09 Compensation - Stock Compensation (Topic 718): Improvements to Employee Share-Based Payment Accounting.", "label": "Accounting Standards Update 2016-09 [Member]", "terseLabel": "Accounting Standards Update 2016-09 [Member]", "verboseLabel": "ASU 2016-09 [Member]" } } }, "localname": "AccountingStandardsUpdate201609Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r51", "r668" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 0.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts Payable, Current", "verboseLabel": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableMember": { "auth_ref": [ "r797" ], "lang": { "en-us": { "role": { "documentation": "Due from customers or clients for goods or services that have been delivered or sold.", "label": "Accounts Receivable [Member]", "terseLabel": "Accounts Receivable [Member]" } } }, "localname": "AccountsReceivableMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountsReceivableNet": { "auth_ref": [ "r33", "r742", "r796" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business.", "label": "Accounts Receivable, after Allowance for Credit Loss", "terseLabel": "Accounts receivable, net" } } }, "localname": "AccountsReceivableNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r9", "r33", "r219", "r220" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, Net, Current", "terseLabel": "Accounts receivable, less allowance for doubtful accounts of $355\u00a0at December 31, 2021 and $302\u00a0at December 31, 2020", "verboseLabel": "Accounts receivable" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableNetNoncurrent": { "auth_ref": [ "r33", "r219", "r727", "r742" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 8.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as noncurrent.", "label": "Accounts Receivable, after Allowance for Credit Loss, Noncurrent", "terseLabel": "Trade notes receivable, long-term" } } }, "localname": "AccountsReceivableNetNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableRelatedParties": { "auth_ref": [ "r32", "r127", "r664", "r665", "r749" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "For an unclassified balance sheet, amount of receivables arising from transactions with related parties.", "label": "Accounts Receivable, Related Parties", "terseLabel": "Accounts receivable due from related party sales" } } }, "localname": "AccountsReceivableRelatedParties", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedIncomeTaxesCurrent": { "auth_ref": [ "r25", "r724", "r745" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails": { "order": 3.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.", "label": "Accrued Income Taxes, Current", "terseLabel": "Income taxes payable" } } }, "localname": "AccruedIncomeTaxesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedIncomeTaxesNoncurrent": { "auth_ref": [ "r26", "r724", "r745" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent.", "label": "Accrued Income Taxes, Noncurrent", "terseLabel": "Reserve for income taxes", "verboseLabel": "Net UTB balance at end of year" } } }, "localname": "AccruedIncomeTaxesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r54" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 }, "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued Liabilities, Current", "totalLabel": "Accrued expenses", "verboseLabel": "Accrued expenses" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r48", "r292" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.", "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment", "negatedLabel": "Accumulated depreciation and amortization", "verboseLabel": "Accumulated amortization for demonstration inventories" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedNetUnrealizedInvestmentGainLossMember": { "auth_ref": [ "r70", "r71", "r72", "r77", "r84", "r85", "r86" ], "lang": { "en-us": { "role": { "documentation": "Accumulated 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), attributable to parent.", "label": "Accumulated Net Investment Gain (Loss) Attributable to Parent [Member]", "terseLabel": "Unrealized Gains (Losses) On Available-for-sale Securities [Member]", "verboseLabel": "Available-for-sale Securities [Member]" } } }, "localname": "AccumulatedNetUnrealizedInvestmentGainLossMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossCumulativeChangesInNetGainLossFromCashFlowHedgesEffectNetOfTax": { "auth_ref": [ "r69", "r74", "r76" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated change, net of tax, in accumulated gains and losses from derivative instruments designated and qualifying as the effective portion of cash flow hedges. Includes an entity's share of an equity investee's Increase or Decrease in deferred hedging gains or losses.", "label": "Accumulated Other Comprehensive Income (Loss), Cumulative Changes in Net Gain (Loss) from Cash Flow Hedges, Effect Net of Tax", "terseLabel": "Unrealized loss on effective portion of foreign exchange forward contracts, net" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossCumulativeChangesInNetGainLossFromCashFlowHedgesEffectNetOfTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Accumulated Other Comprehensive Income (Loss) [Line Items]", "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Line Items]" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r35", "r74", "r76", "r77", "r746", "r772", "r776" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.", "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "periodEndLabel": "Balance at the end of period", "periodStartLabel": "Balance at the beginning of period", "verboseLabel": "Accumulated other comprehensive loss" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets", "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTaxAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax [Abstract]" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTaxAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossTable": { "auth_ref": [ "r84", "r85", "r627", "r628", "r629", "r630", "r631", "r633" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about components of accumulated other comprehensive income (loss).", "label": "Accumulated Other Comprehensive Income (Loss) [Table]", "terseLabel": "Accumulated Other Comprehensive Loss [Table]" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "auth_ref": [ "r73", "r77", "r84", "r85", "r86", "r139", "r140", "r141", "r568", "r767", "r768", "r837" ], "lang": { "en-us": { "role": { "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.", "label": "AOCI Attributable to Parent [Member]", "terseLabel": "Accumulated Other Comprehensive Loss [Member]" } } }, "localname": "AccumulatedOtherComprehensiveIncomeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AccumulatedTranslationAdjustmentMember": { "auth_ref": [ "r68", "r77", "r84", "r85", "r86", "r568", "r628", "r629", "r630", "r631", "r633" ], "lang": { "en-us": { "role": { "documentation": "Accumulated other comprehensive income (loss) resulting from 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 the parent.", "label": "Accumulated Foreign Currency Adjustment Attributable to Parent [Member]", "terseLabel": "Foreign Currency Translation Adjustments [Member]" } } }, "localname": "AccumulatedTranslationAdjustmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": { "auth_ref": [ "r278" ], "lang": { "en-us": { "role": { "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.", "label": "Acquired Finite-lived Intangible Assets, Weighted Average Useful Life", "terseLabel": "Intangible assets acquired, Weighted Average Life (in years)" } } }, "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails" ], "xbrltype": "durationItemType" }, "us-gaap_AdditionalFinancialInformationDisclosureTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosures of supplemental information, including descriptions and amounts, related to the balance sheet, income statement, and/or cash flow statement.", "label": "Additional Financial Information Disclosure [Text Block]", "terseLabel": "OTHER FINANCIAL STATEMENT DATA" } } }, "localname": "AdditionalFinancialInformationDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementData" ], "xbrltype": "textBlockItemType" }, "us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis": { "auth_ref": [ "r143", "r144", "r145", "r146" ], "lang": { "en-us": { "role": { "documentation": "Information by type of change in accounting principle. Excludes change from amendment to accounting standards.", "label": "Adjustments for Change in Accounting Principle [Axis]" } } }, "localname": "AdjustmentsForChangeInAccountingPrincipleAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": { "auth_ref": [ "r0", "r1", "r2", "r3", "r4", "r143", "r144", "r145", "r146", "r158", "r224", "r225", "r243", "r244", "r245", "r246", "r247", "r248", "r320", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r494", "r538", "r539", "r540", "r541", "r590", "r591", "r592", "r593", "r594", "r595", "r596", "r597", "r598", "r599", "r600", "r614", "r615", "r616", "r617", "r618", "r619", "r620", "r621", "r662", "r705", "r706", "r707", "r765", "r766", "r767", "r768", "r769", "r770", "r771", "r772", "r773", "r774", "r775", "r776", "r833", "r834", "r835", "r836", "r837" ], "lang": { "en-us": { "role": { "documentation": "Information by amendment to accounting standards.", "label": "Adjustments for New Accounting Pronouncements [Axis]", "terseLabel": "Adjustments for New Accounting Pronouncements [Axis]" } } }, "localname": "AdjustmentsForNewAccountingPronouncementsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "auth_ref": [ "r448", "r450", "r506", "r507" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.", "label": "Adjustments to Additional Paid in Capital, Share-based Compensation, Requisite Service Period Recognition", "terseLabel": "Share-based compensation" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "netLabel": "Adjustments to reconcile net income to net cash provided by operating activities:" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AdvertisingCostsPolicyTextBlock": { "auth_ref": [ "r510" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for advertising cost.", "label": "Advertising Costs, Policy [Policy Text Block]", "terseLabel": "Advertising Costs" } } }, "localname": "AdvertisingCostsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_AdvertisingExpense": { "auth_ref": [ "r511" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.", "label": "Advertising Expense", "terseLabel": "Advertising expense" } } }, "localname": "AdvertisingExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "auth_ref": [ "r39", "r221", "r249" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.", "label": "Allowance for Doubtful Accounts Receivable, Current", "terseLabel": "Accounts receivable, allowance for doubtful accounts" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfIntangibleAssets": { "auth_ref": [ "r113", "r276", "r284" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization of Intangible Assets", "verboseLabel": "Amortization of intangibles" } } }, "localname": "AmortizationOfIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r166" ], "lang": { "en-us": { "role": { "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.", "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Earnings per share, potentially dilutive shares (in shares)" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/NetIncomePerShareNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_AreaOfRealEstateProperty": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area of a real estate property.", "label": "Area of Real Estate Property", "terseLabel": "Mixed office and warehouse facility, square footage" } } }, "localname": "AreaOfRealEstateProperty", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "areaItemType" }, "us-gaap_AssetBackedSecuritiesMember": { "auth_ref": [ "r230", "r396" ], "lang": { "en-us": { "role": { "documentation": "Securities that are primarily serviced by the cash flows of a discrete pool of receivables or other financial assets for example, but not limited to, credit card receivables, car loans, recreational vehicle loans, and mobile home loans.", "label": "Asset-backed Securities [Member]", "terseLabel": "Asset Backed Securities [Member]" } } }, "localname": "AssetBackedSecuritiesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails", "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AssetImpairmentCharges": { "auth_ref": [ "r113", "r289" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of write-down of assets recognized in the income statement. Includes, but is not limited to, losses from tangible assets, intangible assets and goodwill.", "label": "Asset Impairment Charges", "terseLabel": "Asset impairment charges" } } }, "localname": "AssetImpairmentCharges", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Assets": { "auth_ref": [ "r122", "r195", "r204", "r210", "r242", "r321", "r322", "r323", "r325", "r326", "r327", "r328", "r329", "r330", "r332", "r333", "r564", "r569", "r612", "r666", "r668", "r723", "r744" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets [Abstract]", "verboseLabel": "ASSETS" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r12", "r14", "r64", "r122", "r242", "r321", "r322", "r323", "r325", "r326", "r327", "r328", "r329", "r330", "r332", "r333", "r564", "r569", "r612", "r666", "r668" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 0.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets, Current", "totalLabel": "Total current assets" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": { "auth_ref": [ "r227" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, before tax, of unrealized gain in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Debt Securities, Available-for-sale, Accumulated Gross Unrealized Gain, before Tax", "terseLabel": "Net pre-tax unrealized gains" } } }, "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleEquitySecuritiesAccumulatedGrossUnrealizedLossBeforeTax": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of unrealized loss in accumulated other comprehensive income (AOCI) on investments in equity securities classified as available-for-sale.", "label": "Available-for-sale Equity Securities, Accumulated Gross Unrealized Loss, before Tax", "terseLabel": "Net pre-tax unrealized losses" } } }, "localname": "AvailableForSaleEquitySecuritiesAccumulatedGrossUnrealizedLossBeforeTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecurities": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails": { "order": 2.0, "parentTag": "us-gaap_AvailableForSaleSecuritiesAmortizedCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investment in debt and equity securities categorized neither as held-to-maturity nor trading.", "label": "Available-for-sale Securities", "terseLabel": "Fair Value", "verboseLabel": "Fair value" } } }, "localname": "AvailableForSaleSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": { "auth_ref": [ "r227" ], "calculation": { "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails": { "order": 0.0, "parentTag": "us-gaap_AvailableForSaleSecuritiesAmortizedCost", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of unrealized gain in accumulated other comprehensive income (AOCI) on investments in debt and equity securities classified as available-for-sale.", "label": "Available-for-sale Securities, Accumulated Gross Unrealized Gain, before Tax", "terseLabel": "Unrealized Gains", "verboseLabel": "Unrealized gain" } } }, "localname": "AvailableForSaleSecuritiesAccumulatedGrossUnrealizedGainBeforeTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails": { "order": 1.0, "parentTag": "us-gaap_AvailableForSaleSecuritiesAmortizedCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of unrealized loss in accumulated other comprehensive income (AOCI) on investments in debt and equity securities classified as available-for-sale.", "label": "Available-for-sale Securities, Accumulated Gross Unrealized Loss, before Tax", "negatedLabel": "Unrealized Losses", "terseLabel": "Unrealized loss" } } }, "localname": "AvailableForSaleSecuritiesAccumulatedGrossUnrealizedLossBeforeTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesAmortizedCost": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "This item represents the cost of debt and equity securities, which are categorized neither as held-to-maturity nor trading, net of adjustments including accretion, amortization, collection of cash, previous other-than-temporary impairments recognized in earnings (less any cumulative-effect adjustments recognized, as defined), and fair value hedge accounting adjustments, if any.", "label": "Available-for-sale Securities, Amortized Cost Basis", "totalLabel": "Cost" } } }, "localname": "AvailableForSaleSecuritiesAmortizedCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale that have been in a continuous loss position for twelve months or longer.", "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss", "negatedLabel": "In Unrealized Loss Position For Greater Than 12 Months" } } }, "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLossAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Accumulated Loss [Abstract]", "terseLabel": "Gross Unrealized Losses" } } }, "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionAccumulatedLossAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValueAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Fair Value [Abstract]", "terseLabel": "Fair Value" } } }, "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValueAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValueTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of fair value of investments in debt and equity securities in an unrealized loss position categorized neither as held-to-maturity nor trading securities.", "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Fair Value [Table Text Block]", "terseLabel": "Schedule of Unrealized Loss Position" } } }, "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionFairValueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated unrealized loss on investments in debt and equity securities classified as available-for-sale that have been in a continuous loss position for less than twelve months.", "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss", "negatedLabel": "In Unrealized Loss Position For Less Than 12 Months" } } }, "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "This item represents the aggregate fair value of investments in debt and equity securities categorized neither as held-to-maturity nor trading securities that have been in a continuous unrealized loss position for less than twelve months.", "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Less than Twelve Months, Fair Value", "terseLabel": "In Unrealized Loss Position For Less Than 12 Months" } } }, "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionLessThanTwelveMonthsFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "This item represents the aggregate fair value of investments in debt and equity securities categorized neither as held-to-maturity nor trading securities that have been in a continuous unrealized loss position for twelve months or longer.", "label": "Available-for-sale Securities, Continuous Unrealized Loss Position, Twelve Months or Longer, Fair Value", "terseLabel": "In Unrealized Loss Position For Greater Than 12 Months" } } }, "localname": "AvailableForSaleSecuritiesContinuousUnrealizedLossPositionTwelveMonthsOrLongerFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesGrossRealizedGainLossNet": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "This item represents the difference between the gross realized gains and losses realized on the sale of debt or equity securities categorized neither as held-to-maturity nor trading securities. Additionally, this item would include any losses recognized for other than temporary impairments (OTTI) of the subject investments in debt and equity securities.", "label": "Available-for-sale Securities, Gross Realized Gain (Loss)", "negatedLabel": "Realized gain on available for sale marketable securities", "terseLabel": "Available-for-sale securities, gross realized gain (loss)" } } }, "localname": "AvailableForSaleSecuritiesGrossRealizedGainLossNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AvailableForSaleSecuritiesTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of available-for-sale securities which includes, but is not limited to, changes in the cost basis and fair value, fair value and gross unrealized gain (loss), fair values by type of security, contractual maturity and classification, amortized cost basis, contracts to acquire securities to be accounted for as available-for-sale, debt maturities, transfers to trading, change in net unrealized holding gain (loss) net of tax, continuous unrealized loss position fair value, aggregate losses qualitative disclosures, other than temporary impairment (OTTI) losses or other disclosures related to available for sale securities.", "label": "Available-for-sale Securities [Table Text Block]", "terseLabel": "Schedule of Marketable Securities" } } }, "localname": "AvailableForSaleSecuritiesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_AverageRemainingMaturityOfForeignCurrencyDerivatives1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Average period remaining before foreign currency exchange rate derivatives mature or expire, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Average Remaining Maturity of Foreign Currency Derivatives", "terseLabel": "Average remaining maturity of foreign currency derivatives (in years)" } } }, "localname": "AverageRemainingMaturityOfForeignCurrencyDerivatives1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_AwardTypeAxis": { "auth_ref": [ "r452", "r485" ], "lang": { "en-us": { "role": { "documentation": "Information by type of award under share-based payment arrangement.", "label": "Award Type [Axis]", "terseLabel": "Award Type [Axis]" } } }, "localname": "AwardTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationsPolicy": { "auth_ref": [ "r556" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.", "label": "Business Combinations Policy [Policy Text Block]", "terseLabel": "Business Combinations" } } }, "localname": "BusinessCombinationsPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CapitalizedContractCostImpairmentLoss": { "auth_ref": [ "r267" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of impairment loss for asset recognized from cost incurred to obtain or fulfill contract with customer.", "label": "Capitalized Contract Cost, Impairment Loss", "terseLabel": "Impairment losses for contract assets" } } }, "localname": "CapitalizedContractCostImpairmentLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r7", "r44", "r115" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 0.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.", "label": "Cash and Cash Equivalents, at Carrying Value", "periodEndLabel": "Cash and cash equivalents \u2013 end of period", "periodStartLabel": "Cash and cash equivalents \u2013 beginning of period", "verboseLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets", "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 0.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in cash and cash equivalents. Cash and cash equivalents are the 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. Includes effect from exchange rate changes.", "label": "Cash and Cash Equivalents, Period Increase (Decrease)", "totalLabel": "Net increase in cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsPeriodIncreaseDecrease", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsPolicyTextBlock": { "auth_ref": [ "r20", "r116" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.", "label": "Cash and Cash Equivalents, Policy [Policy Text Block]", "terseLabel": "Cash and Cash Equivalents" } } }, "localname": "CashAndCashEquivalentsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CashCashEquivalentsAndMarketableSecuritiesTextBlock": { "auth_ref": [ "r237" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure of cash, cash equivalents, and debt and equity securities, including any unrealized or realized gain (loss).", "label": "Cash, Cash Equivalents, and Marketable Securities [Text Block]", "verboseLabel": "MARKETABLE SECURITIES" } } }, "localname": "CashCashEquivalentsAndMarketableSecuritiesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecurities" ], "xbrltype": "textBlockItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r110", "r626" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "monetaryItemType" }, "us-gaap_ChangeInAccountingPrincipleMember": { "auth_ref": [ "r143", "r144", "r145", "r146" ], "lang": { "en-us": { "role": { "documentation": "Change in accounting principle. Excludes change from amendment to accounting standards.", "label": "Adjustments for Change in Accounting Principle [Domain]" } } }, "localname": "ChangeInAccountingPrincipleMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r57", "r300", "r729", "r751" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", "label": "Commitments and Contingencies", "terseLabel": "Commitments and contingencies" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONTINGENCIES [Abstract]" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r297", "r298", "r299", "r307", "r798" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for commitments and contingencies.", "label": "Commitments and Contingencies Disclosure [Text Block]", "verboseLabel": "CONTINGENCIES" } } }, "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Contingencies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r139", "r140", "r598" ], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock [Member]", "terseLabel": "Common Stock [Member]" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockNoParValue": { "auth_ref": [ "r31" ], "lang": { "en-us": { "role": { "documentation": "Face amount per share of no-par value common stock.", "label": "Common Stock, No Par Value", "verboseLabel": "Common stock, par value (in usd per share)" } } }, "localname": "CommonStockNoParValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r31" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common Stock, Shares Authorized", "verboseLabel": "Common stock, shares authorized, shares" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r31" ], "lang": { "en-us": { "role": { "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.", "label": "Common Stock, Shares, Issued", "verboseLabel": "Common stock, shares issued, shares" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r31", "r344" ], "lang": { "en-us": { "role": { "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.", "label": "Common Stock, Shares, Outstanding", "verboseLabel": "Common stock, shares outstanding, shares" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r31", "r668" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Common Stock, Value, Issued", "terseLabel": "Common stock,\u00a0no par value,\u00a025,000,000\u00a0shares authorized,\u00a07,391,906\u00a0shares issued and outstanding at December 31, 2021 and\u00a07,294,617\u00a0shares issued and outstanding at December 31, 2020", "verboseLabel": "Common stock" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CompensationAndEmployeeBenefitPlansTextBlock": { "auth_ref": [ "r372", "r373", "r447", "r509" ], "lang": { "en-us": { "role": { "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.", "label": "Compensation and Employee Benefit Plans [Text Block]", "terseLabel": "401(K) AND OTHER DEFINED CONTRIBUTION PLANS" } } }, "localname": "CompensationAndEmployeeBenefitPlansTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlans" ], "xbrltype": "textBlockItemType" }, "us-gaap_CompensationAndRetirementDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "401(K) AND OTHER DEFINED CONTRIBUTION PLANS [Abstract]" } } }, "localname": "CompensationAndRetirementDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_ComprehensiveIncomeNetOfTax": { "auth_ref": [ "r80", "r82", "r83", "r92", "r733", "r754" ], "calculation": { "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.", "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "totalLabel": "Total comprehensive income" } } }, "localname": "ComprehensiveIncomeNetOfTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTaxAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "OTHER COMPREHENSIVE INCOME (LOSS)" } } }, "localname": "ComprehensiveIncomeNetOfTaxAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_ComprehensiveIncomeNoteTextBlock": { "auth_ref": [ "r91", "r102", "r732", "r753" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for comprehensive income, which includes, but is not limited to, 1) the amount of income tax expense or benefit allocated to each component of other comprehensive income, including reclassification adjustments, 2) the reclassification adjustments for each classification of other comprehensive income and 3) the ending accumulated balances for each component of comprehensive income.", "label": "Comprehensive Income (Loss) Note [Text Block]", "verboseLabel": "OTHER COMPREHENSIVE INCOME (LOSS)" } } }, "localname": "ComprehensiveIncomeNoteTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLoss" ], "xbrltype": "textBlockItemType" }, "us-gaap_ComprehensiveIncomePolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for comprehensive income.", "label": "Comprehensive Income, Policy [Policy Text Block]", "terseLabel": "Comprehensive Income" } } }, "localname": "ComprehensiveIncomePolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ComputerSoftwareIntangibleAssetMember": { "auth_ref": [ "r277", "r282", "r560" ], "lang": { "en-us": { "role": { "documentation": "Collection of computer programs and related data that provide instructions to a computer, for example, but not limited to, application program, control module or operating system, that perform one or more particular functions or tasks.", "label": "Computer Software, Intangible Asset [Member]", "terseLabel": "Software [Member]" } } }, "localname": "ComputerSoftwareIntangibleAssetMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "auth_ref": [ "r184", "r185", "r218", "r609", "r610", "r797" ], "lang": { "en-us": { "role": { "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.", "label": "Concentration Risk Benchmark [Domain]", "terseLabel": "Concentration Risk Benchmark [Domain]" } } }, "localname": "ConcentrationRiskBenchmarkDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "auth_ref": [ "r184", "r185", "r218", "r609", "r610", "r778", "r797" ], "lang": { "en-us": { "role": { "documentation": "Information by benchmark of concentration risk.", "label": "Concentration Risk Benchmark [Axis]", "terseLabel": "Concentration Risk Benchmark [Axis]" } } }, "localname": "ConcentrationRiskByBenchmarkAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskByTypeAxis": { "auth_ref": [ "r184", "r185", "r218", "r609", "r610", "r778", "r797" ], "lang": { "en-us": { "role": { "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.", "label": "Concentration Risk Type [Axis]", "terseLabel": "Concentration Risk Type [Axis]" } } }, "localname": "ConcentrationRiskByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskDisclosureTextBlock": { "auth_ref": [ "r190" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for any concentrations existing at the date of the financial statements that make an entity vulnerable to a reasonably possible, near-term, severe impact. This disclosure informs financial statement users about the general nature of the risk associated with the concentration, and may indicate the percentage of concentration risk as of the balance sheet date.", "label": "Concentration Risk Disclosure [Text Block]", "terseLabel": "REVENUE CONCENETRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS" } } }, "localname": "ConcentrationRiskDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreas" ], "xbrltype": "textBlockItemType" }, "us-gaap_ConcentrationRiskLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Concentration Risk [Line Items]", "terseLabel": "Product Information [Line Items]", "verboseLabel": "Revenue, Major Customer [Line Items]" } } }, "localname": "ConcentrationRiskLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskPercentage1": { "auth_ref": [ "r184", "r185", "r218", "r609", "r610" ], "lang": { "en-us": { "role": { "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.", "label": "Concentration Risk, Percentage", "verboseLabel": "Percentage of Revenues" } } }, "localname": "ConcentrationRiskPercentage1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ConcentrationRiskTable": { "auth_ref": [ "r181", "r184", "r185", "r186", "r609", "r611", "r797" ], "lang": { "en-us": { "role": { "documentation": "Describes the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.", "label": "Concentration Risk [Table]" } } }, "localname": "ConcentrationRiskTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskTypeDomain": { "auth_ref": [ "r184", "r185", "r218", "r609", "r610", "r797" ], "lang": { "en-us": { "role": { "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.", "label": "Concentration Risk Type [Domain]", "terseLabel": "Concentration Risk Type [Domain]" } } }, "localname": "ConcentrationRiskTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConsolidationPolicyTextBlock": { "auth_ref": [ "r118", "r566" ], "lang": { "en-us": { "role": { "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.", "label": "Consolidation, Policy [Policy Text Block]", "terseLabel": "Principles of Consolidation" } } }, "localname": "ConsolidationPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": { "auth_ref": [ "r349" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.", "label": "Contract with Customer, Asset and Liability [Table Text Block]", "terseLabel": "Summary of contract assets and contract liabilities" } } }, "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerAssetNet": { "auth_ref": [ "r346", "r348", "r359" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.", "label": "Contract with Customer, Asset, Net", "terseLabel": "Contract assets, included in other current assets" } } }, "localname": "ContractWithCustomerAssetNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfContractAssetsAndContractLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiability": { "auth_ref": [ "r346", "r347", "r359" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "Contract with Customer, Liability", "terseLabel": "Contract liabilities - advance customer payments" } } }, "localname": "ContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfContractAssetsAndContractLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "auth_ref": [ "r346", "r347", "r359" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.", "label": "Contract with Customer, Liability, Current", "terseLabel": "Advance customer payments" } } }, "localname": "ContractWithCustomerLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityNoncurrent": { "auth_ref": [ "r346", "r347", "r359" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_OtherLiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.", "label": "Contract with Customer, Liability, Noncurrent", "terseLabel": "Contract liabilities" } } }, "localname": "ContractWithCustomerLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "auth_ref": [ "r360" ], "calculation": { "http://cyberoptics.com/role/RevenueRecognitionSummaryoftheamountsreclassifiedfrombeginningcontractliabilitiestorevenueDetails": { "order": 0.0, "parentTag": "cybe_ContractWithCustomerLiabilityAndDeferredRevenueRevenueRecognized", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.", "label": "Contract with Customer, Liability, Revenue Recognized", "terseLabel": "Amounts reclassified from beginning contract liabilities to revenue" } } }, "localname": "ContractWithCustomerLiabilityRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryoftheamountsreclassifiedfrombeginningcontractliabilitiestorevenueDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfRevenue": { "auth_ref": [ "r98", "r122", "r242", "r321", "r322", "r323", "r326", "r327", "r328", "r329", "r330", "r332", "r333", "r612" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_GrossProfit", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period.", "label": "Cost of Revenue", "verboseLabel": "Cost of revenues" } } }, "localname": "CostOfRevenue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfSalesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing cost of sales.", "label": "Cost of Sales [Member]", "terseLabel": "Cost of Revenues [Member]" } } }, "localname": "CostOfSalesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesScheduleOfCashFlowHedgesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CurrentFederalTaxExpenseBenefit": { "auth_ref": [ "r123", "r534", "r544" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails": { "order": 0.0, "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Current Federal Tax Expense (Benefit)", "terseLabel": "Federal" } } }, "localname": "CurrentFederalTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentForeignTaxExpenseBenefit": { "auth_ref": [ "r123", "r534" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails": { "order": 2.0, "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Current Foreign Tax Expense (Benefit)", "terseLabel": "Foreign" } } }, "localname": "CurrentForeignTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentIncomeTaxExpenseBenefit": { "auth_ref": [ "r123", "r534", "r544", "r546" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails": { "order": 1.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.", "label": "Current Income Tax Expense (Benefit)", "totalLabel": "Total current" } } }, "localname": "CurrentIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Current Income Tax Expense (Benefit), Continuing Operations [Abstract]", "terseLabel": "Current:" } } }, "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": { "auth_ref": [ "r123", "r534", "r544" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails": { "order": 1.0, "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Current State and Local Tax Expense (Benefit)", "terseLabel": "State" } } }, "localname": "CurrentStateAndLocalTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CustomerConcentrationRiskMember": { "auth_ref": [ "r182", "r218" ], "lang": { "en-us": { "role": { "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.", "label": "Customer Concentration Risk [Member]", "terseLabel": "Customer Concentration Risk [Member]" } } }, "localname": "CustomerConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CustomerRelatedIntangibleAssetsMember": { "auth_ref": [ "r557" ], "lang": { "en-us": { "role": { "documentation": "Customer-related asset, including, but not limited to, customer lists, and noncontractual customer relationships.", "label": "Customer-Related Intangible Assets [Member]", "terseLabel": "Marketing Assets and Customer Relationships [Member]" } } }, "localname": "CustomerRelatedIntangibleAssetsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": { "auth_ref": [ "r123", "r535", "r544" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails": { "order": 0.0, "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Federal Income Tax Expense (Benefit)", "terseLabel": "Federal" } } }, "localname": "DeferredFederalIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": { "auth_ref": [ "r123", "r535", "r544" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Foreign Income Tax Expense (Benefit)", "terseLabel": "Foreign" } } }, "localname": "DeferredForeignIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxAssetsNet": { "auth_ref": [ "r514", "r515" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 7.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.", "label": "Deferred Income Tax Assets, Net", "terseLabel": "Deferred tax assets" } } }, "localname": "DeferredIncomeTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "auth_ref": [ "r113", "r123", "r535", "r544", "r545", "r546" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails": { "order": 0.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Income Tax Expense (Benefit)", "terseLabel": "Deferred taxes", "totalLabel": "Total deferred" } } }, "localname": "DeferredIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows", "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]", "terseLabel": "Deferred:" } } }, "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredIncomeTaxLiabilities": { "auth_ref": [ "r27", "r28", "r526", "r725", "r741" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 0.0, "parentTag": "us-gaap_DeferredTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences.", "label": "Deferred Tax Liabilities, Gross", "totalLabel": "Subtotal" } } }, "localname": "DeferredIncomeTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredRentCreditNoncurrent": { "auth_ref": [ "r29", "r637", "r660" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails": { "order": 0.0, "parentTag": "us-gaap_OtherLiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of excess of rental payment required by lease over rental income recognized, classified as noncurrent.", "label": "Deferred Rent Credit, Noncurrent", "terseLabel": "Deferred rent" } } }, "localname": "DeferredRentCreditNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredRevenueByArrangementDisclosureTextBlock": { "auth_ref": [ "r16" ], "lang": { "en-us": { "role": { "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.", "label": "Deferred Revenue, by Arrangement, Disclosure [Table Text Block]", "terseLabel": "Schedule of Changes in Deferred Warranty Revenue" } } }, "localname": "DeferredRevenueByArrangementDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DeferredRevenueRevenueRecognized1": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/RevenueRecognitionSummaryoftheamountsreclassifiedfrombeginningcontractliabilitiestorevenueDetails": { "order": 1.0, "parentTag": "cybe_ContractWithCustomerLiabilityAndDeferredRevenueRevenueRecognized", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized that was previously reported as deferred or unearned revenue.", "label": "Deferred Revenue, Revenue Recognized", "terseLabel": "Amounts reclassified from deferred warranty revenue" } } }, "localname": "DeferredRevenueRevenueRecognized1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryoftheamountsreclassifiedfrombeginningcontractliabilitiestorevenueDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": { "auth_ref": [ "r123", "r535", "r544" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred State and Local Income Tax Expense (Benefit)", "terseLabel": "State" } } }, "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsDeferredIncome": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 0.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred income.", "label": "Deferred Tax Assets, Deferred Income", "terseLabel": "Deferred revenue" } } }, "localname": "DeferredTaxAssetsDeferredIncome", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsGross": { "auth_ref": [ "r527" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 0.0, "parentTag": "us-gaap_DeferredTaxAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.", "label": "Deferred Tax Assets, Gross", "totalLabel": "Subtotal" } } }, "localname": "DeferredTaxAssetsGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsGrossAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred Tax Assets, Gross [Abstract]", "terseLabel": "Assets" } } }, "localname": "DeferredTaxAssetsGrossAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredTaxAssetsInventory": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.", "label": "Deferred Tax Assets, Inventory", "terseLabel": "Inventory allowances" } } }, "localname": "DeferredTaxAssetsInventory", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsNet": { "auth_ref": [ "r529" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.", "label": "Deferred Tax Assets, Net of Valuation Allowance", "totalLabel": "Total deferred tax assets" } } }, "localname": "DeferredTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 4.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.", "label": "Deferred Tax Assets, Operating Loss Carryforwards", "terseLabel": "State net operating loss carry forwards" } } }, "localname": "DeferredTaxAssetsOperatingLossCarryforwards", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic": { "auth_ref": [ "r532", "r533" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards.", "label": "Deferred Tax Assets, Operating Loss Carryforwards, Domestic", "terseLabel": "Deferred tax assets, operating loss carryforwards, domestic" } } }, "localname": "DeferredTaxAssetsOperatingLossCarryforwardsDomestic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 5.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.", "label": "Deferred Tax Assets, Operating Loss Carryforwards, Foreign", "terseLabel": "Deferred tax assets, operating loss carryforwards, foreign", "verboseLabel": "Foreign net operating loss carry forwards" } } }, "localname": "DeferredTaxAssetsOperatingLossCarryforwardsForeign", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails", "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsOther": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 6.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.", "label": "Deferred Tax Assets, Other", "terseLabel": "Other, net" } } }, "localname": "DeferredTaxAssetsOther", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsOtherComprehensiveLoss": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 7.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from unrealized losses in other comprehensive income.", "label": "Deferred Tax Assets, Other Comprehensive Loss", "terseLabel": "Unrealized gains and losses" } } }, "localname": "DeferredTaxAssetsOtherComprehensiveLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": { "auth_ref": [ "r531", "r532", "r533" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.", "label": "Deferred Tax Assets, Tax Credit Carryforwards, Research", "terseLabel": "Research & Development tax credits" } } }, "localname": "DeferredTaxAssetsTaxCreditCarryforwardsResearch", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 8.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.", "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost", "terseLabel": "Share-based compensation" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 11.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from accrued liabilities.", "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Accrued Liabilities", "terseLabel": "Accrued expenses" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 9.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable.", "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Allowance for Doubtful Accounts", "terseLabel": "Accounts receivable allowance" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 10.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from warranty reserves.", "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Warranty Reserves", "terseLabel": "Warranty accrual" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsValuationAllowance": { "auth_ref": [ "r528" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredTaxAssetsNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.", "label": "Deferred Tax Assets, Valuation Allowance", "negatedLabel": "Valuation allowance", "terseLabel": "Valuation allowance" } } }, "localname": "DeferredTaxAssetsValuationAllowance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilities": { "auth_ref": [ "r515", "r529" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.", "label": "Deferred Tax Liabilities, Net", "totalLabel": "Total deferred tax liabilities" } } }, "localname": "DeferredTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred Tax Liabilities, Gross [Abstract]", "terseLabel": "Liabilities" } } }, "localname": "DeferredTaxLiabilitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredTaxLiabilitiesDeferredExpenseCapitalizedInventoryCosts": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 0.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax consequences attributable to taxable temporary differences derived from inventory.", "label": "Deferred Tax Liabilities, Inventory", "terseLabel": "Inventory allowances" } } }, "localname": "DeferredTaxLiabilitiesDeferredExpenseCapitalizedInventoryCosts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesOther": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 4.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other.", "label": "Deferred Tax Liabilities, Other", "terseLabel": "Other, net" } } }, "localname": "DeferredTaxLiabilitiesOther", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesOtherComprehensiveIncome": { "auth_ref": [ "r532", "r533" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from unrealized gains in other comprehensive income.", "label": "Deferred Tax Liabilities, Other Comprehensive Income", "terseLabel": "Unrealized gains and losses" } } }, "localname": "DeferredTaxLiabilitiesOtherComprehensiveIncome", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings": { "auth_ref": [ "r532" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from undistributed earnings of subsidiary and other recognized entity not within country of domicile. Includes, but is not limited to, other basis differences.", "label": "Deferred Tax Liabilities, Undistributed Foreign Earnings", "terseLabel": "Earnings of foreign subsidiary", "verboseLabel": "Deferred tax liability for subsidiary's undistributed earnings" } } }, "localname": "DeferredTaxLiabilitiesUndistributedForeignEarnings", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails", "http://cyberoptics.com/role/IncomeTaxesScheduleOfDeferredTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DefinedContributionPlanDisclosureLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Defined Contribution Plan Disclosure [Line Items]" } } }, "localname": "DefinedContributionPlanDisclosureLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlansDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DefinedContributionPlanEmployerDiscretionaryContributionAmount": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of discretionary contributions made by an employer to a defined contribution plan.", "label": "Defined Contribution Plan, Employer Discretionary Contribution Amount", "terseLabel": "Matching contributions to employees" } } }, "localname": "DefinedContributionPlanEmployerDiscretionaryContributionAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlansDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DefinedContributionPlanTable": { "auth_ref": [ "r436" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about defined contribution pension plans or defined contribution other postretirement plans, separately for pension plans and other postretirement benefit plans.", "label": "Defined Contribution Plan [Table]" } } }, "localname": "DefinedContributionPlanTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlansDetails" ], "xbrltype": "stringItemType" }, "us-gaap_Depreciation": { "auth_ref": [ "r113", "r290" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.", "label": "Depreciation", "terseLabel": "Depreciation expense" } } }, "localname": "Depreciation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DepreciationDepletionAndAmortization": { "auth_ref": [ "r113", "r193" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.", "label": "Depreciation, Depletion and Amortization", "verboseLabel": "Depreciation and amortization" } } }, "localname": "DepreciationDepletionAndAmortization", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeInstrumentsAndHedgesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "DERIVATIVES [Abstract]" } } }, "localname": "DerivativeInstrumentsAndHedgesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": { "auth_ref": [ "r589", "r601" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts.", "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]", "verboseLabel": "DERIVATIVES" } } }, "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Derivatives" ], "xbrltype": "textBlockItemType" }, "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable": { "auth_ref": [ "r576", "r578", "r581", "r583", "r584", "r586", "r587" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments.", "label": "Derivative Instruments, Gain (Loss) [Table]", "terseLabel": "Derivative Instruments, Gain (Loss) [Table]" } } }, "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesScheduleOfCashFlowHedgesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeInstrumentsGainLossLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Derivative Instruments, Gain (Loss) [Line Items]", "terseLabel": "Derivative Instruments, Gain (Loss) [Line Items]" } } }, "localname": "DerivativeInstrumentsGainLossLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesScheduleOfCashFlowHedgesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet": { "auth_ref": [ "r580", "r582" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The effective portion of net gain (loss) reclassified from accumulated other comprehensive income into income on derivative instruments designated and qualifying as hedging instruments.", "label": "Derivative Instruments, Gain (Loss) Reclassified from Accumulated OCI into Income, Effective Portion, Net", "terseLabel": "Pretax Loss Recognized in Earnings on Effective Portion of Derivative as a Result of Reclassification from Accumulated Other Comprehensive Loss" } } }, "localname": "DerivativeInstrumentsGainLossReclassifiedFromAccumulatedOCIIntoIncomeEffectivePortionNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesScheduleOfCashFlowHedgesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativesPolicyTextBlock": { "auth_ref": [ "r130", "r572", "r574", "r576", "r577", "r585" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for its derivative instruments and hedging activities.", "label": "Derivatives, Policy [Policy Text Block]", "terseLabel": "Derivatives and Hedging" } } }, "localname": "DerivativesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member": { "auth_ref": [ "r369" ], "lang": { "en-us": { "role": { "documentation": "Effect in current period from application of guidance for revenue from contract with customer compared with guidance for revenue recognition applicable prior to change when using transition method for cumulative effect in period including initial date of application.", "label": "Difference between Revenue Guidance in Effect before and after Topic 606 [Member]", "terseLabel": "Effect of adoption of Topic 606 [Member]" } } }, "localname": "DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DisaggregationOfRevenueLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Disaggregation of Revenue [Line Items]", "terseLabel": "Performance Obligations" } } }, "localname": "DisaggregationOfRevenueLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTable": { "auth_ref": [ "r358", "r362", "r363", "r364", "r365", "r366", "r367", "r368" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table]" } } }, "localname": "DisaggregationOfRevenueTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "auth_ref": [ "r358" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table Text Block]", "terseLabel": "Summary of revenue performance obligations" } } }, "localname": "DisaggregationOfRevenueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "auth_ref": [ "r509" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for share-based payment arrangement.", "label": "Disclosure of Compensation Related Costs, Share-based Payments [Text Block]", "verboseLabel": "SHARE-BASED COMPENSATION" } } }, "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensation" ], "xbrltype": "textBlockItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "NET INCOME PER SHARE [Abstract]" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r93", "r148", "r149", "r151", "r152", "r153", "r159", "r161", "r163", "r164", "r165", "r169", "r170", "r599", "r600", "r734", "r755" ], "calculation": { "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails": { "order": 0.0, "parentTag": "us-gaap_EarningsPerShareDiluted", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Earnings Per Share, Basic", "netLabel": "Net income per share - Basic (in usd per share)", "terseLabel": "Per Share Amount, Basic (in usd per share)", "verboseLabel": "Net income (loss) per share - Basic (in usd per share)" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations", "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareBasicAndDiluted": { "auth_ref": [ "r164" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income or loss for the period per each share in instances when basic and diluted earnings per share are the same amount and reported as a single line item on the face of the financial statements. Basic earnings per share is the amount of net income or loss for the period per each share of common stock or unit outstanding during the reporting period. Diluted earnings per share includes the amount of net income or loss for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Earnings Per Share, Basic and Diluted", "terseLabel": "Income per share" } } }, "localname": "EarningsPerShareBasicAndDiluted", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r93", "r148", "r149", "r151", "r152", "r153", "r161", "r163", "r164", "r165", "r169", "r170", "r599", "r600", "r734", "r755" ], "calculation": { "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Earnings Per Share, Diluted", "netLabel": "Net income per share - Diluted (in usd per share)", "totalLabel": "Per Share Amount, Dilutive (in usd per share)", "verboseLabel": "Net income (loss) per share - Diluted (in usd per share)" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations", "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerSharePolicyTextBlock": { "auth_ref": [ "r166", "r167" ], "lang": { "en-us": { "role": { "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.", "label": "Earnings Per Share, Policy [Policy Text Block]", "terseLabel": "Net Income Per Share" } } }, "localname": "EarningsPerSharePolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r166", "r167", "r168", "r171" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "Earnings Per Share [Text Block]", "verboseLabel": "NET INCOME PER SHARE" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureNetIncomePerShare" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectOfExchangeRateOnCashAndCashEquivalents": { "auth_ref": [ "r626" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from the effect of exchange rate changes on cash and cash equivalent balances held in foreign currencies.", "label": "Effect of Exchange Rate on Cash and Cash Equivalents", "verboseLabel": "Effects of exchange rate changes on cash and cash equivalents" } } }, "localname": "EffectOfExchangeRateOnCashAndCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "auth_ref": [ "r517" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "lang": { "en-us": { "role": { "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Effective Income Tax Rate Reconciliation, Percent", "totalLabel": "Effective tax rate (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": { "auth_ref": [ "r125", "r517", "r548" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 0.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).", "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent", "verboseLabel": "Federal statutory rate (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance": { "auth_ref": [ "r517", "r548" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 11.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the valuation allowance for deferred tax assets.", "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent", "terseLabel": "Valuation allowance (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential": { "auth_ref": [ "r517", "r548" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 8.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to statutory income tax expense (benefit) outside of the country of domicile.", "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent", "terseLabel": "Foreign rate difference (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost": { "auth_ref": [ "r517", "r548" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 5.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for share-based payment arrangement.", "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-based Compensation Cost, Percent", "terseLabel": "Share-based compensation (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments": { "auth_ref": [ "r517", "r548" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 13.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.", "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Percent", "terseLabel": "Other, net (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationOtherAdjustments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount": { "auth_ref": [ "r508", "r517" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.", "label": "Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-based Payment Arrangement, Amount", "terseLabel": "Effective tax rate reconciliation, Excess tax expenses (benefits) from employee stock option exercises and vesting of restricted stock units and restricted shares, Amount" } } }, "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes": { "auth_ref": [ "r517", "r548" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 1.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to state and local income tax expense (benefit), net of federal tax expense (benefit).", "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent", "terseLabel": "State income taxes, net of federal benefit (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsForeign": { "auth_ref": [ "r517", "r548" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 7.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": -1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign tax credit.", "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Foreign, Percent", "negatedLabel": "Foreign tax credit (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationTaxCreditsForeign", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch": { "auth_ref": [ "r517", "r548" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails": { "order": 6.0, "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "weight": -1.0 } }, "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to research tax credit.", "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Research, Percent", "negatedLabel": "Research and experimentation (R&D) credit (as a percent)" } } }, "localname": "EffectiveIncomeTaxRateReconciliationTaxCreditsResearch", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfReconciliationOfStatutoryRateToEffectiveIncomeTaxRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectsOnFutureEarningsAndCashFlowsByTypeOfEffectDomain": { "auth_ref": [ "r296" ], "lang": { "en-us": { "role": { "documentation": "Identification of the types of effects on future earnings and cash flows.", "label": "Effects on Future Earnings and Cash Flows, by Type of Effect [Domain]" } } }, "localname": "EffectsOnFutureEarningsAndCashFlowsByTypeOfEffectDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EffectsOnFutureEarningsAndCashFlowsResultingFromExitPlanAxis": { "auth_ref": [ "r296" ], "lang": { "en-us": { "role": { "documentation": "Information by effect on future earnings and cash flows resulting from an exit plan.", "label": "Effects on Future Earnings and Cash Flows Resulting from Exit Plan [Axis]" } } }, "localname": "EffectsOnFutureEarningsAndCashFlowsResultingFromExitPlanAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EffectsOnFutureEarningsAndCashFlowsResultingFromExitPlanLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Effects on Future Earnings and Cash Flows Resulting from Exit Plan [Line Items]", "terseLabel": "Effects on Future Earnings and Cash Flows Resulting from Exit Plan [Line Items]" } } }, "localname": "EffectsOnFutureEarningsAndCashFlowsResultingFromExitPlanLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "auth_ref": [ "r54" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails": { "order": 0.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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).", "label": "Employee-related Liabilities, Current", "terseLabel": "Wages and benefits" } } }, "localname": "EmployeeRelatedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "auth_ref": [ "r484" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.", "label": "Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized", "terseLabel": "Unrecognized compensation cost related to non-vested equity based compensation" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "auth_ref": [ "r484" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, Period for Recognition", "terseLabel": "Unrecognized equity based compensation weighted average period (in years)" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": { "auth_ref": [ "r483" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement.", "label": "Employee Service Share-based Compensation, Tax Benefit from Compensation Expense", "terseLabel": "Income tax benefits related to share-based compensation", "verboseLabel": "Tax benefit from the exercise of stock options and vesting of share based payments" } } }, "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationSummaryOfPretaxEquityBasedCompensationExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions": { "auth_ref": [ "r486" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of tax benefit from exercise of option under share-based payment arrangement.", "label": "Employee Service Share-based Compensation, Tax Benefit from Exercise of Stock Options", "terseLabel": "Excess tax benefit from the exercise of stock options" } } }, "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeStockMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "An Employee Stock Purchase Plan is a tax-efficient means by which employees of a corporation can purchase the corporation's stock.", "label": "Employee Stock [Member]", "terseLabel": "Employee Stock Purchase Plan [Member]" } } }, "localname": "EmployeeStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EmployeeStockOptionMember": { "auth_ref": [ "r482" ], "lang": { "en-us": { "role": { "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.", "label": "Employee Stock Option [Member]", "terseLabel": "Stock Options [Member]" } } }, "localname": "EmployeeStockOptionMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tangible personal property used to produce goods and services.", "label": "Equipment [Member]", "terseLabel": "Equipment [Member]" } } }, "localname": "EquipmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "SHARE REPURCHASES [Abstract]" } } }, "localname": "EquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r2", "r84", "r85", "r86", "r139", "r140", "r141", "r144", "r154", "r157", "r176", "r246", "r344", "r345", "r491", "r492", "r493", "r540", "r541", "r598", "r627", "r628", "r629", "r630", "r631", "r633", "r767", "r768", "r769", "r837" ], "lang": { "en-us": { "role": { "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.", "label": "Equity Component [Domain]", "terseLabel": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity", "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquitySecuritiesFvNiUnrealizedGainLoss": { "auth_ref": [ "r241", "r756" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 15.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of unrealized gain (loss) on investment in equity security measured at fair value with change in fair value recognized in net income (FV-NI).", "label": "Equity Securities, FV-NI, Unrealized Gain (Loss)", "negatedLabel": "Unrealized (gain) loss on available for sale equity security" } } }, "localname": "EquitySecuritiesFvNiUnrealizedGainLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_EquitySecuritiesMember": { "auth_ref": [ "r21", "r24", "r237", "r743", "r792", "r793", "r794" ], "lang": { "en-us": { "role": { "documentation": "Ownership interest or right to acquire or dispose of ownership interest in corporations and other legal entities for which ownership interest is represented by shares of common or preferred stock, convertible securities, stock rights, or stock warrants.", "label": "Equity Securities [Member]", "terseLabel": "Equity Security [Member]" } } }, "localname": "EquitySecuritiesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails", "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ExtendedProductWarrantyAccrual": { "auth_ref": [ "r316" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount as of the balance sheet date of the aggregate extended product warranty liability. Does not include the ending balance for the standard product warranty liability.", "label": "Extended Product Warranty Accrual", "periodEndLabel": "Total deferred warranty revenue", "periodStartLabel": "Balance at beginning of period" } } }, "localname": "ExtendedProductWarrantyAccrual", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ExtendedProductWarrantyAccrualCurrent": { "auth_ref": [ "r54" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails": { "order": 0.0, "parentTag": "us-gaap_ExtendedProductWarrantyAccrual", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount at end of the reporting period of the aggregate extended product warranty liability that is expected to be paid within one year of the balance sheet date or normal operating cycle, if longer. Does not include the balance for the standard product warranty liability.", "label": "Extended Product Warranty Accrual, Current", "negatedTerseLabel": "Current portion of deferred warranty revenue" } } }, "localname": "ExtendedProductWarrantyAccrualCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ExtendedProductWarrantyAccrualNoncurrent": { "auth_ref": [ "r56" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails": { "order": 1.0, "parentTag": "us-gaap_ExtendedProductWarrantyAccrual", "weight": 1.0 }, "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_OtherLiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount at end of the reporting period of the aggregate extended product warranty liability that is expected to be paid after one year from the balance sheet date or normal operating cycle, if longer. Does not include the balance for the standard product warranty liability.", "label": "Extended Product Warranty Accrual, Noncurrent", "terseLabel": "Long-term deferred warranty revenue", "verboseLabel": "Deferred warranty revenue" } } }, "localname": "ExtendedProductWarrantyAccrualNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued": { "auth_ref": [ "r317" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in the extended product warranty accrual from warranties issued. Excludes standard product warranties.", "label": "Extended Product Warranty Accrual, Increase for Warranties Issued", "terseLabel": "Revenue deferrals" } } }, "localname": "ExtendedProductWarrantyAccrualWarrantiesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ExtraordinaryAndUnusualItemsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "COVID-19 PANDEMIC" } } }, "localname": "ExtraordinaryAndUnusualItemsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]", "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": { "auth_ref": [ "r602", "r603", "r604", "r606" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis.", "label": "Fair Value Measurements, Recurring and Nonrecurring [Table]", "terseLabel": "Fair Value Measurements, Recurring and Nonrecurring [Table]" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": { "auth_ref": [ "r602", "r603" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).", "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]", "verboseLabel": "Fair Value Measurements for Marketable Securities and Foreign Exchange Forward Contracts" } } }, "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "auth_ref": [ "r336", "r338", "r339", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r435", "r603", "r672", "r673", "r674" ], "lang": { "en-us": { "role": { "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.", "label": "Fair Value, Hierarchy [Axis]", "terseLabel": "Fair Value, Hierarchy [Axis]" } } }, "localname": "FairValueByFairValueHierarchyLevelAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "FAIR VALUE MEASUREMENTS [Abstract]" } } }, "localname": "FairValueDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresTextBlock": { "auth_ref": [ "r605" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.", "label": "Fair Value Disclosures [Text Block]", "verboseLabel": "FAIR VALUE MEASUREMENTS" } } }, "localname": "FairValueDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurements" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueInputsLevel1Member": { "auth_ref": [ "r336", "r396", "r397", "r402", "r435", "r603", "r672" ], "lang": { "en-us": { "role": { "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.", "label": "Fair Value, Inputs, Level 1 [Member]", "terseLabel": "Quoted Prices In Active Markets For Identical Assets (Level 1) [Member]" } } }, "localname": "FairValueInputsLevel1Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel2Member": { "auth_ref": [ "r336", "r338", "r339", "r396", "r397", "r402", "r435", "r603", "r673" ], "lang": { "en-us": { "role": { "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets.", "label": "Fair Value, Inputs, Level 2 [Member]", "terseLabel": "Significant Other Observable Inputs (Level 2) [Member]" } } }, "localname": "FairValueInputsLevel2Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel3Member": { "auth_ref": [ "r336", "r338", "r339", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r435", "r603", "r674" ], "lang": { "en-us": { "role": { "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Inputs, Level 3 [Member]", "terseLabel": "Significant Unobservable Inputs (Level 3) [Member]" } } }, "localname": "FairValueInputsLevel3Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "auth_ref": [ "r336", "r338", "r339", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r435", "r672", "r673", "r674" ], "lang": { "en-us": { "role": { "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.", "label": "Fair Value Hierarchy [Domain]", "terseLabel": "Fair Value, Measurements, Fair Value Hierarchy [Domain]" } } }, "localname": "FairValueMeasurementsFairValueHierarchyDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueOfFinancialInstrumentsPolicy": { "auth_ref": [ "r607", "r608" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments.", "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]", "terseLabel": "Fair Value of Financial Instruments" } } }, "localname": "FairValueOfFinancialInstrumentsPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_FinancialInstrumentAxis": { "auth_ref": [ "r230", "r231", "r238", "r239", "r240", "r250", "r252", "r253", "r254", "r255", "r256", "r257", "r258", "r259", "r337", "r343", "r589", "r669", "r670", "r671", "r672", "r673", "r674", "r675", "r676", "r677", "r678", "r679", "r680", "r681", "r682", "r683", "r684", "r685", "r686", "r687", "r688", "r689", "r690", "r691", "r692", "r693", "r694", "r695", "r696", "r697", "r698", "r824", "r825", "r826", "r827", "r828", "r829", "r830" ], "lang": { "en-us": { "role": { "documentation": "Information by type of financial instrument.", "label": "Financial Instrument [Axis]" } } }, "localname": "FinancialInstrumentAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails", "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails", "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesClassifiedAsCashEquivalentsDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "auth_ref": [ "r283" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails": { "order": 0.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "negatedLabel": "Accumulated Amortization" } } }, "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "auth_ref": [ "r285" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Assets, Amortization Expense, Next Twelve Months", "terseLabel": "Amortization expense, 2022" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of amortization expense of assets, excluding financial assets, that lack physical substance, having a limited useful life.", "label": "Finite-lived Intangible Assets Amortization Expense [Table Text Block]", "terseLabel": "Schedule of Amortization Expense for Intangible Assets" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": { "auth_ref": [ "r285" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Five", "terseLabel": "Amortization expense, 2026" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "auth_ref": [ "r285" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Four", "terseLabel": "Amortization expense, 2025" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "auth_ref": [ "r285" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Three", "terseLabel": "Amortization expense, 2024" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "auth_ref": [ "r285" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Two", "terseLabel": "Amortization expense, 2023" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r277", "r279", "r283", "r286", "r704", "r708" ], "lang": { "en-us": { "role": { "documentation": "Information by major type or class of finite-lived intangible assets.", "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]" } } }, "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "auth_ref": [ "r283", "r708" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Gross Carrying Amount" } } }, "localname": "FiniteLivedIntangibleAssetsGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Finite-Lived Intangible Assets [Line Items]", "terseLabel": "Finite-Lived Intangible Assets [Line Items]" } } }, "localname": "FiniteLivedIntangibleAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r277", "r282" ], "lang": { "en-us": { "role": { "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.", "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "auth_ref": [ "r283", "r704" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Net", "terseLabel": "Backlog amount", "totalLabel": "Net" } } }, "localname": "FiniteLivedIntangibleAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignCurrencyCashFlowHedgeGainLossReclassifiedToEarningsNet": { "auth_ref": [ "r580" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of net gains or losses on foreign currency cash flow hedges reclassified during the period to earnings from accumulated other comprehensive income upon the hedged transaction affecting earnings.", "label": "Foreign Currency Cash Flow Hedge Gain (Loss) Reclassified to Earnings, Net", "negativeTerseLabel": "After tax net unrealized loss recorded in accumulated other comprehensive loss reclassified to earnings" } } }, "localname": "ForeignCurrencyCashFlowHedgeGainLossReclassifiedToEarningsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Fair value portion of liability contracts related to the exchange of different currencies, including, but not limited to, foreign currency options, forward (delivery or nondelivery) contracts, and swaps entered into.", "label": "Foreign Currency Contracts, Liability, Fair Value Disclosure", "terseLabel": "Foreign exchange forward contracts, liability", "verboseLabel": "Derivative instruments-liabilities: Foreign exchange forward contracts" } } }, "localname": "ForeignCurrencyContractsLiabilityFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesNarrativeDetails", "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails", "http://cyberoptics.com/role/FairValueMeasurementsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": { "auth_ref": [ "r622", "r623", "r624", "r625" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.", "label": "Foreign Currency Transaction Gain (Loss), before Tax", "terseLabel": "Recognized foreign currency transactions gain (loss)" } } }, "localname": "ForeignCurrencyTransactionGainLossBeforeTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignCurrencyTransactionGainLossRealized": { "auth_ref": [ "r624", "r625" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 14.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of foreign currency transaction realized gain (loss) recognized in the income statement.", "label": "Foreign Currency Transaction Gain (Loss), Realized", "negatedLabel": "Foreign currency transaction gains", "terseLabel": "Recognized foreign currency transactions gain (loss)" } } }, "localname": "ForeignCurrencyTransactionGainLossRealized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": { "auth_ref": [ "r634" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.", "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]", "terseLabel": "Foreign Currency Translation And Transactions" } } }, "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ForeignEarningsRepatriated": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of foreign earnings repatriated from subsidiaries outside the country of domicile.", "label": "Foreign Earnings Repatriated", "terseLabel": "Foreign earnings repatriated" } } }, "localname": "ForeignEarningsRepatriated", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GeographicConcentrationRiskMember": { "auth_ref": [ "r183", "r797" ], "lang": { "en-us": { "role": { "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).", "label": "Geographic Concentration Risk [Member]" } } }, "localname": "GeographicConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r268", "r270", "r668", "r722" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill", "terseLabel": "Goodwill", "verboseLabel": "Goodwill" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "GOODWILL [Abstract]" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": { "auth_ref": [ "r272" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.", "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]", "terseLabel": "Goodwill" } } }, "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy": { "auth_ref": [ "r280" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for intangible assets. This accounting policy may address both intangible assets subject to amortization and those that are not. The following also may be disclosed: (1) a description of intangible assets (2) the estimated useful lives of those assets (3) the amortization method used (4) how the entity assesses and measures impairment of such assets (5) how future cash flows are estimated (6) how the fair values of such asset are determined.", "label": "Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]", "terseLabel": "Long Lived Assets" } } }, "localname": "GoodwillAndIntangibleAssetsIntangibleAssetsPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillDisclosureTextBlock": { "auth_ref": [ "r274" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for goodwill.", "label": "Goodwill Disclosure [Text Block]", "verboseLabel": "GOODWILL" } } }, "localname": "GoodwillDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Goodwill" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillImpairmentLoss": { "auth_ref": [ "r113", "r269", "r271", "r273" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Impairment Loss", "terseLabel": "Goodwill impairment" } } }, "localname": "GoodwillImpairmentLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r97", "r122", "r195", "r203", "r206", "r209", "r211", "r242", "r321", "r322", "r323", "r326", "r327", "r328", "r329", "r330", "r332", "r333", "r612" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": 0.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", "label": "Gross Profit", "terseLabel": "Gross margin", "totalLabel": "Gross margin" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncentiveToLessee": { "auth_ref": [ "r638", "r639", "r644" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of incentive granted by lessor to lessee.", "label": "Incentive to Lessee", "terseLabel": "Incentives from landlord recorded as leasehold improvements" } } }, "localname": "IncentiveToLessee", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": { "auth_ref": [ "r124", "r547" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfIncomeBeforeIncomeTaxesDetails": { "order": 0.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Domestic", "terseLabel": "Sources of income (loss) before income taxes: United States" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfIncomeBeforeIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r89", "r195", "r203", "r206", "r209", "r211", "r721", "r730", "r735", "r757" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": 0.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 }, "http://cyberoptics.com/role/IncomeTaxesScheduleOfIncomeBeforeIncomeTaxesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "totalLabel": "Total income before income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations", "http://cyberoptics.com/role/IncomeTaxesScheduleOfIncomeBeforeIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": { "auth_ref": [ "r124", "r547" ], "calculation": { "http://cyberoptics.com/role/IncomeTaxesScheduleOfIncomeBeforeIncomeTaxesDetails": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Foreign", "terseLabel": "Sources of income (loss) before income taxes: Foreign" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesScheduleOfIncomeBeforeIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF OPERATIONS [Abstract]" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationAxis": { "auth_ref": [ "r294", "r295" ], "lang": { "en-us": { "role": { "documentation": "Information by location in the income statement.", "label": "Income Statement Location [Axis]", "terseLabel": "Income Statement Location [Axis]" } } }, "localname": "IncomeStatementLocationAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesScheduleOfCashFlowHedgesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationDomain": { "auth_ref": [ "r295" ], "lang": { "en-us": { "role": { "documentation": "Location in the income statement.", "label": "Income Statement Location [Domain]", "terseLabel": "Income Statement Location [Domain]" } } }, "localname": "IncomeStatementLocationDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesScheduleOfCashFlowHedgesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "INCOME TAXES [Abstract]" } } }, "localname": "IncomeTaxDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r125", "r518", "r525", "r530", "r542", "r549", "r553", "r554", "r555" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.", "label": "Income Tax Disclosure [Text Block]", "verboseLabel": "INCOME TAXES" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxes" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r126", "r156", "r157", "r194", "r516", "r543", "r551", "r758" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 }, "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Income Tax Expense (Benefit)", "totalLabel": "Total provision for income taxes", "verboseLabel": "Income tax provision" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations", "http://cyberoptics.com/role/IncomeTaxesScheduleOfProvisionBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxesPaidNet": { "auth_ref": [ "r117" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.", "label": "Income Taxes Paid, Net", "terseLabel": "Cash payments for income taxes, net of refunds received" } } }, "localname": "IncomeTaxesPaidNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "auth_ref": [ "r112" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.", "label": "Increase (Decrease) in Accounts Payable", "verboseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r112" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Accounts and trade notes receivable" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "auth_ref": [ "r112" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.", "label": "Increase (Decrease) in Accrued Liabilities", "verboseLabel": "Accrued expenses" } } }, "localname": "IncreaseDecreaseInAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "auth_ref": [ "r112", "r700" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "Increase (Decrease) in Contract with Customer, Liability", "terseLabel": "Advance customer payments and other" } } }, "localname": "IncreaseDecreaseInContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInCustomerAdvances": { "auth_ref": [ "r112" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the amount of prepayments by customers for goods or services to be provided at a later date.", "label": "Increase (Decrease) in Customer Advances", "verboseLabel": "Advance customer payments" } } }, "localname": "IncreaseDecreaseInCustomerAdvances", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r112" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", "label": "Increase (Decrease) in Inventories", "negatedLabel": "Inventories" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "verboseLabel": "Changes in operating assets and liabilities:" } } }, "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": { "auth_ref": [ "r112" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 12.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in operating liabilities classified as other.", "label": "Increase (Decrease) in Other Operating Liabilities", "terseLabel": "Operating lease liabilities" } } }, "localname": "IncreaseDecreaseInOtherOperatingLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "auth_ref": [ "r112" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.", "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "negatedLabel": "Prepaid expenses and other assets" } } }, "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]", "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]" } } }, "localname": "IncreaseDecreaseInStockholdersEquityRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis": { "auth_ref": [ "r369" ], "lang": { "en-us": { "role": { "documentation": "Information about effect of transition method for cumulative effect in initial period of application.", "label": "Initial Application Period Cumulative Effect Transition [Axis]" } } }, "localname": "InitialApplicationPeriodCumulativeEffectTransitionAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain": { "auth_ref": [ "r369" ], "lang": { "en-us": { "role": { "documentation": "Effect of transition method for cumulative effect in initial period of application.", "label": "Initial Application Period Cumulative Effect Transition [Domain]" } } }, "localname": "InitialApplicationPeriodCumulativeEffectTransitionDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "auth_ref": [ "r275", "r281" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.", "label": "Intangible Assets, Net (Excluding Goodwill)", "verboseLabel": "Intangibles, net" } } }, "localname": "IntangibleAssetsNetExcludingGoodwill", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryFinishedGoods": { "auth_ref": [ "r59" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails": { "order": 2.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer.", "label": "Inventory, Finished Goods, Gross", "terseLabel": "Finished goods" } } }, "localname": "InventoryFinishedGoods", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNet": { "auth_ref": [ "r8", "r61", "r668" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 }, "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Inventory, Net", "totalLabel": "Total inventories", "verboseLabel": "Inventories" } } }, "localname": "InventoryNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryPolicyTextBlock": { "auth_ref": [ "r19", "r62", "r119", "r172", "r260", "r262", "r264", "r701" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.", "label": "Inventory, Policy [Policy Text Block]", "terseLabel": "Inventories" } } }, "localname": "InventoryPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryRawMaterialsAndPurchasedPartsNetOfReserves": { "auth_ref": [ "r41", "r263" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails": { "order": 0.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of items purchased for use as components of a finished product or pieces of machinery and equipment plus any items in their natural and unrefined state. This element may be used when the reporting entity combines raw materials and purchased parts into an aggregate amount.", "label": "Inventory, Raw Materials and Purchased Parts, Net of Reserves", "terseLabel": "Raw materials and purchased parts" } } }, "localname": "InventoryRawMaterialsAndPurchasedPartsNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryValuationReserveMember": { "auth_ref": [ "r131", "r132", "r133", "r135", "r136" ], "lang": { "en-us": { "role": { "documentation": "Reserve to reduce inventory to lower of cost or net realizable value.", "label": "Inventory Valuation Reserve [Member]", "terseLabel": "Allowance for obsolete inventory" } } }, "localname": "InventoryValuationReserveMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "domainItemType" }, "us-gaap_InventoryWorkInProcess": { "auth_ref": [ "r60" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails": { "order": 1.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer.", "label": "Inventory, Work in Process, Gross", "terseLabel": "Work in process" } } }, "localname": "InventoryWorkInProcess", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWriteDown": { "auth_ref": [ "r261" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of loss from reductions in inventory due to subsequent measurement adjustments, including, but not limited to, physical deterioration, obsolescence, or changes in price levels.", "label": "Inventory Write-down", "terseLabel": "Inventory write down" } } }, "localname": "InventoryWriteDown", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InvestmentTypeAxis": { "auth_ref": [ "r780", "r781", "r782", "r783", "r784", "r785", "r786", "r787", "r788", "r789", "r790", "r791", "r792", "r793", "r794" ], "lang": { "en-us": { "role": { "documentation": "Information by type of investments.", "label": "Investment Type [Axis]" } } }, "localname": "InvestmentTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_InvestmentTypeCategorizationMember": { "auth_ref": [ "r780", "r781", "r782", "r783", "r784", "r785", "r786", "r787", "r788", "r789", "r790", "r791", "r792", "r793", "r794" ], "lang": { "en-us": { "role": { "documentation": "Asset obtained to generate income or appreciate in value.", "label": "Investments [Domain]" } } }, "localname": "InvestmentTypeCategorizationMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_InvestmentsFairValueDisclosure": { "auth_ref": [ "r602" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value portion of investment securities, including, but not limited to, marketable securities, derivative financial instruments, and investments accounted for under the equity method.", "label": "Investments, Fair Value Disclosure", "terseLabel": "Marketable securities" } } }, "localname": "InvestmentsFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseAndRentalExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of rent expense incurred for leased assets, including but not limited to, furniture and equipment, that is not directly or indirectly associated with the manufacture, sale or creation of a product or product line.", "label": "Operating Leases, Rent Expense", "terseLabel": "Rent expense" } } }, "localname": "LeaseAndRentalExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCost": { "auth_ref": [ "r658", "r659" ], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lease cost recognized by lessee for lease contract.", "label": "Lease, Cost", "totalLabel": "Total" } } }, "localname": "LeaseCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCostTableTextBlock": { "auth_ref": [ "r658" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.", "label": "Lease, Cost [Table Text Block]", "terseLabel": "Schedule of components of our costs for operating leases" } } }, "localname": "LeaseCostTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeaseholdImprovementsMember": { "auth_ref": [ "r291" ], "lang": { "en-us": { "role": { "documentation": "Additions or improvements to assets held under a lease arrangement.", "label": "Leasehold Improvements [Member]", "terseLabel": "Leasehold Improvements [Member]" } } }, "localname": "LeaseholdImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LeasesOfLesseeDisclosureTextBlock": { "auth_ref": [ "r643" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for lessee entity's leasing arrangements including, but not limited to, all of the following: (a.) The basis on which contingent rental payments are determined, (b.) The existence and terms of renewal or purchase options and escalation clauses, (c.) Restrictions imposed by lease agreements, such as those concerning dividends, additional debt, and further leasing.", "label": "Leases of Lessee Disclosure [Text Block]", "terseLabel": "OPERATING LEASES" } } }, "localname": "LeasesOfLesseeDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeases" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeasesOperatingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "OPERATING LEASES [Abstract]" } } }, "localname": "LeasesOperatingAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_LesseeLeasesPolicyTextBlock": { "auth_ref": [ "r650" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.", "label": "Lessee, Leases [Policy Text Block]", "terseLabel": "Operating Leases" } } }, "localname": "LesseeLeasesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseRenewalTerm": { "auth_ref": [ "r651" ], "lang": { "en-us": { "role": { "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessee, Operating Lease, Renewal Term", "terseLabel": "Renewal options, term (in years)" } } }, "localname": "LesseeOperatingLeaseRenewalTerm", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_LesseeOperatingLeaseTermOfContract": { "auth_ref": [ "r651" ], "lang": { "en-us": { "role": { "documentation": "Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessee, Operating Lease, Term of Contract", "terseLabel": "Period for recognizing rental expense (in months)" } } }, "localname": "LesseeOperatingLeaseTermOfContract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_LessorOperatingLeaseRenewalTerm": { "auth_ref": [ "r661" ], "lang": { "en-us": { "role": { "documentation": "Term of lessor's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessor, Operating Lease, Renewal Term", "terseLabel": "Lease extension period (in years)" } } }, "localname": "LessorOperatingLeaseRenewalTerm", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r52", "r122", "r205", "r242", "r321", "r322", "r323", "r326", "r327", "r328", "r329", "r330", "r332", "r333", "r565", "r569", "r570", "r612", "r666", "r667" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 0.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.", "label": "Liabilities", "totalLabel": "Total liabilities" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r38", "r122", "r242", "r612", "r668", "r726", "r748" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders\u2019 equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "verboseLabel": "LIABILITIES AND STOCKHOLDERS\u2019 EQUITY" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r55", "r122", "r242", "r321", "r322", "r323", "r326", "r327", "r328", "r329", "r330", "r332", "r333", "r565", "r569", "r570", "r612", "r666", "r667", "r668" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 0.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "Liabilities, Current", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongLivedAssetsByGeographicAreasTableTextBlock": { "auth_ref": [ "r216" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of long-lived assets, excluding financial instruments, long-term customer relationships of a financial institution, mortgage rights, deferred policy acquisition costs, and deferred tax assets, by geographic areas located in the entity's country of domicile and foreign countries in which the entity holds assets.", "label": "Long-lived Assets by Geographic Areas [Table Text Block]", "terseLabel": "Schedule Of Long-lived Assets Attributable To Each Geographic Area's Operations" } } }, "localname": "LongLivedAssetsByGeographicAreasTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_MarketableSecuritiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "MARKETABLE SECURITIES [Abstract]" } } }, "localname": "MarketableSecuritiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_MarketableSecuritiesCurrent": { "auth_ref": [ "r10", "r53" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investment in marketable security, classified as current.", "label": "Marketable Securities, Current", "verboseLabel": "Marketable securities" } } }, "localname": "MarketableSecuritiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_MarketableSecuritiesNoncurrent": { "auth_ref": [ "r45" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investment in marketable security, classified as noncurrent.", "label": "Marketable Securities, Noncurrent", "terseLabel": "Marketable securities, long-term" } } }, "localname": "MarketableSecuritiesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_MarketableSecuritiesPolicy": { "auth_ref": [ "r739" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for investment classified as marketable security.", "label": "Marketable Securities, Policy [Policy Text Block]", "terseLabel": "Marketable Securities" } } }, "localname": "MarketableSecuritiesPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_MarketableSecuritiesUnrealizedGainLoss": { "auth_ref": [ "r95" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of unrealized gain (loss) on investment in marketable security.", "label": "Marketable Securities, Unrealized Gain (Loss)", "terseLabel": "Unrealized gains or losses on marketable securities" } } }, "localname": "MarketableSecuritiesUnrealizedGainLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Maximum amount of time remaining before foreign currency exchange rate derivatives mature or expire, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Maximum Remaining Maturity of Foreign Currency Derivatives", "terseLabel": "Maximum length of time to hedge (in months)" } } }, "localname": "MaximumRemainingMaturityOfForeignCurrencyDerivatives1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_MovementInExtendedProductWarrantyAccrualRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Movement in Extended Product Warranty Accrual [Roll Forward]", "terseLabel": "Movement in Extended Product Warranty Accrual [Roll Forward]" } } }, "localname": "MovementInExtendedProductWarrantyAccrualRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInDeferredWarrantyRevenueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_MovementInStandardProductWarrantyAccrualRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Movement in Standard Product Warranty Accrual [Roll Forward]", "terseLabel": "Movement in Standard Product Warranty Accrual [Roll Forward]" } } }, "localname": "MovementInStandardProductWarrantyAccrualRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_MovementInValuationAllowancesAndReservesRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]" } } }, "localname": "MovementInValuationAllowancesAndReservesRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r110" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net cash used in financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities, Continuing Operations [Abstract]", "terseLabel": "CASH FLOWS FROM FINANCING ACTIVITIES:" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r110" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.", "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities, Continuing Operations [Abstract]", "terseLabel": "CASH FLOWS FROM INVESTING ACTIVITIES:" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r110", "r111", "r114" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 0.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "Net Cash Provided by (Used in) Operating Activities, Continuing Operations", "totalLabel": "Net cash provided by operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities, Continuing Operations [Abstract]", "terseLabel": "CASH FLOWS FROM OPERATING ACTIVITIES:" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r5", "r78", "r81", "r86", "r90", "r114", "r122", "r143", "r148", "r149", "r151", "r152", "r156", "r157", "r162", "r195", "r203", "r206", "r209", "r211", "r242", "r321", "r322", "r323", "r326", "r327", "r328", "r329", "r330", "r332", "r333", "r600", "r612", "r731", "r752" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 0.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 0.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.", "label": "Net Income (Loss) Attributable to Parent", "netLabel": "Net income", "terseLabel": "Net income", "totalLabel": "Net income", "verboseLabel": "Net income (loss)" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows", "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations", "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity", "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails", "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "New Accounting Pronouncements or Change in Accounting Principle [Line Items]", "terseLabel": "New Accounting Pronouncements or Change in Accounting Principle [Line Items]" } } }, "localname": "NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "stringItemType" }, "us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable": { "auth_ref": [ "r0", "r1", "r2", "r3", "r4", "r142", "r143", "r144", "r145", "r146", "r147", "r151", "r158", "r169", "r224", "r225", "r243", "r244", "r245", "r246", "r247", "r248", "r320", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r494", "r538", "r539", "r540", "r541", "r590", "r591", "r592", "r593", "r594", "r595", "r596", "r597", "r598", "r599", "r600", "r614", "r615", "r616", "r617", "r618", "r619", "r620", "r621", "r662", "r705", "r706", "r707", "r765", "r766", "r767", "r768", "r769", "r770", "r771", "r772", "r773", "r774", "r775", "r776", "r833", "r834", "r835", "r836", "r837" ], "lang": { "en-us": { "role": { "documentation": "Summarization of the changes in an accounting principle or a new accounting pronouncement, including the line items affected by the change and the financial effects of the change on those particular line items.", "label": "New Accounting Pronouncements or Change in Accounting Principle [Table]" } } }, "localname": "NewAccountingPronouncementsOrChangeInAccountingPrincipleTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "stringItemType" }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "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.", "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "terseLabel": "Recent Accounting Developments" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NonUsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Countries excluding the United States of America (US).", "label": "Non-US [Member]" } } }, "localname": "NonUsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NoncompeteAgreementsMember": { "auth_ref": [ "r558" ], "lang": { "en-us": { "role": { "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.", "label": "Noncompete Agreements [Member]", "terseLabel": "Non-compete Agreements [Member]" } } }, "localname": "NoncompeteAgreementsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NoncurrentAssets": { "auth_ref": [ "r214" ], "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Long-Lived Assets", "terseLabel": "Total long-lived assets" } } }, "localname": "NoncurrentAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_NonoperatingIncomeExpense": { "auth_ref": [ "r100" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": 4.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", "label": "Nonoperating Income (Expense)", "terseLabel": "Interest income and other, net" } } }, "localname": "NonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_NumberOfForeignCurrencyDerivativesHeld": { "auth_ref": [ "r573", "r575" ], "lang": { "en-us": { "role": { "documentation": "Number of foreign currency exchange rate derivatives held by the entity at the reporting date.", "label": "Number of Foreign Currency Derivatives Held", "terseLabel": "Number of open foreign exchange forward contracts" } } }, "localname": "NumberOfForeignCurrencyDerivativesHeld", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesNarrativeDetails" ], "xbrltype": "integerItemType" }, "us-gaap_NumberOfReportingUnits": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of reporting units tested for impairment of goodwill. A reporting unit is an operating segment or one level below an operating segment.", "label": "Number of Reporting Units", "terseLabel": "Number of reporting units" } } }, "localname": "NumberOfReportingUnits", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "integerItemType" }, "us-gaap_OperatingExpenses": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.", "label": "Operating Expenses", "terseLabel": "Operating expenses" } } }, "localname": "OperatingExpenses", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r195", "r203", "r206", "r209", "r211" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "Operating Income (Loss)", "terseLabel": "Income (loss) from operations", "totalLabel": "Income from operations" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseCost": { "auth_ref": [ "r652", "r659" ], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails": { "order": 0.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.", "label": "Operating Lease, Cost", "terseLabel": "Operating lease cost" } } }, "localname": "OperatingLeaseCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseExpense": { "auth_ref": [ "r648" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of operating lease expense. Excludes sublease income.", "label": "Operating Lease, Expense", "terseLabel": "Non-cash operating lease expense" } } }, "localname": "OperatingLeaseExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiability": { "auth_ref": [ "r647" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.", "label": "Operating Lease, Liability", "terseLabel": "Lease liability" } } }, "localname": "OperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r647" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", "label": "Operating Lease, Liability, Current", "terseLabel": "Current operating lease liabilities" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r647" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Long-term operating lease liabilities" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasePayments": { "auth_ref": [ "r649", "r655" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.", "label": "Operating Lease, Payments", "terseLabel": "Cash paid for amounts included in the measurement of operating lease liabilities" } } }, "localname": "OperatingLeasePayments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r646" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's right to use underlying asset under operating lease.", "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "Right-of-use asset", "verboseLabel": "Right-of-use assets (operating leases)" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r657", "r659" ], "lang": { "en-us": { "role": { "documentation": "Weighted average discount rate for operating lease calculated at point in time.", "label": "Operating Lease, Weighted Average Discount Rate, Percent", "terseLabel": "Weighted average discount rate applied to operating leases" } } }, "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r656", "r659" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Operating Lease, Weighted Average Remaining Lease Term", "terseLabel": "Weighted average remaining term for operating leases" } } }, "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_OperatingLeasedAssetsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Operating Leased Assets [Line Items]", "terseLabel": "Operating Leased Assets [Line Items]" } } }, "localname": "OperatingLeasedAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDue": { "auth_ref": [ "r636", "r641" ], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails": { "order": 0.0, "parentTag": "cybe_PresentValueOfOperatingLeasesFutureMinimumPayments", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of one year.", "label": "Operating Leases, Future Minimum Payments Due", "totalLabel": "Total lease payments" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent": { "auth_ref": [ "r636", "r641" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments Due, Next Twelve Months", "terseLabel": "2020" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleOfFutureMinimumLeasePaymentsRequiredUnderNoncancelableOperatingLeaseAgreementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears": { "auth_ref": [ "r636", "r641" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Five Years", "terseLabel": "2024" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInFiveYears", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleOfFutureMinimumLeasePaymentsRequiredUnderNoncancelableOperatingLeaseAgreementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears": { "auth_ref": [ "r636", "r641" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Four Years", "terseLabel": "2023" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInFourYears", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleOfFutureMinimumLeasePaymentsRequiredUnderNoncancelableOperatingLeaseAgreementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInRollingAfterYearFive": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails": { "order": 5.0, "parentTag": "us-gaap_OperatingLeasesFutureMinimumPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due after the fifth rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Rolling after Year Five", "terseLabel": "2027 & Thereafter" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInRollingAfterYearFive", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInRollingYearFive": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails": { "order": 4.0, "parentTag": "us-gaap_OperatingLeasesFutureMinimumPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fifth rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Rolling Year Five", "terseLabel": "2026" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInRollingYearFive", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInRollingYearFour": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_OperatingLeasesFutureMinimumPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fourth rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Rolling Year Four", "terseLabel": "2025" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInRollingYearFour", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInRollingYearThree": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_OperatingLeasesFutureMinimumPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the third rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Rolling Year Three", "terseLabel": "2024" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInRollingYearThree", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInRollingYearTwo": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_OperatingLeasesFutureMinimumPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the second rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Rolling Year Two", "terseLabel": "2023" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInRollingYearTwo", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears": { "auth_ref": [ "r636", "r641" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Three Years", "terseLabel": "2022" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInThreeYears", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleOfFutureMinimumLeasePaymentsRequiredUnderNoncancelableOperatingLeaseAgreementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears": { "auth_ref": [ "r636", "r641" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Two Years", "terseLabel": "2021" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInTwoYears", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleOfFutureMinimumLeasePaymentsRequiredUnderNoncancelableOperatingLeaseAgreementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter": { "auth_ref": [ "r636", "r641" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due after the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due Thereafter", "terseLabel": "2025 & Thereafter" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueThereafter", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleOfFutureMinimumLeasePaymentsRequiredUnderNoncancelableOperatingLeaseAgreementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsNextRollingTwelveMonths": { "auth_ref": [], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails": { "order": 0.0, "parentTag": "us-gaap_OperatingLeasesFutureMinimumPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the next rolling twelve months following the latest balance sheet. For interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Next Rolling Twelve Months", "terseLabel": "2022" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsNextRollingTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofthefuturematuritiesofleaseliabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock": { "auth_ref": [ "r309", "r635", "r636", "r640", "r642" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for lessee's operating leases. Includes, but is not limited to, description of lessee's operating lease, existence and terms of renewal or purchase options and escalation clauses, restrictions imposed by lease, such as those concerning dividends, additional debt, and further leasing, rent holidays, rent concessions, or leasehold improvement incentives and unusual provisions or conditions.", "label": "Operating Leases of Lessee Disclosure [Table Text Block]", "terseLabel": "Schedule Of Future Minimum Lease Payments Required Under Non-cancelable Operating Lease Agreements" } } }, "localname": "OperatingLeasesOfLesseeDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_OrderOrProductionBacklogMember": { "auth_ref": [ "r559" ], "lang": { "en-us": { "role": { "documentation": "Orders, production or production backlog arising from contracts such as purchase or sales orders acquired in a business combination.", "label": "Order or Production Backlog [Member]" } } }, "localname": "OrderOrProductionBacklogMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "BUSINESS DESCRIPTION AND SIGNIFICANT ACCOUNTING POLICIES [Abstract]" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r6", "r138", "r190", "r571" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the organization, consolidation and basis of presentation of financial statements disclosure, and significant accounting policies of the reporting entity. May be provided in more than one note to the financial statements, as long as users are provided with an understanding of (1) the significant judgments and assumptions made by an enterprise in determining whether it must consolidate a VIE and/or disclose information about its involvement with a VIE, (2) the nature of restrictions on a consolidated VIE's assets reported by an enterprise in its statement of financial position, including the carrying amounts of such assets, (3) the nature of, and changes in, the risks associated with an enterprise's involvement with the VIE, and (4) how an enterprise's involvement with the VIE affects the enterprise's financial position, financial performance, and cash flows. Describes procedure if disclosures are provided in more than one note to the financial statements.", "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure and Significant Accounting Policies [Text Block]", "verboseLabel": "BUSINESS DESCRIPTION AND SIGNICANT ACCOUNTING POLICIES" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherAccruedLiabilitiesCurrent": { "auth_ref": [ "r15", "r17", "r18", "r54" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails": { "order": 2.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.", "label": "Other Accrued Liabilities, Current", "terseLabel": "Other" } } }, "localname": "OtherAccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsCurrent": { "auth_ref": [ "r63", "r668" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current assets classified as other.", "label": "Other Assets, Current", "verboseLabel": "Other current assets" } } }, "localname": "OtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r50" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncurrent assets classified as other.", "label": "Other Assets, Noncurrent", "verboseLabel": "Other assets" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentBeforeTaxPortionAttributableToParent": { "auth_ref": [ "r562", "r563", "r567" ], "calculation": { "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent", "weight": 1.0 }, "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetailsCalc2": { "order": 0.0, "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax, after reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities, attributable to parent entity. Excludes amounts related to other than temporary impairment (OTTI) loss.", "label": "Other Comprehensive Income (Loss), Available-for-sale Securities Adjustment, before Tax, Portion Attributable to Parent", "terseLabel": "Unrealized gains on available-for-sale securities, Before Tax" } } }, "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentBeforeTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r562", "r563", "r567" ], "calculation": { "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0 }, "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetailsCalc2": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax and reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities, attributable to parent entity. Excludes amounts related to other than temporary impairment (OTTI) loss.", "label": "Other Comprehensive Income (Loss), Available-for-sale Securities Adjustment, Net of Tax, Portion Attributable to Parent", "totalLabel": "Unrealized gains on available-for-sale securities, Net of Tax Amount" } } }, "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesTaxPortionAttributableToParent": { "auth_ref": [ "r562", "r563", "r567" ], "calculation": { "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossTaxPortionAttributableToParent1", "weight": 1.0 }, "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetailsCalc2": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of tax expense (benefit), after reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities, attributable to parent entity. Excludes amounts related to other than temporary impairment (OTTI) loss.", "label": "Other Comprehensive Income (Loss), Available-for-sale Securities, Tax, Portion Attributable to Parent", "negatedLabel": "Unrealized gains on available-for-sale securities, Tax Effect" } } }, "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentBeforeTaxPortionAttributableToParent": { "auth_ref": [ "r562", "r563", "r567" ], "calculation": { "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails": { "order": 0.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent", "weight": 1.0 }, "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetailsCalc2": { "order": 0.0, "parentTag": "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "weight": 1.0 }, "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 0.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax, after reclassification adjustments of gain (loss) on foreign currency translation adjustments, on foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, before Tax, Portion Attributable to Parent", "terseLabel": "Foreign currency translation adjustments, Before Tax", "verboseLabel": "Foreign currency translation adjustments, Before Tax" } } }, "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentBeforeTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails", "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r562", "r563", "r567" ], "calculation": { "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails": { "order": 0.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0 }, "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetailsCalc2": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent", "totalLabel": "Foreign currency translation adjustments, Net of Tax Amount" } } }, "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToParent": { "auth_ref": [ "r562", "r563", "r567" ], "calculation": { "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails": { "order": 0.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossTaxPortionAttributableToParent1", "weight": 1.0 }, "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetailsCalc2": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax, Portion Attributable to Parent", "negatedLabel": "Foreign currency translation adjustments, Tax Effect", "terseLabel": "Foreign currency translation adjustments, Tax" } } }, "localname": "OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossBeforeTaxPeriodIncreaseDecreaseAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), before Tax [Abstract]", "terseLabel": "Other comprehensive income (loss), before tax:" } } }, "localname": "OtherComprehensiveIncomeLossBeforeTaxPeriodIncreaseDecreaseAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent": { "auth_ref": [ "r562", "r563", "r567" ], "calculation": { "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetailsCalc2": { "order": 0.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0 }, "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 0.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of other comprehensive income (loss) attributable to parent entity.", "label": "Other Comprehensive Income (Loss), before Tax, Portion Attributable to Parent", "totalLabel": "Total other comprehensive income (loss) before income taxes" } } }, "localname": "OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails", "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r79", "r82", "r84", "r85", "r87", "r91", "r344", "r627", "r632", "r633", "r732", "r753" ], "calculation": { "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss).", "label": "Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Other comprehensive income, net of tax", "totalLabel": "Total other comprehensive income (loss) after income taxes" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity", "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r79", "r82", "r562", "r563", "r567" ], "calculation": { "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetailsCalc2": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent", "terseLabel": "Other comprehensive loss for the period", "totalLabel": "Other comprehensive income (loss), Net of Tax Amount" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails", "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossTax": { "auth_ref": [ "r75", "r84", "r91", "r516", "r550", "r552", "r627", "r630", "r633", "r732", "r753" ], "calculation": { "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of tax expense (benefit) allocated to other comprehensive income (loss).", "label": "Other Comprehensive Income (Loss), Tax", "negatedTotalLabel": "Other comprehensive income (loss), Tax", "terseLabel": "Income tax provision" } } }, "localname": "OtherComprehensiveIncomeLossTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossTaxPortionAttributableToParent1": { "auth_ref": [ "r562", "r563", "r567" ], "calculation": { "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetailsCalc2": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of tax expense (benefit) allocated to other comprehensive income (loss) attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Tax, Portion Attributable to Parent", "negatedTotalLabel": "Other comprehensive income (loss), Tax Effect" } } }, "localname": "OtherComprehensiveIncomeLossTaxPortionAttributableToParent1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossChangesincomponentsofothercomprehensiveincomelossandtaxesrelatedtoitemsofothercomprehensiveincomelossDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax": { "auth_ref": [ "r69", "r74", "r588" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of increase (decrease) in accumulated gain (loss) from derivative instruments designated and qualifying as the effective portion of cash flow hedges and an entity's share of an equity investee's increase (decrease) in deferred hedging gain (loss).", "label": "Other Comprehensive Income (Loss), Unrealized Gain (Loss) on Derivatives Arising During Period, before Tax", "positiveLabel": "Pretax Gain (Loss) Recognized in Other Comprehensive Income (Loss) on Effective Portion of Derivative", "terseLabel": "Unrealized gains (losses)", "verboseLabel": "Net changes related to foreign exchange forward contracts: Unrealized gains (losses), Before Tax" } } }, "localname": "OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodBeforeTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesScheduleOfCashFlowHedgesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax": { "auth_ref": [ "r70", "r74", "r236" ], "calculation": { "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossBeforeTaxPortionAttributableToParent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, before tax and adjustment, of unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.", "label": "Other Comprehensive Income (Loss), Unrealized Holding Gain (Loss) on Securities Arising During Period, before Tax", "terseLabel": "Unrealized gains on available-for-sale securities, Before Tax", "verboseLabel": "Unrealized gains (losses) on available-for-sale securities" } } }, "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodBeforeTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherInventoryDemo": { "auth_ref": [ "r61" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails": { "order": 3.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Gross amount of merchandise, goods, commodities, or supplies to which the entity holds the title and uses for the specific purpose of showing the benefits and features of the entity's products to existing or potential customers.", "label": "Other Inventory, Demo, Gross", "terseLabel": "Demonstration inventories, net" } } }, "localname": "OtherInventoryDemo", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfInventoryComponentsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherLiabilitiesNoncurrent": { "auth_ref": [ "r56" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 }, "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", "label": "Other Liabilities, Noncurrent", "terseLabel": "Other liabilities", "totalLabel": "Other liabilities" } } }, "localname": "OtherLiabilitiesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherLongTermInvestmentsMember": { "auth_ref": [ "r777" ], "lang": { "en-us": { "role": { "documentation": "Long-term investments classified as other.", "label": "Other Long-term Investments [Member]", "terseLabel": "Marketable Securities - Long-Term [Member]", "verboseLabel": "Long-Term [Member]" } } }, "localname": "OtherLongTermInvestmentsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OtherNoncurrentLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of other noncurrent liabilities.", "label": "Other Noncurrent Liabilities [Table Text Block]", "terseLabel": "Other Noncurrent Liabilities" } } }, "localname": "OtherNoncurrentLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PatentsMember": { "auth_ref": [ "r561" ], "lang": { "en-us": { "role": { "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.", "label": "Patents [Member]", "terseLabel": "Patents [Member]" } } }, "localname": "PatentsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "auth_ref": [ "r109" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow to reacquire common stock during the period.", "label": "Payments for Repurchase of Common Stock", "negatedLabel": "Common stock repurchases", "terseLabel": "Repurchase of common stock" } } }, "localname": "PaymentsForRepurchaseOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ShareRepurchasesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [ "r109" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Payments Related to Tax Withholding for Share-based Compensation", "negatedLabel": "Tax payments related to shares withheld for share-based compensation plans" } } }, "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireAvailableForSaleSecurities": { "auth_ref": [ "r106", "r226" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow to acquire debt and equity securities not classified as either held-to-maturity securities or trading securities which would be classified as available-for-sale securities and reported at fair value, with unrealized gains and losses excluded from earnings and reported in a separate component of shareholders' equity.", "label": "Payments to Acquire Available-for-sale Securities", "negatedLabel": "Purchases of available-for-sale marketable securities" } } }, "localname": "PaymentsToAcquireAvailableForSaleSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireIntangibleAssets": { "auth_ref": [ "r107" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow to acquire asset without physical form usually arising from contractual or other legal rights, excluding goodwill.", "label": "Payments to Acquire Intangible Assets", "negatedLabel": "Additions to patents" } } }, "localname": "PaymentsToAcquireIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r107" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Additions to equipment and leasehold improvements" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PlanNameAxis": { "auth_ref": [ "r452", "r485" ], "lang": { "en-us": { "role": { "documentation": "Information by plan name for share-based payment arrangement.", "label": "Plan Name [Axis]", "terseLabel": "Plan Name [Axis]" } } }, "localname": "PlanNameAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PlanNameDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Plan name for share-based payment arrangement.", "label": "Plan Name [Domain]", "terseLabel": "Plan Name [Domain]" } } }, "localname": "PlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PreferredStockNoParValue": { "auth_ref": [ "r30", "r340" ], "lang": { "en-us": { "role": { "documentation": "Face amount per share of no-par value preferred stock nonredeemable or redeemable solely at the option of the issuer.", "label": "Preferred Stock, No Par Value", "verboseLabel": "Preferred stock, par value (in usd per share)" } } }, "localname": "PreferredStockNoParValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r30" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.", "label": "Preferred Stock, Shares Authorized", "verboseLabel": "Preferred stock, shares authorized, shares" } } }, "localname": "PreferredStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesOutstanding": { "auth_ref": [ "r30" ], "lang": { "en-us": { "role": { "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.", "label": "Preferred Stock, Shares Outstanding", "verboseLabel": "Preferred stock, shares outstanding, shares" } } }, "localname": "PreferredStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockValue": { "auth_ref": [ "r30", "r668" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 0.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Preferred Stock, Value, Issued", "terseLabel": "Preferred stock, no par value, 5,000,000 shares authorized, none\u00a0outstanding" } } }, "localname": "PreferredStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidExpenseCurrent": { "auth_ref": [ "r11", "r13", "r265", "r266" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.", "label": "Prepaid Expense, Current", "terseLabel": "Prepaid expenses" } } }, "localname": "PrepaidExpenseCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans": { "auth_ref": [ "r108", "r486" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from issuance of shares under share-based payment arrangement. Excludes option exercised.", "label": "Proceeds, Issuance of Shares, Share-based Payment Arrangement, Excluding Option Exercised", "terseLabel": "Proceeds\u00a0from\u00a0issuance\u00a0of\u00a0common\u00a0stock\u00a0under\u00a0employee\u00a0stock\u00a0purchase\u00a0plan" } } }, "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities": { "auth_ref": [ "r103", "r104", "r226" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 0.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from maturity, prepayment and call of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Proceeds from Maturities, Prepayments and Calls of Available-for-sale Securities", "terseLabel": "Proceeds from maturities of available-for-sale marketable securities" } } }, "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities": { "auth_ref": [ "r103", "r104", "r226" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from sale, maturity, prepayment and call of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Proceeds from Sale and Maturity of Available-for-sale Securities", "terseLabel": "Proceeds from sale of marketable securities" } } }, "localname": "ProceedsFromSaleAndMaturityOfAvailableForSaleSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromSaleAndMaturityOfMarketableSecurities": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow associated with the aggregate amount received by the entity through sale or maturity of marketable securities (held-to-maturity or available-for-sale) during the period.", "label": "Proceeds from Sale and Maturity of Marketable Securities", "terseLabel": "Sale of marketable securities" } } }, "localname": "ProceedsFromSaleAndMaturityOfMarketableSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromSaleOfAvailableForSaleSecurities": { "auth_ref": [ "r105", "r226" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow associated with the sale of debt and equity securities classified as available-for-sale securities.", "label": "Proceeds from Sale of Available-for-sale Securities", "terseLabel": "Proceeds from sale of available-for-sale marketable securities", "verboseLabel": "Proceeds from sales of marketable securities" } } }, "localname": "ProceedsFromSaleOfAvailableForSaleSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows", "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockOptionsExercised": { "auth_ref": [ "r108", "r486" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 0.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.", "label": "Proceeds from Stock Options Exercised", "terseLabel": "Proceeds from exercise of stock options" } } }, "localname": "ProceedsFromStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductLiabilityContingencyLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Product Liability Contingency [Line Items]", "terseLabel": "Product Liability Contingency [Line Items]" } } }, "localname": "ProductLiabilityContingencyLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ProductLiabilityContingencyTable": { "auth_ref": [ "r300", "r301", "r302", "r303", "r304", "r305", "r306" ], "lang": { "en-us": { "role": { "documentation": "Information and financial data about the reasonably possible loss or the recognized and additional reasonably possible loss from product liability related to an individual product.", "label": "Product Liability Contingency [Table]", "terseLabel": "Product Liability Contingency [Table]" } } }, "localname": "ProductLiabilityContingencyTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ProductWarrantyAccrual": { "auth_ref": [ "r315", "r318", "r728" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers.", "label": "Standard and Extended Product Warranty Accrual", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period" } } }, "localname": "ProductWarrantyAccrual", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductWarrantyAccrualClassifiedCurrent": { "auth_ref": [ "r54", "r308", "r310" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails": { "order": 1.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 }, "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails": { "order": 0.0, "parentTag": "us-gaap_ProductWarrantyAccrual", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Product Warranty Accrual, Current", "negatedTerseLabel": "Current portion of estimated warranty liability", "terseLabel": "Warranty liability" } } }, "localname": "ProductWarrantyAccrualClassifiedCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAccruedExpensesDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductWarrantyAccrualNoncurrent": { "auth_ref": [ "r56", "r300", "r301" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails": { "order": 1.0, "parentTag": "us-gaap_ProductWarrantyAccrual", "weight": 1.0 }, "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_OtherLiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and due after one year (or beyond the operating cycle if longer) for estimated claims under standard and extended warranty protection rights granted to customers.", "label": "Product Warranty Accrual, Noncurrent", "terseLabel": "Warranty liability", "verboseLabel": "Long-term estimated warranty liability" } } }, "localname": "ProductWarrantyAccrualNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfOtherLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductWarrantyAccrualPreexistingIncreaseDecrease": { "auth_ref": [ "r313" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in the standard and extended product warranty accrual from changes in estimates attributable to preexisting product warranties.", "label": "Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties", "terseLabel": "Warranty revision" } } }, "localname": "ProductWarrantyAccrualPreexistingIncreaseDecrease", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductWarrantyAccrualWarrantiesIssued": { "auth_ref": [ "r312" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in the standard and extended product warranty accrual from warranties issued.", "label": "Standard and Extended Product Warranty Accrual, Increase for Warranties Issued", "terseLabel": "Accrual for warranties" } } }, "localname": "ProductWarrantyAccrualWarrantiesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "auth_ref": [ "r48", "r293" ], "lang": { "en-us": { "role": { "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.", "label": "Property, Plant and Equipment, Type [Axis]", "terseLabel": "Property, Plant and Equipment, Type [Axis]" } } }, "localname": "PropertyPlantAndEquipmentByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r47", "r291" ], "calculation": { "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails": { "order": 0.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Gross", "terseLabel": "Equipment and leasehold improvements, gross" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Property, Plant and Equipment [Line Items]", "terseLabel": "Property, Plant and Equipment [Line Items]" } } }, "localname": "PropertyPlantAndEquipmentLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r22", "r23", "r293", "r668", "r740", "r750" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Net", "terseLabel": "Equipment and leasehold improvements, net", "totalLabel": "Equipment and leasehold improvements, net" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": { "auth_ref": [ "r46", "r293", "r799", "r800" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property, Plant and Equipment, Policy [Policy Text Block]", "terseLabel": "Equipment and Leasehold Improvements" } } }, "localname": "PropertyPlantAndEquipmentPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r22", "r293" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table Text Block]", "terseLabel": "Schedule of Equipment and Leasehold Improvements" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "auth_ref": [ "r22", "r291" ], "lang": { "en-us": { "role": { "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.", "label": "Property, Plant and Equipment, Type [Domain]", "terseLabel": "Property, Plant and Equipment, Type [Domain]" } } }, "localname": "PropertyPlantAndEquipmentTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PropertyPlantAndEquipmentUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.", "label": "Property, Plant and Equipment, Useful Life", "terseLabel": "Estimated useful lives of the equipment and leasehold improvements (in years)" } } }, "localname": "PropertyPlantAndEquipmentUsefulLife", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ProvisionForDoubtfulAccounts": { "auth_ref": [ "r94", "r251" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.", "label": "Provision for Doubtful Accounts", "verboseLabel": "Provision (recovery) for doubtful accounts" } } }, "localname": "ProvisionForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_QuarterlyFinancialInformationDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "QUARTERLY FINANCIAL INFORMATION (UNAUDITED) [Abstract]" } } }, "localname": "QuarterlyFinancialInformationDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_QuarterlyFinancialInformationTextBlock": { "auth_ref": [ "r174", "r175" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for quarterly financial data. Includes, but is not limited to, tabular presentation of financial information for fiscal quarters, effect of year-end adjustments, and an explanation of matters or transactions that affect comparability of the information.", "label": "Quarterly Financial Information [Text Block]", "terseLabel": "QUARTERLY FINANCIAL INFORMATION (UNAUTDITED)" } } }, "localname": "QuarterlyFinancialInformationTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/QuarterlyFinancialInformationUnaudited" ], "xbrltype": "textBlockItemType" }, "us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy": { "auth_ref": [ "r40", "r222" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.", "label": "Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]", "terseLabel": "Accounts Receivable and Allowance for Doubtful Accounts" } } }, "localname": "ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodBeforeTax": { "auth_ref": [ "r77", "r84", "r85", "r627", "r631", "r633" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of reclassification adjustments of other comprehensive income (loss).", "label": "Reclassification from Accumulated Other Comprehensive Income, Current Period, before Tax", "terseLabel": "Reclassifications adjustments from other comprehensive income" } } }, "localname": "ReclassificationFromAccumulatedOtherComprehensiveIncomeCurrentPeriodBeforeTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]", "terseLabel": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]" } } }, "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesSummaryOfReconciliationOfBeginningAndEndingAmountOfGrossUnrecognizedTaxBenefitsUtbDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ReducedEmployeeExpensesMember": { "auth_ref": [ "r296" ], "lang": { "en-us": { "role": { "documentation": "A decrease in future employee expense as a result of disposal of a business that results from an exit plan.", "label": "Reduced Employee Expenses [Member]", "terseLabel": "Reduced Employee Expenses [Member]" } } }, "localname": "ReducedEmployeeExpensesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RegulatoryIncomeTaxesPolicy": { "auth_ref": [ "r814", "r815" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for income taxes, including investment tax credits, and the related regulatory treatment (for example, whether deferred income tax accounting - normalization - is allowed in rate making).", "label": "Regulatory Income Taxes, Policy [Policy Text Block]", "terseLabel": "Income Taxes" } } }, "localname": "RegulatoryIncomeTaxesPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RelatedPartyDomain": { "auth_ref": [ "r420", "r663", "r664" ], "lang": { "en-us": { "role": { "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.", "label": "Related Party [Domain]", "terseLabel": "Related Party [Domain]" } } }, "localname": "RelatedPartyDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RelatedPartyTransactionPurchasesFromRelatedParty": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Purchases during the period (excluding transactions that are eliminated in consolidated or combined financial statements) with related party.", "label": "Related Party Transaction, Purchases from Related Party", "terseLabel": "Cumulative purchases" } } }, "localname": "RelatedPartyTransactionPurchasesFromRelatedParty", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "auth_ref": [ "r420", "r663", "r665", "r709", "r710", "r711", "r712", "r713", "r714", "r715", "r716", "r717", "r718", "r719", "r720" ], "lang": { "en-us": { "role": { "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.", "label": "Related Party [Axis]", "terseLabel": "Related Party [Axis]" } } }, "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r512", "r702", "r816" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.", "label": "Research and Development Expense", "verboseLabel": "Research and development expenses" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included.", "label": "Research and Development Expense [Member]", "terseLabel": "Research and Development [Member]", "verboseLabel": "Research and Development Expense [Member]" } } }, "localname": "ResearchAndDevelopmentExpenseMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesScheduleOfCashFlowHedgesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": { "auth_ref": [ "r49", "r287", "r288", "r816" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.", "label": "Research, Development, and Computer Software, Policy [Policy Text Block]", "terseLabel": "Research and Development" } } }, "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RestrictedStockUnitsRSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.", "label": "Restricted Stock Units (RSUs) [Member]", "terseLabel": "Restricted Stock Units (RSUs) [Member]" } } }, "localname": "RestrictedStockUnitsRSUMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r34", "r345", "r494", "r668", "r747", "r771", "r776" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings (Accumulated Deficit)", "verboseLabel": "Retained earnings" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r2", "r139", "r140", "r141", "r144", "r154", "r157", "r246", "r491", "r492", "r493", "r540", "r541", "r598", "r767", "r769" ], "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]", "terseLabel": "Retained Earnings [Member]" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_RetirementPlanNameAxis": { "auth_ref": [ "r374", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408", "r409", "r410", "r411", "r412", "r413", "r414", "r415", "r416", "r417", "r418", "r419", "r420", "r421", "r422", "r423", "r424", "r425", "r426", "r427", "r428", "r429", "r430", "r431", "r432", "r433", "r434", "r437", "r438", "r439", "r440", "r441", "r442", "r443", "r444", "r445", "r446" ], "lang": { "en-us": { "role": { "documentation": "Information by name of plan designed to provide retirement benefits. Includes, but is not limited to, legal name of defined benefit and defined contribution plans.", "label": "Retirement Plan Name [Axis]" } } }, "localname": "RetirementPlanNameAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlansDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RetirementPlanNameDomain": { "auth_ref": [ "r374", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408", "r409", "r410", "r411", "r412", "r413", "r414", "r415", "r416", "r417", "r418", "r419", "r420", "r421", "r422", "r423", "r424", "r425", "r426", "r427", "r428", "r429", "r430", "r431", "r432", "r433", "r434", "r437", "r438", "r439", "r440", "r441", "r442", "r443", "r444", "r445", "r446" ], "lang": { "en-us": { "role": { "documentation": "Name of plan designed to provide retirement benefits. Includes, but is not limited to, legal name of defined benefit and defined contribution plans.", "label": "Retirement Plan Name [Domain]" } } }, "localname": "RetirementPlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/A401KAndOtherDefinedContributionPlansDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "REVENUE RECOGNITION" } } }, "localname": "RevenueFromContractWithCustomerAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r349", "r350", "r351", "r352", "r353", "r354", "r356", "r357", "r361", "r371" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.", "label": "Revenue from Contract with Customer [Text Block]", "terseLabel": "REVENUE RECOGNITION" } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognition" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock": { "auth_ref": [ "r215" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of revenue from external customers by geographic areas attributed to the entity's country of domicile and to foreign countries from which the entity derives revenue.", "label": "Revenue from External Customers by Geographic Areas [Table Text Block]", "terseLabel": "Schedule Of Revenue By Geographic Area" } } }, "localname": "RevenueFromExternalCustomersByGeographicAreasTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueFromRelatedParties": { "auth_ref": [ "r96", "r324", "r326", "r327", "r331", "r332", "r333", "r779" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue, fees and commissions earned from transactions between (a) a parent company and its subsidiaries; (b) subsidiaries of a common parent; (c) an entity and trusts for the benefit of employees, for example, but not limited to, pension and profit-sharing trusts that are managed by or under the trusteeship of the entity's management; (d) an entity and its principal, owners, management, or members of their immediate families; and (e) affiliates.", "label": "Revenue from Related Parties", "terseLabel": "Sales to related party" } } }, "localname": "RevenueFromRelatedParties", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/BusinessDescriptionAndSignificantAccountingPoliciesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Revenue, Initial Application Period Cumulative Effect Transition [Line Items]", "terseLabel": "REVENUE RECOGNITION - TOPIC 606" } } }, "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable": { "auth_ref": [ "r369" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information when using transition method for cumulative effect in initial period of application for revenue from contract with customer.", "label": "Revenue, Initial Application Period Cumulative Effect Transition [Table]" } } }, "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRecognitionPolicyTextBlock": { "auth_ref": [ "r120", "r121" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.", "label": "Revenue Recognition, Policy [Policy Text Block]", "terseLabel": "Revenue Recognition" } } }, "localname": "RevenueRecognitionPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "auth_ref": [ "r355" ], "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": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period", "terseLabel": "Period for deferred warranty revenue expected to be recognized" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_Revenues": { "auth_ref": [ "r88", "r122", "r191", "r192", "r202", "r207", "r208", "r212", "r213", "r218", "r242", "r321", "r322", "r323", "r326", "r327", "r328", "r329", "r330", "r332", "r333", "r612", "r735" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": 0.0, "parentTag": "us-gaap_GrossProfit", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", "label": "Revenues", "terseLabel": "Revenues" } } }, "localname": "Revenues", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasSummaryOfRevenueByProductLineDetails", "http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Revenues from External Customers and Long-Lived Assets [Line Items]", "terseLabel": "Revenue, Major Customer [Line Items]" } } }, "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SalesRevenueNetMember": { "auth_ref": [ "r184", "r218" ], "lang": { "en-us": { "role": { "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.", "label": "Sales Revenue, Net [Member]", "terseLabel": "Revenues [Member]" } } }, "localname": "SalesRevenueNetMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of accrued liabilities.", "label": "Schedule of Accrued Liabilities [Table Text Block]", "terseLabel": "Schedule of Accrued Expenses" } } }, "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock": { "auth_ref": [ "r77", "r632", "r633" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of accumulated other comprehensive income (loss).", "label": "Schedule of Accumulated Other Comprehensive Income (Loss) [Table Text Block]", "terseLabel": "Schedule of Accumulated Other Comprehensive Loss" } } }, "localname": "ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock": { "auth_ref": [ "r414" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the net gain (loss) and net prior service cost or credit recognized in other comprehensive income (loss) for the period for pension plans and/or other employee benefit plans, and reclassification adjustments of other comprehensive income (loss) for the period, as those amounts, including amortization of the net transition asset or obligation, are recognized as components of net periodic benefit cost.", "label": "Schedule of Amounts Recognized in Other Comprehensive Income (Loss) [Table Text Block]", "terseLabel": "The Effect of the Reclassification from Other Comprehensive Income (Loss) to Earnings" } } }, "localname": "ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherComprehensiveIncomeLossTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Schedule of Available-for-sale Securities [Line Items]", "terseLabel": "Unrealized Loss Position [Line Items]" } } }, "localname": "ScheduleOfAvailableForSaleSecuritiesLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfAvailableForSaleSecuritiesTable": { "auth_ref": [ "r228", "r229", "r232", "r233", "r234", "r235", "r737", "r738" ], "lang": { "en-us": { "role": { "documentation": "Schedule of available-for-sale securities which includes, but is not limited to, changes in the cost basis and fair value, fair value and gross unrealized gain (loss), fair values by type of security, contractual maturity and classification, amortized cost basis, contracts to acquire securities to be accounted for as available-for-sale, debt maturities, transfers to trading, change in net unrealized holding gain (loss) net of tax, continuous unrealized loss position fair value, aggregate losses qualitative disclosures, other than temporary impairment (OTTI) losses or other disclosures related to available for sale securities.", "label": "Schedule of Available-for-sale Securities [Table]" } } }, "localname": "ScheduleOfAvailableForSaleSecuritiesTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfCashFlowHedgingInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock": { "auth_ref": [ "r579" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for cash flow hedging instruments of (a) the location and amount of gains and losses reported in the statement of financial performance and (b) the location and fair value amounts of the instruments reported in the statement of financial position.", "label": "Schedule of Cash Flow Hedging Instruments, Statements of Financial Performance and Financial Position, Location [Table Text Block]", "terseLabel": "Schedule Of Cash Flow Hedges" } } }, "localname": "ScheduleOfCashFlowHedgingInstrumentsStatementsOfFinancialPerformanceAndFinancialPositionLocationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": { "auth_ref": [ "r536" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.", "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]", "terseLabel": "Schedule Of Provision (Benefit) For Income Taxes" } } }, "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": { "auth_ref": [ "r529" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.", "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]", "terseLabel": "Schedule Of Deferred Tax Assets And Liabilities" } } }, "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "auth_ref": [ "r165" ], "lang": { "en-us": { "role": { "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.", "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Schedule of Net Income Per Basic and Diluted Shares" } } }, "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureNetIncomePerShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": { "auth_ref": [ "r517" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.", "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]", "terseLabel": "Schedule Of A Reconciliation Of The Statutory Rate To The Effective Income Tax Rate" } } }, "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEffectsOnFutureEarningsAndCashFlowsResultingFromExitPlanTable": { "auth_ref": [ "r296" ], "lang": { "en-us": { "role": { "documentation": "A table that lists the quantified effects on future earnings and cash flows resulting from the exit plan (for example, reduced depreciation, reduced employee expense, etc.), along with the initial period in which those effects are expected to be realized. May include whether the cost savings are expected to be offset by anticipated increases in other expenses or reduced revenues. Also identifies the income statement line items to be impacted (for example, cost of sales; marketing; selling, general and administrative expenses; etc.).", "label": "Schedule of Effects on Future Earnings and Cash Flows Resulting from Exit Plan [Table]" } } }, "localname": "ScheduleOfEffectsOnFutureEarningsAndCashFlowsResultingFromExitPlanTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19PandemicNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": { "auth_ref": [ "r277", "r282", "r704" ], "lang": { "en-us": { "role": { "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Schedule of Finite-Lived Intangible Assets [Table]", "terseLabel": "Schedule of Finite-Lived Intangible Assets [Table]" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfAmortizationExpenseForIntangibleAssetsDetails", "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "auth_ref": [ "r277", "r282" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.", "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "terseLabel": "Schedule of Intangible Assets" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfGainLossOnInvestmentsIncludingMarketableSecuritiesAndInvestmentsHeldAtCostIncomeStatementReportedAmountsSummaryLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Gain (Loss) on Investments [Line Items]", "terseLabel": "Gain (Loss) on Investments [Line Items]" } } }, "localname": "ScheduleOfGainLossOnInvestmentsIncludingMarketableSecuritiesAndInvestmentsHeldAtCostIncomeStatementReportedAmountsSummaryLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesClassifiedAsCashEquivalentsDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfGainLossOnInvestmentsTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about realized and unrealized gain (loss) on investment in security.", "label": "Schedule of Gain (Loss) on Investments [Table]", "terseLabel": "Schedule of Gain (Loss) on Investments [Table]" } } }, "localname": "ScheduleOfGainLossOnInvestmentsTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesClassifiedAsCashEquivalentsDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": { "auth_ref": [ "r123" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions.", "label": "Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]", "terseLabel": "Schedule Of Income Before Income Taxes" } } }, "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "auth_ref": [ "r19", "r41", "r42", "r43" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.", "label": "Schedule of Inventory, Current [Table Text Block]", "terseLabel": "Schedule of Inventory Components" } } }, "localname": "ScheduleOfInventoryCurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfOperatingLeasedAssetsTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule of long-lived, depreciable assets that are subject to a operating lease agreements and are used in the normal conduct of business to produce goods and services. Examples may include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.", "label": "Schedule of Operating Leased Assets [Table]", "terseLabel": "Schedule of Operating Leased Assets [Table]" } } }, "localname": "ScheduleOfOperatingLeasedAssetsTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfProductInformationTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of product information that are included in the discussion of the nature of an entity's operations.", "label": "Schedule of Product Information [Table Text Block]", "terseLabel": "Summary Of Revenue By Product Line" } } }, "localname": "ScheduleOfProductInformationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": { "auth_ref": [ "r319" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability.", "label": "Schedule of Product Warranty Liability [Table Text Block]", "terseLabel": "Schedule of Changes in Estimated Warranty Liability" } } }, "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "auth_ref": [ "r48", "r293" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table]", "terseLabel": "Property, Plant and Equipment [Table]" } } }, "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfEquipmentAndLeaseholdImprovementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock": { "auth_ref": [ "r173" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data.", "label": "Quarterly Financial Information [Table Text Block]", "terseLabel": "Quarterly Financial Information" } } }, "localname": "ScheduleOfQuarterlyFinancialInformationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/QuarterlyFinancialInformationUnauditedTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": { "auth_ref": [ "r88", "r217" ], "lang": { "en-us": { "role": { "documentation": "Schedule of material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries.", "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]" } } }, "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfLongLivedAssetsAttributableToEachGeographicAreasOperationsDetails", "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasScheduleOfRevenueByGeographicAreaDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "auth_ref": [ "r452", "r485" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about share-based payment arrangement.", "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]", "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]" } } }, "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": { "auth_ref": [ "r459" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.", "label": "Schedule of Share-based Compensation, Restricted Stock Units Award Activity [Table Text Block]", "terseLabel": "Schedule Of Non-Vested Restricted Stock Activity" } } }, "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "auth_ref": [ "r459", "r472", "r475" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.", "label": "Schedule of Share-based Compensation, Stock Options, Activity [Table Text Block]", "terseLabel": "Schedule Of Stock Option Activity" } } }, "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": { "auth_ref": [ "r477" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.", "label": "Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]", "terseLabel": "Schedule Of Stock Option Valuation Assumptions" } } }, "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": { "auth_ref": [ "r524", "r537" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the change in unrecognized tax benefits.", "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]", "terseLabel": "Summary Of A Reconciliation Of The Beginning And Ending Amount Of Gross Unrecognized Tax Benefits (\"UTB\")" } } }, "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": { "auth_ref": [ "r181", "r184", "r185", "r186", "r609", "r611" ], "lang": { "en-us": { "role": { "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.", "label": "Schedules of Concentration of Risk, by Risk Factor [Table Text Block]", "terseLabel": "Summary Of Certain Significant Customer Information" } } }, "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueConcentrationsSignificantCustomersAndGeographicAreasTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentReportingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "REVENUE CONCENTRATIONS, SIGNIFICANT CUSTOMERS, AND GEOGRAPHIC AREAS [Abstract]" } } }, "localname": "SegmentReportingAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_SegmentReportingPolicyPolicyTextBlock": { "auth_ref": [ "r196", "r197", "r198", "r199", "r200", "r201", "r213" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for segment reporting.", "label": "Segment Reporting, Policy [Policy Text Block]", "terseLabel": "Segment Reporting" } } }, "localname": "SegmentReportingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r99" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations": { "order": 3.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", "label": "Selling, General and Administrative Expense", "verboseLabel": "Selling, general and administrative expenses" } } }, "localname": "SellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpensesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing selling, general and administrative expense.", "label": "Selling, General and Administrative Expenses [Member]", "terseLabel": "Selling, General and Administrative [Member]", "verboseLabel": "Selling, General and Administrative Expenses [Member]" } } }, "localname": "SellingGeneralAndAdministrativeExpensesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DerivativesScheduleOfCashFlowHedgesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r112" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "Share-based Compensation", "netLabel": "Pre-tax share-based compensation expense", "terseLabel": "Equity based compensation expense", "verboseLabel": "Share-based compensation" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfCashFlows", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationSummaryOfPretaxEquityBasedCompensationExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "SHARE-BASED COMPENSATION [Abstract]" } } }, "localname": "ShareBasedCompensationAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "auth_ref": [ "r453" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period", "terseLabel": "Vesting period (in years)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "auth_ref": [ "r465" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period", "negatedLabel": "Shares, Forfeited" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": { "auth_ref": [ "r471" ], "lang": { "en-us": { "role": { "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value", "terseLabel": "Weighted Average Grant Date Fair Value, Forfeited (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "auth_ref": [ "r469" ], "lang": { "en-us": { "role": { "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period", "terseLabel": "Shares granted, shares", "verboseLabel": "Shares, Granted" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r469" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Weighted Average Grant Date Fair Value, Granted (in usd per share)", "verboseLabel": "Weighted average grant date fair value, granted (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "auth_ref": [ "r468" ], "lang": { "en-us": { "role": { "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number", "periodEndLabel": "Shares, Non-vested at December 31, 2020", "periodStartLabel": "Shares, Non-vested at December 31, 2019", "terseLabel": "Unvested shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "auth_ref": [ "r468" ], "lang": { "en-us": { "role": { "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value", "periodEndLabel": "Weighted Average Grant Date Fair Value, Non-vested at December 31, 2020 (in usd per share)", "periodStartLabel": "Weighted Average Grant Date Fair Value, Non-vested at December 31, 2019 (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "auth_ref": [ "r470" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period", "negatedLabel": "Shares, Vested" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r470" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Weighted Average Grant Date Fair Value, Vested (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Agreed-upon price for the exchange of the underlying asset relating to the share-based payment award.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Exercise Price", "verboseLabel": "Weighted average grant date fair value (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "auth_ref": [ "r480" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Dividend Rate", "terseLabel": "Dividend yield" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "auth_ref": [ "r479" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Volatility Rate", "terseLabel": "Expected volatility" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "auth_ref": [ "r481" ], "lang": { "en-us": { "role": { "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Risk Free Interest Rate", "terseLabel": "Risk-free interest rates" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeituresAndExpirations": { "auth_ref": [ "r466" ], "lang": { "en-us": { "role": { "documentation": "Number of shares under non-option equity instrument agreements that were either cancelled or expired.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Non-Option Equity Instruments, Forfeitures and Expirations", "terseLabel": "Number of restricted shares or restricted stock units expired or were forfeited" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeituresAndExpirations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of additional shares authorized for issuance under share-based payment arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Additional Shares Authorized", "terseLabel": "Number of additional shares authorized for issuance" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": { "auth_ref": [ "r455" ], "lang": { "en-us": { "role": { "documentation": "Number of shares authorized for issuance under share-based payment arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized", "terseLabel": "Shares of common stock reserved for stock based benefits, shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "auth_ref": [ "r485" ], "lang": { "en-us": { "role": { "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant", "terseLabel": "Number of shares available for future issuance, shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "auth_ref": [ "r462" ], "lang": { "en-us": { "role": { "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number", "terseLabel": "Options Outstanding, Exercisable, End of period, shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": { "auth_ref": [ "r462" ], "lang": { "en-us": { "role": { "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Exercise Price", "terseLabel": "Weighted-Average Exercise Price Per Share, Exercisable, End of period (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": { "auth_ref": [ "r474" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value", "terseLabel": "Aggregate intrinsic value of stock options exercised" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": { "auth_ref": [ "r467" ], "lang": { "en-us": { "role": { "documentation": "Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Expirations in Period", "negatedLabel": "Options Outstanding, Expired, shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": { "auth_ref": [ "r466" ], "lang": { "en-us": { "role": { "documentation": "For presentations that combine terminations, the number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan or that expired.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures and Expirations in Period", "terseLabel": "Number of stock options expired or were forfeited" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": { "auth_ref": [ "r465" ], "lang": { "en-us": { "role": { "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period", "negatedLabel": "Options Outstanding, Forfeited, shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod": { "auth_ref": [ "r463" ], "lang": { "en-us": { "role": { "documentation": "Net number of share options (or share units) granted during the period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Net of Forfeitures", "verboseLabel": "Options Outstanding, Granted, shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r473" ], "lang": { "en-us": { "role": { "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Weighted average fair value on grant date", "verboseLabel": "Grant date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "auth_ref": [ "r485" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value", "terseLabel": "Aggregate intrinsic value for all options outstanding" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "auth_ref": [ "r461", "r485" ], "lang": { "en-us": { "role": { "documentation": "Number of options outstanding, including both vested and non-vested options.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number", "periodEndLabel": "Options Outstanding, Outstanding, End of period, shares", "periodStartLabel": "Options Outstanding, Outstanding, Beginning of period, shares", "terseLabel": "Common stock reserved for issuance pursuant to outstanding awards" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r460" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price", "periodEndLabel": "Weighted-Average Exercise Price Per Share, Outstanding, End of period (in usd per share)", "periodStartLabel": "Weighted-Average Exercise Price Per Share, Outstanding, Beginning of period (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "auth_ref": [ "r449", "r456" ], "lang": { "en-us": { "role": { "documentation": "Award under share-based payment arrangement.", "label": "Equity Award [Domain]", "terseLabel": "Award Type [Domain]" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.", "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price", "terseLabel": "Weighted-Average Exercise Price Per Share, Exercised (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.", "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price", "terseLabel": "Weighted-Average Exercise Price Per Share, Forfeited (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.", "label": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price", "terseLabel": "Weighted-Average Exercise Price Per Share, Granted (in usd per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "auth_ref": [ "r452", "r457" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation, Option and Incentive Plans Policy [Policy Text Block]", "terseLabel": "Share-Based Compensation" } } }, "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "auth_ref": [ "r454" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period", "terseLabel": "Expiration of stock options from date of grant (in years)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "auth_ref": [ "r478", "r505" ], "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term", "terseLabel": "Expected life in years" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionValuationAssumptionsDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": { "auth_ref": [ "r485" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Intrinsic Value", "terseLabel": "Aggregate intrinsic value of exercisable options" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": { "auth_ref": [ "r485" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term", "terseLabel": "Weighted average remaining contractual term for exercisable options (in years)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValueAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfNonVestedRestrictedStockActivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": { "auth_ref": [ "r476" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term", "terseLabel": "Weighted average remaining contractual term (in years)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": { "auth_ref": [ "r458" ], "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value", "terseLabel": "Fair value of shares vested" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of options vested.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested, Number of Shares", "terseLabel": "Number of shares vested" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Purchase price of common stock expressed as a percentage of its fair value.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Percent", "terseLabel": "Employees can purchase stock at the percentage rate of the lower of the market price on the first or last day of the offering period (as a percent)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_SharesIssued": { "auth_ref": [ "r344" ], "lang": { "en-us": { "role": { "documentation": "Number of shares of stock issued as of the balance sheet date, including shares that had been issued and were previously outstanding but which are now held in the treasury.", "label": "Shares, Issued", "periodEndLabel": "BALANCE, shares", "periodStartLabel": "BALANCE, shares" } } }, "localname": "SharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_ShortTermInvestmentsMember": { "auth_ref": [ "r791", "r792", "r793", "r794" ], "lang": { "en-us": { "role": { "documentation": "Investments which are not otherwise included in another category or item that the entity has the intent to sell or dispose of within one year from the date of the balance sheet.", "label": "Short-term Investments [Member]", "terseLabel": "Marketable Securities - Short-Term [Member]", "verboseLabel": "Short-Term [Member]" } } }, "localname": "ShortTermInvestmentsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShortTermLeaseCost": { "auth_ref": [ "r653", "r659" ], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails": { "order": 2.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less.", "label": "Short-term Lease, Cost", "terseLabel": "Short-term lease cost" } } }, "localname": "ShortTermLeaseCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StandardProductWarrantyAccrualPayments": { "auth_ref": [ "r311" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in the standard product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard product warranty. Excludes extended product warranties.", "label": "Standard Product Warranty Accrual, Decrease for Payments", "negatedTerseLabel": "Settlements made during the period" } } }, "localname": "StandardProductWarrantyAccrualPayments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OtherFinancialStatementDataScheduleOfChangesInEstimatedWarrantyLiabilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StandardProductWarrantyPolicy": { "auth_ref": [ "r314" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for standard warranties including the methodology for measuring the liability.", "label": "Standard Product Warranty, Policy [Policy Text Block]", "terseLabel": "Warranty Costs" } } }, "localname": "StandardProductWarrantyPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r2", "r58", "r84", "r85", "r86", "r139", "r140", "r141", "r144", "r154", "r157", "r176", "r246", "r344", "r345", "r491", "r492", "r493", "r540", "r541", "r598", "r627", "r628", "r629", "r630", "r631", "r633", "r767", "r768", "r769", "r837" ], "lang": { "en-us": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]", "terseLabel": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity", "http://cyberoptics.com/role/OtherComprehensiveIncomeLossScheduleofAccumulatedComprehensiveIncomeLossDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Statement [Line Items]", "terseLabel": "Statement [Line Items]" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF CASH FLOWS [Abstract]" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED BALANCE SHEETS [Abstract]" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME [Abstract]" } } }, "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS\u2019 EQUITY [Abstract]" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r139", "r140", "r141", "r176", "r703" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]", "terseLabel": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationGross": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value, before forfeiture, of shares granted under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).", "label": "Stock Granted, Value, Share-based Compensation, Gross", "terseLabel": "Stock granted, value" } } }, "localname": "StockGrantedDuringPeriodValueSharebasedCompensationGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "auth_ref": [ "r30", "r31", "r344", "r345" ], "lang": { "en-us": { "role": { "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan.", "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans", "terseLabel": "Issuance of common stock under Employee Stock Purchase Plan, shares" } } }, "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "auth_ref": [ "r30", "r31", "r344", "r345" ], "lang": { "en-us": { "role": { "documentation": "Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP).", "label": "Stock Issued During Period, Shares, Share-based Compensation, Net of Forfeitures", "terseLabel": "Share issuances for director compensation, shares", "verboseLabel": "Stock issued during period, shares" } } }, "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r30", "r31", "r344", "r345", "r464" ], "lang": { "en-us": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period", "negatedLabel": "Options Outstanding, Exercised, shares" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureShareBasedCompensationScheduleOfStockOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "auth_ref": [ "r30", "r31", "r344", "r345" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan.", "label": "Stock Issued During Period, Value, Employee Stock Purchase Plan", "terseLabel": "Issuance of common stock under Employee Stock Purchase Plan" } } }, "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": { "auth_ref": [ "r30", "r31", "r345", "r451", "r473" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).", "label": "Stock Issued During Period, Value, Share-based Compensation, Net of Forfeitures", "terseLabel": "Share issuances for director compensation" } } }, "localname": "StockIssuedDuringPeriodValueShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchaseProgramAuthorizedAmount1": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of stock repurchase plan authorized.", "label": "Stock Repurchase Program, Authorized Amount", "terseLabel": "Authorized share repurchase amount" } } }, "localname": "StockRepurchaseProgramAuthorizedAmount1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ShareRepurchasesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodShares": { "auth_ref": [ "r30", "r31", "r344", "r345" ], "lang": { "en-us": { "role": { "documentation": "Number of shares that have been repurchased and retired during the period.", "label": "Stock Repurchased and Retired During Period, Shares", "terseLabel": "Repurchase of common stock, shares" } } }, "localname": "StockRepurchasedAndRetiredDuringPeriodShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ShareRepurchasesNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r31", "r36", "r37", "r122", "r223", "r242", "r612", "r668" ], "calculation": { "http://cyberoptics.com/role/ConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.", "label": "Stockholders' Equity Attributable to Parent", "periodEndLabel": "BALANCE", "periodStartLabel": "BALANCE", "totalLabel": "Total stockholders\u2019 equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets", "http://cyberoptics.com/role/ConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Attributable to Parent [Abstract]", "terseLabel": "Stockholders\u2019 equity:" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_TimingOfTransferOfGoodOrServiceAxis": { "auth_ref": [ "r358", "r367" ], "lang": { "en-us": { "role": { "documentation": "Information by timing of transfer of good or service to customer.", "label": "Timing of Transfer of Good or Service [Axis]" } } }, "localname": "TimingOfTransferOfGoodOrServiceAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_TimingOfTransferOfGoodOrServiceDomain": { "auth_ref": [ "r358", "r367" ], "lang": { "en-us": { "role": { "documentation": "Timing of transfer of good or service to customer. Includes, but is not limited to, at point in time or over time.", "label": "Timing of Transfer of Good or Service [Domain]" } } }, "localname": "TimingOfTransferOfGoodOrServiceDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TransferredAtPointInTimeMember": { "auth_ref": [ "r367" ], "lang": { "en-us": { "role": { "documentation": "Contract with customer in which good or service is transferred at point in time.", "label": "Transferred at Point in Time [Member]", "terseLabel": "Revenue recognized at a point in time [Member]" } } }, "localname": "TransferredAtPointInTimeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TransferredOverTimeMember": { "auth_ref": [ "r367" ], "lang": { "en-us": { "role": { "documentation": "Contract with customer in which good or service is transferred over time.", "label": "Transferred over Time [Member]", "terseLabel": "Revenue recognized over time [Member]" } } }, "localname": "TransferredOverTimeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/RevenueRecognitionSummaryOfRevenuePerformanceObligationsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": { "auth_ref": [ "r230", "r231", "r238", "r239", "r240", "r337", "r343", "r589", "r669", "r670", "r671", "r672", "r673", "r674", "r675", "r676", "r677", "r678", "r679", "r680", "r681", "r682", "r683", "r684", "r685", "r686", "r687", "r688", "r689", "r690", "r691", "r692", "r693", "r694", "r695", "r696", "r697", "r698", "r824", "r825", "r826", "r827", "r828", "r829", "r830" ], "lang": { "en-us": { "role": { "documentation": "Instrument or contract that imposes a contractual obligation to deliver cash or another financial instrument or to exchange other financial instruments on potentially unfavorable terms and conveys a contractual right to receive cash or another financial instrument or to exchange other financial instruments on potentially favorable terms.", "label": "Financial Instruments [Domain]" } } }, "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails", "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails", "http://cyberoptics.com/role/MarketableSecuritiesNarrativeDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesClassifiedAsCashEquivalentsDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TypeOfAdoptionMember": { "auth_ref": [ "r0", "r1", "r2", "r3", "r4", "r143", "r144", "r145", "r146", "r158", "r224", "r225", "r243", "r244", "r245", "r246", "r247", "r248", "r320", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r494", "r538", "r539", "r540", "r541", "r590", "r591", "r592", "r593", "r594", "r595", "r596", "r597", "r598", "r599", "r600", "r614", "r615", "r616", "r617", "r618", "r619", "r620", "r621", "r662", "r705", "r706", "r707", "r765", "r766", "r767", "r768", "r769", "r770", "r771", "r772", "r773", "r774", "r775", "r776", "r833", "r834", "r835", "r836", "r837" ], "lang": { "en-us": { "role": { "documentation": "Amendment to accounting standards.", "label": "Type of Adoption [Domain]", "terseLabel": "Type of Adoption [Domain]" } } }, "localname": "TypeOfAdoptionMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesDetails2", "http://cyberoptics.com/role/DisclosureShareBasedCompensationNarrativeDetails", "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails", "http://cyberoptics.com/role/RevenueRecognitionNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_USTreasuryAndGovernmentMember": { "auth_ref": [ "r396", "r736", "r777" ], "lang": { "en-us": { "role": { "documentation": "This category includes investments in debt securities issued by the United States Department of the Treasury, US Government Agencies and US Government-sponsored Enterprises. Such securities may include treasury bills (short-term maturities - one year or less), treasury notes (intermediate term maturities - two to ten years), and treasury bonds (long-term maturities - ten to thirty years), debt securities issued by the Government National Mortgage Association (Ginnie Mae) and debt securities issued by the Federal National Mortgage Association (Fannie Mae) or the Federal Home Loan Mortgage Corporation (Freddie Mac).", "label": "US Treasury and Government [Member]", "terseLabel": "U.S. Government And Agency Obligations [Member]" } } }, "localname": "USTreasuryAndGovernmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureMarketableSecuritiesScheduleOfUnrealizedLossPositionDetails", "http://cyberoptics.com/role/FairValueMeasurementsFairValueMeasurementsForMarketableSecuritiesAndForeignExchangeForwardContractsDetails", "http://cyberoptics.com/role/MarketableSecuritiesScheduleOfMarketableSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_UnrecognizedTaxBenefits": { "auth_ref": [ "r513", "r520" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of unrecognized tax benefits.", "label": "Unrecognized Tax Benefits", "periodEndLabel": "Gross UTB balance at end of year", "periodStartLabel": "Gross UTB balance at beginning of year" } } }, "localname": "UnrecognizedTaxBenefits", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesSummaryOfReconciliationOfBeginningAndEndingAmountOfGrossUnrecognizedTaxBenefitsUtbDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": { "auth_ref": [ "r521" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.", "label": "Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions", "negatedLabel": "Reductions for tax positions of prior years" } } }, "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesSummaryOfReconciliationOfBeginningAndEndingAmountOfGrossUnrecognizedTaxBenefitsUtbDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": { "auth_ref": [ "r519" ], "crdr": "credit", "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.", "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued", "terseLabel": "Accrued interest and penalties" } } }, "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": { "auth_ref": [ "r519" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense 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.", "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense", "terseLabel": "Estimated gross penalties and interest" } } }, "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": { "auth_ref": [ "r522" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.", "label": "Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions", "terseLabel": "Additions based on tax positions related to the current year" } } }, "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesSummaryOfReconciliationOfBeginningAndEndingAmountOfGrossUnrecognizedTaxBenefitsUtbDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": { "auth_ref": [ "r521" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.", "label": "Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions", "terseLabel": "Additions for tax positions of prior years" } } }, "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesSummaryOfReconciliationOfBeginningAndEndingAmountOfGrossUnrecognizedTaxBenefitsUtbDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease": { "auth_ref": [ "r520" ], "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in unrecognized tax benefits attributable to uncertain tax positions taken in tax returns.", "label": "Unrecognized Tax Benefits, Period Increase (Decrease)", "terseLabel": "Change in liability for uncertain tax positions" } } }, "localname": "UnrecognizedTaxBenefitsPeriodIncreaseDecrease", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": { "auth_ref": [ "r523" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.", "label": "Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations", "negatedLabel": "Reductions due to lapse of applicable statute of limitations" } } }, "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesSummaryOfReconciliationOfBeginningAndEndingAmountOfGrossUnrecognizedTaxBenefitsUtbDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnusualOrInfrequentItemsDisclosureTextBlock": { "auth_ref": [ "r101" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for an event or transaction that is unusual in nature or infrequent in occurrence, or both.", "label": "Unusual or Infrequent Items, or Both, Disclosure [Text Block]", "terseLabel": "COVID-19 PANDEMIC" } } }, "localname": "UnusualOrInfrequentItemsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/Covid19pandemic" ], "xbrltype": "textBlockItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r177", "r178", "r179", "r180", "r187", "r188", "r189" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.", "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of Estimates" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/DisclosureBusinessDescriptionAndSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount": { "auth_ref": [ "r529" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in the valuation allowance for a specified deferred tax asset.", "label": "Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount", "terseLabel": "Increase (decrease) in valuation allowance" } } }, "localname": "ValuationAllowanceDeferredTaxAssetChangeInAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember": { "auth_ref": [ "r131", "r132", "r133", "r135", "r136" ], "lang": { "en-us": { "role": { "documentation": "Valuation allowance of deferred tax asset attributable to deductible temporary difference and carryforward.", "label": "Valuation Allowance of Deferred Tax Assets [Member]", "terseLabel": "Allowance for deferred taxes" } } }, "localname": "ValuationAllowanceOfDeferredTaxAssetsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ValuationAllowancesAndReservesBalance": { "auth_ref": [ "r131", "r136" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of valuation and qualifying accounts and reserves.", "label": "Valuation Allowances and Reserves, Balance", "periodEndLabel": "Balance at end of Period", "periodStartLabel": "Balance at Beginning of Period" } } }, "localname": "ValuationAllowancesAndReservesBalance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": { "auth_ref": [ "r134" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.", "label": "Valuation Allowances and Reserves, Additions for Charges to Cost and Expense", "terseLabel": "Charged to Costs and Expenses" } } }, "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ValuationAllowancesAndReservesDeductions": { "auth_ref": [ "r135" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in valuation and qualifying accounts and reserves.", "label": "Valuation Allowances and Reserves, Deductions", "negatedLabel": "Other\u00a0Increases\u00a0(Decreases)" } } }, "localname": "ValuationAllowancesAndReservesDeductions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ValuationAllowancesAndReservesDomain": { "auth_ref": [ "r131", "r132", "r133", "r135", "r136" ], "lang": { "en-us": { "role": { "documentation": "Valuation and qualifying accounts and reserves.", "label": "Valuation Allowances and Reserves [Domain]" } } }, "localname": "ValuationAllowancesAndReservesDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ValuationAllowancesAndReservesTypeAxis": { "auth_ref": [ "r131", "r132", "r133", "r135", "r136" ], "lang": { "en-us": { "role": { "documentation": "Information by valuation and qualifying accounts and reserves.", "label": "Valuation Allowances and Reserves Type [Axis]" } } }, "localname": "ValuationAllowancesAndReservesTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ScheduleOfvaluationAndQualifyingDetails" ], "xbrltype": "stringItemType" }, "us-gaap_VariableLeaseCost": { "auth_ref": [ "r654", "r659" ], "calculation": { "http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails": { "order": 1.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.", "label": "Variable Lease, Cost", "terseLabel": "Variable lease cost" } } }, "localname": "VariableLeaseCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/OperatingLeasesScheduleofcomponentsofourcostsforoperatingleasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": { "auth_ref": [ "r165" ], "calculation": { "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails": { "order": 1.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.", "label": "Weighted Average Number Diluted Shares Outstanding Adjustment", "terseLabel": "Weighted Average Shares Outstanding, Dilutive effect of common equivalent shares, shares" } } }, "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r160", "r165" ], "calculation": { "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "lang": { "en-us": { "role": { "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", "label": "Weighted Average Number of Shares Outstanding, Diluted", "netLabel": "Weighted average shares outstanding \u2013 Diluted, shares", "totalLabel": "Weighted Average Shares Outstanding, Dilutive, shares" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations", "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r159", "r165" ], "calculation": { "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails": { "order": 0.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Weighted Average Shares Outstanding, Basic, shares", "verboseLabel": "Weighted average shares outstanding \u2013 Basic, shares" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://cyberoptics.com/role/ConsolidatedStatementsOfOperations", "http://cyberoptics.com/role/NetIncomePerShareScheduleOfNetIncomePerBasicAndDilutedSharesDetails" ], "xbrltype": "sharesItemType" } }, "unitCount": 9 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r101": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "220", "URI": "http://asc.fasb.org/subtopic&trid=114868817" }, "r102": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "220", "URI": "http://asc.fasb.org/topic&trid=2134417" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3151-108585" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a),(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a),(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3521-108585" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3044-108585" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4273-108586" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4297-108586" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(2))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r126": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(k)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(m)(1)(iii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r129": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(m)(2)(ii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6787-107765" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(n))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column B))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column C(1)))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r133": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column C(2)))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column C)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column D))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column E))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r138": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "http://asc.fasb.org/topic&trid=2122369" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6801-107765" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21728-107793" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(4)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6911-107765" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=SL124452830-107794" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.M.Q2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1448-109256" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6935-107765" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1505-109256" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1252-109256" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r164": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1337-109256" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e3842-109258" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6935-107765" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e4984-109258" }, "r171": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "http://asc.fasb.org/topic&trid=2144383" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "270", "URI": "http://asc.fasb.org/extlink&oid=124437754&loc=d3e543-108305" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "270", "URI": "http://asc.fasb.org/extlink&oid=124502072&loc=d3e1280-108306" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "270", "URI": "http://asc.fasb.org/extlink&oid=124502072&loc=SL124452896-108306" }, "r175": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "270", "URI": "http://asc.fasb.org/topic&trid=2126967" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e7018-107765" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6327-108592" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6442-108592" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766" }, "r190": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "275", "URI": "http://asc.fasb.org/topic&trid=2134479" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "29", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8864-108599" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8924-108599" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(12))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9031-108599" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "a", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "b", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9054-108599" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5144-111524" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124402435&loc=SL124402458-218513" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124402435&loc=SL124402458-218513" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=124260329&loc=d3e26853-111562" }, "r227": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27161-111563" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27161-111563" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27198-111563" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27232-111563" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "5A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=SL120269820-111563" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27290-111563" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27337-111563" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27340-111563" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)-(d)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27357-111563" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27357-111563" }, "r237": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "320", "URI": "http://asc.fasb.org/topic&trid=2196928" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=123583765&loc=SL75117539-209714" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=123583765&loc=SL75117539-209714" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(2))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=123583765&loc=SL75117539-209714" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "321", "URI": "http://asc.fasb.org/extlink&oid=123583765&loc=SL75117546-209714" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(3)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(4)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919244-210447" }, "r251": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919253-210447" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919258-210447" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919230-210447" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL82922888-210455" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL82922895-210455" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124269663&loc=SL82922900-210455" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121590138&loc=SL82922954-210456" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(24))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4542-108314" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.BB)", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729" }, "r264": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "330", "URI": "http://asc.fasb.org/topic&trid=2126998" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=123349782&loc=d3e5879-108316" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=6387103&loc=d3e6435-108320" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=123353750&loc=SL49131252-203054" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13777-109266" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(26)(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=120320667&loc=SL49117168-202975" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267" }, "r274": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/subtopic&trid=2144439" }, "r275": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(26)(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "((a)(1),(b))", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(2)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "30", "SubTopic": "40", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=118172244&loc=d3e17916-109280" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "25", "SubTopic": "50", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=16397303&loc=d3e19347-109286" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=123351718&loc=d3e2420-110228" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(26)(c))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r299": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "http://asc.fasb.org/topic&trid=2144648" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14394-108349" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14453-108349" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14472-108349" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751" }, "r307": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "http://asc.fasb.org/topic&trid=2127136" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123377177&loc=d3e11281-110244" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=124440162&loc=d3e12069-110248" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r310": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12524-110249" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "((c)(2))", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "((c)(3))", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249" }, "r313": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "((c)(4))", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249" }, "r315": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1),(c)(5)", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(3)", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(5)", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(a)(2))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S65", "SubTopic": "10", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359872&loc=SL124427846-239511" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r328": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r329": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r330": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r331": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r332": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r334": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r335": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r336": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611" }, "r337": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611" }, "r338": { "Name": "Accounting Standards Codification", "Paragraph": "69B", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612" }, "r339": { "Name": "Accounting Standards Codification", "Paragraph": "69C", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r340": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r341": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r342": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r343": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644" }, "r344": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644" }, "r345": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770" }, "r346": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130531-203044" }, "r347": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130532-203044" }, "r348": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130533-203044" }, "r349": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r350": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r351": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r352": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r353": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r354": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r355": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(1)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r356": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r357": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130558-203045" }, "r358": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130545-203045" }, "r359": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r360": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045" }, "r361": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130550-203045" }, "r362": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r363": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r364": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r365": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r366": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r367": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r368": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r369": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(i)(1)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123338486&loc=SL49131195-203048" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r370": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123338486&loc=SL49131195-203048" }, "r371": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "http://asc.fasb.org/topic&trid=49130388" }, "r372": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "710", "URI": "http://asc.fasb.org/topic&trid=2127225" }, "r373": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "712", "URI": "http://asc.fasb.org/topic&trid=2197446" }, "r374": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r375": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(1)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r376": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(10)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r377": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(2)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r378": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(3)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r379": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(4)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r380": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(5)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r381": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(6)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r382": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(7)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r383": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(8)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r384": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(9)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r385": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r386": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r387": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r388": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r389": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(4)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r390": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(5)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r391": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(6)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r392": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(7)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r393": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(8)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r394": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r395": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(i)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r396": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(ii)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r397": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r398": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r399": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(A)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r400": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(B)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r401": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(C)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r402": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(03)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r403": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r404": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r405": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r406": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r407": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)(1)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r408": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)(2)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r409": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)(3)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r410": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)(4)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r411": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)(5)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r412": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)(6)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r413": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)(7)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r414": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(i)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r415": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(j)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r416": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(k)(1)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r417": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(k)(2)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r418": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(k)(3)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r419": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(k)(4)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r420": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(n)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r421": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(q)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r422": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2410-114920" }, "r423": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2417-114920" }, "r424": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2417-114920" }, "r425": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2709-114920" }, "r426": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(1)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2709-114920" }, "r427": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(2)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2709-114920" }, "r428": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(3)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2709-114920" }, "r429": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(4)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2709-114920" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(c))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r430": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(5)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2709-114920" }, "r431": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(6)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2709-114920" }, "r432": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(7)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2709-114920" }, "r433": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2709-114920" }, "r434": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e2919-114920" }, "r435": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921" }, "r436": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "70", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=49170846&loc=d3e28014-114942" }, "r437": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r438": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(b)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r439": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(c)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.1)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r440": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(d)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r441": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(e)(1)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r442": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(e)(2)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r443": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(f)(1)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r444": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(f)(2)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r445": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(f)(3)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r446": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "80", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948" }, "r447": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "715", "URI": "http://asc.fasb.org/topic&trid=2235017" }, "r448": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=123468992&loc=d3e4534-113899" }, "r449": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.12)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r450": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r451": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r452": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r453": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r454": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r455": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r456": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a),(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r457": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b),(f)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r458": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r459": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.13(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r460": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r461": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)-(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r462": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r463": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r464": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r465": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r466": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(3)-(4)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r467": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(4)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r468": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(i)-(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r469": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.13)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r470": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r471": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r472": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r473": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r474": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r475": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r476": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r477": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r478": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r479": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.14)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r480": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r481": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r482": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r483": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r484": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r485": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r486": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901" }, "r487": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r488": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r489": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.15)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r490": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r491": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r492": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r493": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r494": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r495": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79507997-165333" }, "r496": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79507997-165333" }, "r497": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79508013-165333" }, "r498": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79508013-165333" }, "r499": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79508029-165333" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.17)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r500": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79508029-165333" }, "r501": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79508043-165333" }, "r502": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79508043-165333" }, "r503": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79508057-165333" }, "r504": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL79508057-165333" }, "r505": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.D.2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809" }, "r506": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11149-113907" }, "r507": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122142933&loc=d3e11178-113907" }, "r508": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "35", "SubTopic": "740", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120384911&loc=d3e23163-113944" }, "r509": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "http://asc.fasb.org/topic&trid=2228938" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r510": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "35", "Subparagraph": "(a)", "Topic": "720", "URI": "http://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848" }, "r511": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "35", "Subparagraph": "(b)", "Topic": "720", "URI": "http://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848" }, "r512": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "730", "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373" }, "r513": { "Name": "Accounting Standards Codification", "Paragraph": "10B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=SL37586934-109318" }, "r514": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318" }, "r515": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318" }, "r516": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319" }, "r517": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319" }, "r518": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319" }, "r519": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r520": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r521": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r522": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r523": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(4)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r524": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r525": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319" }, "r526": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319" }, "r527": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319" }, "r528": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319" }, "r529": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.2)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r530": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319" }, "r531": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319" }, "r532": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319" }, "r533": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319" }, "r534": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r535": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r536": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r537": { "Name": "Accounting Standards Codification", "Paragraph": "217", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=124434304&loc=d3e36027-109320" }, "r538": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r539": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r540": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r541": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r542": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r543": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r544": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r545": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r546": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r547": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.3)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r548": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.4)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r549": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.C)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r550": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e39076-109324" }, "r551": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324" }, "r552": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324" }, "r553": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "270", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338" }, "r554": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331" }, "r555": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "http://asc.fasb.org/topic&trid=2144680" }, "r556": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Subparagraph": "(a)-(d)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457" }, "r557": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5227-128473" }, "r558": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473" }, "r559": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.24)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r560": { "Name": "Accounting Standards Codification", "Paragraph": "38", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5504-128473" }, "r561": { "Name": "Accounting Standards Codification", "Paragraph": "38", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5504-128473" }, "r562": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569616-111683" }, "r563": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569643-111683" }, "r564": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r565": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r566": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684" }, "r567": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(3)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r568": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c),(3)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r569": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r570": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r571": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "810", "URI": "http://asc.fasb.org/topic&trid=2197479" }, "r572": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5579240-113959" }, "r573": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959" }, "r574": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959" }, "r575": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5580258-113959" }, "r576": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959" }, "r577": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41638-113959" }, "r578": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959" }, "r579": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624171-113959" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r580": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624171-113959" }, "r581": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624171-113959" }, "r582": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959" }, "r583": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959" }, "r584": { "Name": "Accounting Standards Codification", "Paragraph": "4E", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624181-113959" }, "r585": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41675-113959" }, "r586": { "Name": "Accounting Standards Codification", "Paragraph": "182", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123421605&loc=SL5629052-113961" }, "r587": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "25", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=121577467&loc=d3e76258-113986" }, "r588": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=121558989&loc=d3e80720-113993" }, "r589": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123477628&loc=d3e90205-114008" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r590": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)(1)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r591": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)(2)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r592": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)(3)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r593": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)(1)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r594": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)(2)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r595": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(c)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r596": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r597": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(2)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r598": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r599": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(4)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r6": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "205", "URI": "http://asc.fasb.org/topic&trid=2122149" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r600": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r601": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "815", "URI": "http://asc.fasb.org/topic&trid=2229140" }, "r602": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r603": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r604": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r605": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r606": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19279-110258" }, "r607": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "60", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=7493716&loc=d3e21868-110260" }, "r608": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13279-108611" }, "r609": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r610": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611" }, "r611": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611" }, "r612": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612" }, "r613": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL75039408-165497" }, "r614": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL120254526-165497" }, "r615": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL120254526-165497" }, "r616": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL121967933-165497" }, "r617": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL121967933-165497" }, "r618": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL121967933-165497" }, "r619": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL121967933-165497" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r620": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL122642865-165497" }, "r621": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123597120&loc=SL122642865-165497" }, "r622": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=120253306&loc=d3e28228-110885" }, "r623": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "35", "SubTopic": "20", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=123602790&loc=d3e30226-110892" }, "r624": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=125521441&loc=d3e30690-110894" }, "r625": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=124440516&loc=d3e30840-110895" }, "r626": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906" }, "r627": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900" }, "r628": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r629": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.8)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r630": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r631": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r632": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r633": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901" }, "r634": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "830", "URI": "http://asc.fasb.org/topic&trid=2175825" }, "r635": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "840", "URI": "http://asc.fasb.org/extlink&oid=123389372&loc=d3e36991-112694" }, "r636": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(Note 3)", "Topic": "840", "URI": "http://asc.fasb.org/extlink&oid=123403562&loc=d3e38371-112697" }, "r637": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "840", "URI": "http://asc.fasb.org/extlink&oid=123415192&loc=d3e39927-112707" }, "r638": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "840", "URI": "http://asc.fasb.org/extlink&oid=123415192&loc=d3e40010-112707" }, "r639": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "840", "URI": "http://asc.fasb.org/extlink&oid=123415192&loc=d3e40019-112707" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.9)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r640": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "840", "URI": "http://asc.fasb.org/extlink&oid=123406913&loc=d3e41499-112717" }, "r641": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "840", "URI": "http://asc.fasb.org/extlink&oid=123406913&loc=d3e41502-112717" }, "r642": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "840", "URI": "http://asc.fasb.org/extlink&oid=123406913&loc=d3e41502-112717" }, "r643": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "840", "URI": "http://asc.fasb.org/topic&trid=2208923" }, "r644": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "30", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123388062&loc=SL77916639-209961" }, "r645": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123341672&loc=SL77916155-209984" }, "r646": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r647": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r648": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977" }, "r649": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226024-175313" }, "r650": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918666-209980" }, "r651": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(3)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980" }, "r652": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r653": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r654": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r655": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r656": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(3)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r657": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(4)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r658": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r659": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226049-175313" }, "r660": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "25", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408481&loc=SL77919140-209958" }, "r661": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=124258985&loc=SL77919359-209981" }, "r662": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "848", "URI": "http://asc.fasb.org/extlink&oid=122150657&loc=SL122150809-237846" }, "r663": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r664": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r665": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39603-107864" }, "r666": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r667": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r668": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766" }, "r669": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)(i)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226052-175313" }, "r670": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)(ii)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r671": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r672": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r673": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r674": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r675": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r676": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r677": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r678": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r679": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a),(b),(c)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580" }, "r680": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r681": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r682": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=66007379&loc=d3e113888-111728" }, "r683": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=109249958&loc=SL34722452-111729" }, "r684": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122625-111746" }, "r685": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122625-111746" }, "r686": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122625-111746" }, "r687": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(4)(i)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122625-111746" }, "r688": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r689": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580" }, "r690": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r691": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(4)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r692": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(5)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r693": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(6)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r694": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(a)(7)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r695": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(b)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r696": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(e)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r697": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(e)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r698": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "50", "Subparagraph": "(e)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=125521744&loc=d3e122739-111746" }, "r699": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991595-234733" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580" }, "r700": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123371682&loc=d3e55415-109406" }, "r701": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "330", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411" }, "r702": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "730", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433" }, "r703": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856" }, "r704": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959" }, "r705": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079" }, "r706": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079" }, "r707": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079" }, "r708": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "340", "Topic": "928", "URI": "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004" }, "r709": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580" }, "r710": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447" }, "r711": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447" }, "r712": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447" }, "r713": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447" }, "r714": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447" }, "r715": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447" }, "r716": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447" }, "r717": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447" }, "r718": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447" }, "r719": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(1)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580" }, "r720": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(2)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447" }, "r721": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "http://asc.fasb.org/extlink&oid=123384075&loc=d3e41242-110953" }, "r722": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r723": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r724": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r725": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(2))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r726": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r727": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(9))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r728": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.15(5))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r729": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580" }, "r730": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r731": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r732": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r733": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(26))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r734": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(27))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r735": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884" }, "r736": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "320", "Subparagraph": "(b)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=123599081&loc=d3e62557-112803" }, "r737": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "320", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=123599081&loc=d3e62557-112803" }, "r738": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "320", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=123599081&loc=d3e62586-112803" }, "r739": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "320", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=123599081&loc=d3e62652-112803" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e637-108580" }, "r740": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630" }, "r741": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(15)(b)(2))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r742": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(5))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r743": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(1)(b))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r744": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r745": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r746": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r747": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r748": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r749": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(3))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e640-108580" }, "r750": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r751": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a),19)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r752": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r753": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(19))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r754": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(22))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r755": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(23))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r756": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(3)(d))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r757": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r758": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r759": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e681-108580" }, "r760": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439" }, "r761": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r762": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r763": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(c)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r764": { "Name": "Accounting Standards Codification", "Paragraph": "29F", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117819544-158441" }, "r765": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r766": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r767": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r768": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r769": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "14A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669686-108580" }, "r770": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r771": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r772": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(ii)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r773": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iii)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r774": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iv)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r775": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r776": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r777": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(e)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124508989&loc=d3e19393-158473" }, "r778": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195" }, "r779": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07.1(c))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=120401555&loc=SL114874292-224272" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r780": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column B)(Footnote 1))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r781": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column B)(Footnote 6))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r782": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column B)(Footnote 7))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r783": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 1))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r784": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 6))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r785": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 7))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r786": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column D)(Footnote 1))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r787": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column D)(Footnote 6))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r788": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column D)(Footnote 7))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611197-123010" }, "r789": { "Name": "Accounting Standards Codification", "Paragraph": "5D", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-13D(Column B)(Footnote 2))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=SL120429264-123010" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r790": { "Name": "Accounting Standards Codification", "Paragraph": "5D", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-13D(Column C)(Footnote 2))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=SL120429264-123010" }, "r791": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-15(Column A))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010" }, "r792": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-15(Column B))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010" }, "r793": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-15(Column C))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010" }, "r794": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-15(Column D))", "Topic": "946", "URI": "http://asc.fasb.org/extlink&oid=122147990&loc=d3e611379-123010" }, "r795": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "310", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Topic": "948", "URI": "http://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014" }, "r796": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=123366838&loc=d3e3073-115593" }, "r797": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=123364037&loc=d3e3115-115594" }, "r798": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "440", "Subparagraph": "(a)", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629" }, "r799": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Subparagraph": "(d)", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99779-112916" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r800": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99893-112916" }, "r801": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column B))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r802": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column C))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r803": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column D))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r804": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column E))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r805": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column F))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r806": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column G))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r807": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column H))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r808": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column I))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r809": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580" }, "r810": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 4))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r811": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 5))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r812": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(c)", "Topic": "976", "URI": "http://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663" }, "r813": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "978", "URI": "http://asc.fasb.org/extlink&oid=123360121&loc=d3e27327-108691" }, "r814": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "740", "Topic": "980", "URI": "http://asc.fasb.org/extlink&oid=6501382&loc=d3e54053-110423" }, "r815": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "25", "SubTopic": "740", "Topic": "980", "URI": "http://asc.fasb.org/extlink&oid=6501382&loc=d3e54136-110423" }, "r816": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "985", "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756" }, "r817": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r818": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r819": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "g" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580" }, "r820": { "Name": "Form 10-K", "Number": "249", "Publisher": "SEC", "Section": "310" }, "r821": { "Name": "Form 20-F", "Number": "249", "Publisher": "SEC", "Section": "220", "Subsection": "f" }, "r822": { "Name": "Form 40-F", "Number": "249", "Publisher": "SEC", "Section": "240", "Subsection": "f" }, "r823": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1" }, "r824": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1402" }, "r825": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)" }, "r826": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)" }, "r827": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(3)" }, "r828": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(i)" }, "r829": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(ii)" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e557-108580" }, "r830": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(iii)" }, "r831": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r832": { "Name": "Securities Act", "Number": "230", "Publisher": "SEC", "Section": "405" }, "r833": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "848" }, "r834": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "848" }, "r835": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "848" }, "r836": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(01)", "Topic": "848" }, "r837": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124507222&loc=d3e1436-108581" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(1))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(21))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(24))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r93": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(25))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(5))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(7)(c))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1(e))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1,2)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r99": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" } }, "version": "2.1" } ZIP 96 0000897101-22-000230-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0000897101-22-000230-xbrl.zip M4$L#!!0 ( &M<:U2E?TVXESVT:V[_=;]?X'/,UDKEV/HDGM)DK@@]TYBDV"CEU^???GM_VYOGWI,#YBI=49:;< \ MR] =[=QR=,>P=%N[\2PGL)R>UG",NR;2#G9W.X=[N[NYQUS0[E>-CXW"?'>M')>V"._O3__S6#P:V]CBP'?^CX89.X(W^O=4/@N'' M#Q\>.YY=]IE1[KGW'\27'V"4ZI;X@>\%T<-=W>^47:_W 3ZDA[8KU>W=Z-'0 MW^[I^G#\AYG MLE.I['[ KSNZS^3CUF.0_;3EP*/LSY/6Y8? TQV_ZWH#/;!,/!!_YE=!"!E[O\XP_P;;1RW]W;J1Y.V"OQA#H):]+CJ?49HPZ+'L>_ M>.XPL R_;+@#.K3J3@P&6D20N<)]OL) /NJQ;NXL#C[ M\K9;@-0$@]+X$PZ MWNK^=N5( :KUF/>^ZJXRD'S<"0?9SYN!]R$8#=D'> )I1 P?-LX MB#_E'1REU>WH$N4C#4E$-'G7F6'^KK,MU_#IMS[3S4^_!59@LT]XS-OR;,LP M\&\?^!>_#5B@:SCJ-OL[M.[_O77J.@%S@NU;&'%+,_C?_KT5L,?@ \WHTV\? M\$?P'_Z&CFN./OUF6O>:'XQL@)9I^4-;'^&<&3QM/7[$!YGWZ?_\S__Y'TVC M#RS39,XG_"O_ )Z]YC/GKWP,6@BGLQB/CC[ L9GUL.]^'Z,]_0A_!TX(4P@^M:^ZSVQV\?$J]YXKOKP#""$? +UQNZ M'B&S'0#5/^5D&GF$,I7=]%2NKI\^C1]7EF,-PL$5&\"=E9/"D_UXX[EF: 3? M= _N3#"Z@4%<4YD'4&%^D?Z])2[?1S/T1DSWMCY5GS&C2P8DN^_:9F,P]-Q[ M-@"H^'Q^V;,57 S-2&^=8U+JZMNX_X+37^!4SQX MF2F.0Z]FFA[S?0)=TX-)WEM$VZ.9'"X2<^K[SUPCQ/7?(EVV$/DM!G<@4-Y] MG'YW5[=]MMC7UX 0ZG;ZU0>5]*OQWXO<^#H\W0-A\<)S'X+^J3L8ZLY(F4#U M!=?.9] >Z+9]$OK UWQ?>?,8P5OTTMM]9MOC*QZC;@M<\6GH>7#8YQ:\P/X. MUZCNF&< >>7U>^G7;X/H!^+!(E=^;MG,.X7W]EQ/7?K^&(\!UJL;!K.%#D _ MG#B331 D8$:PP )H6/QG]^USY1) MPFT$"?BC8]EREG)"\MW3]Z81$^:$["*T3!1)&TX='C""$P;$D\'":MV >;?NT#(. M*@?9=%D,T0+9"][E](#9$>6%X9H=V^H13ZX_#F%89MY: WBDV6W#IWZ7+YIS MQVJ\48>[K\E?9F'8AZ_&3DX!49YN-QR3/7YA"L0/Q_A(!?XY/#C:JRYT BW6 MLWP4]8.D&'=XE'[_Z?>3>JMY<]LX!=6\V;I9S"QJ<*=,O%?GMMY37O\:K"RF M;N?PB4+2C\:X&0[S$B_GR$N_?HR7G7]?*.@X<><\G!.4(/'^,8[VG?E/(Z;5 M!1'3H]T%$-/,+6D87:\6FE;@>K4@8*"KXV!)-!X=S(Q&^DQ1KW ZH'MS*NS+ M.:(1XZ-/"BS,3".CQL<^:?!)51%TX"WQ-:J8_][RK<'0IM4GQXA?GGH;GX#O MAI[R?K)9?!1[0\N$PZH>2T83#D(;V>@U"^XN M+S2-+3%H-"PCD$6?1I];)G[3M9BGT;19I@7BM/$E2>O2/QX?V&<]G);RA?C* MA,D\#FW+L (^5\VTX$D?#CA&(XGR^'O4,.!R@)P%BC-B\]'RMS[)Q^;=EM\^ M9,Y G?V'[.G+SU/[*!8[)(J1L;MD9@H^X3E*02SY37K\Q$CR0X&).8%".HE- M-Z=F_A7R_=A4>$S8C/4'18L%< V86=<]E XWBT9D+W[]#UT!?S/H@\8&^^.Q M/N[B/4-CW8!M% YFWH_UAP;*>FBC=8V?&P6!L76OZU''0O5;'>S3]@?VP O0 MI/5)NF KT4OB[\9^QK@=C/\HL:WRFX7=H)7'QJ%#/+F,LCKFR7:;&#!-QAF MXGIMV#S76_[54!,XT847>O64(A95B:O(77(@'.1BY:Z\R%B("<,'-?-Z77$@2,+I=7'V>>+BQ9J???NB./N :\?FFM*A!GY*U?6L79Y]A>+^!",N>K M;MML)$G42HO9+:;;=,RP*.S]CON%90_QCLRN)F**2C6_* MXBC4!+AB_9*/5Z^N [R^[;< W<:#;LD)I*)XZC;S15+O-1/;\N,T] -W@%X[ MQV"8HDKU!BS_9^K[IK/B%JS88YU:Z,GHA#E&?Z![/Y-R7N:&+0;*$R8S+F]. M.:+%7:XK_2_7DV_SE1L]!H+BDN5 \O78.(]X8 )&_A!5QR=-@B3&#A9__Z06 ;X.[%K]_2T?L& M09_ ZT C)K*VUD=+U'M\M>MZPHG\$'E:"48Y]M"PKNG8.@,];%^%-.6Q M(#JK0W1>'RCGNN5]U>V0-9QA&/B7[)[95>%)WEMU5$2+.QE%?_P,[]$]HS^B MI2;A,6$S-A,).P()NP42HLW83"3L%D@8VXQU14*LN]0'0]L=,4;E(IK#U?>$ M1H+ @^Z9XX$[N>LMM(]<([P?>!8VE* ]NW.LP&^U[]8:)1/77" EAZM6QZ@4 6X?&I77 RX95O7IBUY_)E(<_%(<_,H0BD+HV!C2H'#2ONXQ[#F3 MQ5S7\OB% W^.#2@H1FX5KP)&RPNC-U9;U_+4,WE'025FERL*5*S;I:?%7F"[ M1)2QSUTO0P1?$Q:0H6_,L?J"0$Q"$!? \SAHRP_7!$-98L1<&U# *(_/R%(D MZP&4N2JMI-:^KEPG/NP)I64VZN"?56)GU4%P V1D;8[]W (ZSRZM>PR+@>WJ M61V;U7R?!?[)B">E9@D3?RE'EX) 9\YS>[9VSH^M:Z@X(78GO*EJP_4G)C7K@1 MOD%U\X!NKT^,V.*#?^:RY>5XC#(V>OW!1XS\1#=^,C.^D>N!LJD<:L+:U_7@ M)\:%K%<7AT7& \SRWJ)/PR*1N$[]&98!B44'AN:.WYC\$UA7?OU,?7(3,?N2JF8!Y!?5.#81K@M11@I<+B94+1AM MG!*SU/^[)LAX5C[UTG=YF$J,ED?44XOZB2\NN&XBDI=%:BW@ MO2 Q=A-!_.HR;('6YPNUFPS4UY!H"XR^J(B[LR%073$1=V,*0R].Q%UW)*^3 MB+LQ\)Y7Q%UW$*^DB+LQ:)U#Q-T4H*Z*B+LQ&)U?Q-W=$*BNF(B[YATO7D+$ M77$!(SAA7==C MH*37N@%<8'=H&0>5@_5 8]SKW<YU@(9TY Q\@,VV!!DJ&LMD)&#C(;C#X'>(J%V MS"L6>*[M]D:;@),95EZ@)@_\9CAH4[O7L&&[ASM@E<9^JZ"\2,(:8B M:X(/7&>-VMB!R!V04,ZMVUC9VW7&9?2Q=;\I0BI/04CE=1 "V@Q7(IA)-CO< M48_U<=_O02\PW'6Q/:"YF9 MS@0*1;(I5BF.LUH/S,YOX)FP&85I>#J6KEEPYX"X9EO_Q2ZK,IC\ F3Z2]?? M+%5FWFTI\#7='EW0JN6D56_JI"B(SNH0G26SK*PZ*E:V>?4R:W%K"XJ5;%[] M6ORDZ!^\9/V#7^G@BW99&W7IZ"S-D;K0\2%*6$8"0W-<]TIB4CW ;[QQK72K&I%!# MFN-<&U# :!9"LY9@R20Q!2HFHD(APWGWJN6':TQ 1'_8ETWW6=VVS,1AZ[CVOG[:!!S]A']8?!#= 1M;FV,^!Q0?LTKK' M7W?O4KU MRWH *UYEAGMHMBTH$)2#H#/6Q-_IXUR[./N?LKR_7_.RO M+XNSSSE[J@-?#S'.:/6YP20H($L86VP!B_F+2*QUXOF+%IB8:R9%"OPC SL]+J@5'EFM(LU/_OV17'V.6?_I;7F9_^E59S]@B24=2F)LE82RL84 M9YD7K>L>*;B2:%WSD,!IE>0V6O%[:I6Y0N=[>XQN"NM?%8QN#->? Z.;PO!7 M!:-KSNL5^XEN,[\%2W9"=BV#VJ/@[5/7,6 %'M7F;UG^S]3W36?%W09QK']J MH2>C$^88_8'N_4RB)7/#%@O@C,F,IWM/.:+%S(B7G, P=O$V7\WT28.@,%;D M7++?;U;U?LQHJ/K]ICC[21[6FF_IJTTH9_:OQDLM(#$)$O$>7KJ&OOIE6F<& M2-[""[@\J:5NN^]ZP2WS!G%GG!4/[%O&CKKQYHY+8ODGL*[J V*S*KM7H0A@ M.3VX^XZI>Z9_-S3A%@!V]RK' J.)FG4_SJQNEWD@7;,3%CPPY@AI^B*T3#AP M4,/J\( 1G+"NZS$XVEHW8-ZM.[2,@\K!>F [[G/F8WE']A!OY(WG.O!'@Q=P M&NN*-7V[%R?Z/Z_TX'SWRPK@IM>&^" QA1M"YBEO F;=,XX):A5G45Y 8F,6 M@:DWO*W5)>XBM8D<9EDJ611L9WY_Z@;"]=7=J04NGR*JD_ISZ3J]S43GDHCK MDT]A_3'Z-"%@0[&["H+ I@.ZR%U;@T.<)-%M*.U9*JENTXE,3BS'AD/S-<(Y M"E1.0.7Z9V[BUV^9L_D6K-#20;8D;*_UT9)P/;[:=3WAV %,5NPN\SQF-D$- MOH4=6^V#EO085F(YO697+K#9O7!=,U6>(WHX;Q<*3W V97@S=*S*O=H_6K$M M6G+D95*L6G#C6D[0< JRE;$5!>W*D6K6URU3.$.R3WR]=>-"+ MAD54T,I&!8P:Q[O6.S5!;0;=]C:R()+D_J MS?R927GGM+B;/S452$'"NMZ;L^C>M"]^_.YV_'8X'(*0!P2ZY^F2F[68&1K, ME$V[ZX]#V$>VXJ+/ BL6S?(Z0I;85@5K>7N^V&O'&8/?=,[#(/187?<<[(6 M/G_=[Y_;[@/<,S^TD>N>>^Z@_FA1?X7DE9P(@S=5%:M/416K+ZTJSL:0QA(/ M^?H!6%>.=BMK.[^ +,]V-ZMO#@94)7Q=2(#\QD95I,,Q*I%K=NU; N[ ]9I MIJM]GK$T3 T/;T#4')')1J<.+_[)2/TF/O3L72C$YAP?70&:)07-4KKEJLK> MO/\P?.^ !5?QBG\1ZZ"$YH/PN^1H<,><=-_#TE#<,X8]/'K_]=PCS.W?= M(/!]]/_N!D]^QQ_PBB#C)J@O^./)H]^USW)'MGQW;Z=Z^!&>><[X-\RC MLQY[CVG=P\T;AQ_^^#H<,.#L;@8_GF."Z4EFC:J\](PY[L!RIKUV.C33[\T: M6'Z?V(49=G0(>G'ND9%&C4\\^< \AH'2EM/[@1]-?E'RV6>\TF$/NOW#'2)M MG/9*]=D97_G;!^L1?NF[H672!> MVUU]8-FCC]K_!D#:?0U>K7GN0'?^MZ31)[]J])AO_9=]U*J58?#KUJ?_^6V8 M&$-\N0=?:K;EL.T^LWK] #ZJ5G[Y50-IM6_?>*R,B=$*_WTK=;^W+B^N&U>E[2S\FE9VZGL[QTG MIM+WY%PZK@>'N-UQ@\ =;!NN[7H?M7]4Z)]?-?%MX ['ON(3W/;X!/0P<*// M;-:-/LJ:^H-E!OV/VL[^+SCG#WTO;W..WNS,C_+._+S9NM)^ _0[KD/4T#(T MP:=;K*L8E[8T1T"KP0J#OU"?5O'#\T_L&Q-+$O)#T&6^#B+IM/6[W+1.$T8^PO\<'E:U/ MC]'VT7_@GE[?U2ZU5OVFV;K5;NY:[;O:]:UVV]3@,M_"C=6JNYKK:=7]=^9[ MS>UJ09]I<;DMK?YH]#%0\E__J!Y4?GVYZRUWHF8$.(OJ\>X>P-&CZ7QGNJ?5 M'9.93P8B]Z[4N2(:(;*ZN[>%;QGHP;^WK,?@(SH>M@MNJ7;<;A,JG(_5M,!I$CCJ-JS9:%XY1^T'_:($K M_O32&)F5.;P!;I[.G(XCWD1#?-2L -Y@P,"QX*&=-R[KVG6SK+V;ET9PQ?G< MLAG\!$T(DCP<5P[3# NTVX/]P\/TU7__XE=?'E+>Z>R\F;BXDRLN3B,!AT=P M@M]/ZJWFS6WCM UB9 NX5.U6E2.7%I1">']7?]2!'"":D"9XK&?Y2 L"3?4MSF'KD_:._%$H6[E85DC["T0JW[3(\(Q$S7(,49^> M/H#'O)[N6/^EO[_7.&O2GH%)4-LF;8IV3\_!V;G#-]JA1KE5;IX)7?G%/X8].[=1\<16L]2F_-5>/ZNEZ[:5XV MVNGM*&E3^CV%O?Z]Z\ Q643UZ]H6/AG@#\B>V"YG!T -V8 UU6V./H'QCJ"I\#)20 M^9DD<#47#)#0$!-S4?6%'3(*\?C6?V_MO-4U0;I3\YB>N!C5W3$+[KO#@]WW MZ8LQMYD.^_3:-WV0B].B6V5O["KN[6SO@RZT#+?QJ0>U.*"V(H7S7_\XVJD> M_NK#^VPVQ+W4'-K,$@IP=HC+TW0X4ICT1&!_D%K;!](T\0_HZTHIJGNU@UKC M\//7W2^S*:JQ[GF(FN<$O342!(^?II/RH4D=S5%/CX^G::<[4P&2>%2*JZCW MJJC8S9==LZYOTE51L9R4IX(^41>\,QRS)=W2#EW##K4$>GRX'MV%0>XW0)OK M] 194>ROW/3!/&9JP]#S0[2!!"Y::$E$KNZ\ZTPRVVJ*5?5C+(6(EWW(L3S+ MJ97%Y&:G 8=C)RR]/<>_J/ZDE 8_1:N7'UD#O8>&2I[F$7W,J0AJ08'FN[9E M:AU;-W[^JN6AZW!FRT1P,0$=[Y[\=/9_HA[5:*0WK) M0[H6!F6Z0TS22*"C#WT+/HF)[0R'ERL&52;2P%R.5TEL=ZY1YFWW6G"$N451 MP9I&U9T>$;)8*]P;LTBU]EGM#PY0[4KW?K) N[P\E?[V M^56 I?3!_=;Q/KR\JW ^6;<7R;JJ@/LQ5Y!=D*U1NP;^.LFA_XHNZ5F"V>3> M-AR3>MQJG9%F]!F@%9-R-(MOH>)5M7Q-UQY K=O^Z;@/L(=,]V'))GSAAZCK MZKYFLJ[E<*=K*P11=*^RGZ%XP'&4%W,YZ1^W2GZ# M=7W!9;7%JAJT*,4:,D8/K]TQ5D-SV%_?\W?< #[Y.[3P^L&MZUHV/H*1Q7[V M=:2XH>AO:OS01! HRY@-% L!P5?7#IU ]R@BQ?,5X]N8%W.]#_^AS\@=F4+ MN^I[K0^W'(_=U'3;CLY>!46'B0=@S"0.IL6/J88(S81O057"1X<>,Q@I3M4= MC6($?>T=C.>'((_[V(4'YBIBOX*^'J3G_:#[X["E'XOYOP?BY9C:NQV^O@YC M ,>P\Q?,'I^G1S'9!V8@QJ%Z"E$(VE#W ^VXHIGZR%\LJ*>)&D<@:GS'U 8N M5@@, B^25V&-X8A'!:>Y#T%??ET&@LQH;B3#43PM>1W1N;%3^35GAO1M]=>2?"S_@:W< MF6UQZKN5,[.M2)JL[G2V=]+"/3\Y59IX 9 P M0M6ID7)$E"F.1Z)P?_^UHP=?VIT^V4PW.Q6[1,!*<$2@Y!^<Y90$RW8>(ZMG3Q<[X']I/^2JKQ M>_@"FX$!#_T %"%^.0T$\^O\M& L'!#MS3_9MJ .\8M,9H@8P2A. M7QKVT]^++8V^[]JN'CD'3,L?VOH(OT9>I_U?:X"T&G8.3J:6)NUC(N;LYN_C MYQ.1X]<"XW0A_& ?%<(,AIQ*LA'"C20\8Z:B9U_0U]B3.8-.BYF_AAIX &I@ M6\A7K4B^.N4"5%HY7*;@N:4^VF+F:SKSJ=>INO6I+K61"ZZ-9%VFO5_S]V"* M.R?MU5E67;8[06?$\+89C<=HJR$+#;!&M"('KA;Z7-\$ 851AG%&(B>HK/@N M>X0O?[#@U?!:6KV+BN2]Y1.K=73' &D&U5-1TA0E,ZIIRC=CZ+E8N2/'9[3[ M3L_T&943*L(+JI>+/[="%E]K67P&$Y.XHZK!WM%TV%+8)X(]M\/@)85K@E<& M#E_OD67[?WU-]WWF^_@7>3,8E36V[IDCXM$QK=)"JY\#5P^MA)YK:RY0>.5& MQL:>$(XD=@7M5?;4H$3=Z^@P[';ST68C<@/ PO ;Y49W+6_ [:-#&%5'8R@0 M 7(^FC07/32M0+RQG!*O$_^9& :4<"-E_"#+"'_ '4(SC#[92_2TRUY<\W6] MYLGPBB5#S%/LW'Z?V79$FMYE1 PD;+Q "&3"]LOYBJ_=Z?+@+G+GY,5=(6& M)YD2.>WUD-[#WP8\)(E"YN1VW[M$:-$8C_X%\5>#A]JA RH =L)L\NR2 T)6 M0/3I2,. .WT])@KDHY#%G6 6_ 4(-X^@%-Q)&10]7#;Z4'W7-LE109,%5@(, M2>M8)LU)]W^B!$>#P8S)_Y48AT)0Q%IHN$[H6\2M3'TDO_#&TS8&KH]\ X.. M[!$7.!FN!8#@.BA?^J"Q:'_SXGX?M7\*!]FYQRM$)CQD<3O+,0_93=BQ+>,< M;_^6A@7/Z =8U4\ZR3#.$0B'!43*)[.\6B''"0?;IDN4!1_8^K1S=%3:.=B! M_T6IU')*>15QWHA74145->?!8#6GV@S\L[55V2@='NV/'GI1Z M)DHBO";BA%N1'V);DE(7WDHW7E\YU[*YY($'"Y6@LH(#SYJG=U?UZ]NVUKB6 MM5;J9]K)=ZU5/Z^WZM>G]8^KR%EN"3K^T'5 6T!RCS5RM4:C 0(Y&_A:M5*" M7\/_X&Y5=PDOU3T-+QGP>\"?4N @@W<8# 0AK-_B\.N UQ#^BG@5UI@(K-)I M?<^T&\]]'&E1H6\R(J!Z4'.<$,CX%6/$U@#X= G[F-;N^2(6A-C;%7 +G#%> M\20AI>>(Q_6H*\U'3;0:/WCMGFZ]>F6?-BP?:=($9W _^V#_BG/K+4L#.?# FN&*J/,6G F)RYZ M9WQ+=F:-BU9R 9^QIAU:DUH*:D%QTF+@K+I2,FDF-US\.=OR_%GGU^+D-3.G M!;LOX>PYL3X7>?P'!X>O>A4S,<2)I+R@6!)3_V]E7RQ=D'T%FO:Y4GMS,AW3RX^3BSX/ZMS^OFCLY MA]2XK0.;*VN9IR3@-7V8K&5'*\TYW==>Z5F]?=IJW%!U6Z"P)W?MQG6]W"[09M^*C0+:Z8^3G6KUZ_G>S<5%9BRL!%IM,M*FC_/F2)MAJ:U&^XMV7CN] M;;;FA-?LZW\*O+#GX6KBZ^S'2?//@^_5[Z>W7R;BZV0ROJ:/\^;XFF&I=]>M M>KMY^;5^IK5O:^?GU!,"I45IZ)D'NV5>_6> Z_W%2O_BS?GA=;>PT)X!K M=S*XI@_SYN":8:67]8O:I080.ZW7SQK7%W-B;/9-V"R,7<"^_'%V^O7WJ_/: M).%_;S+&I@_SYAB;8:57(.MK[=IY_?:[=M9HGUXVVW>M>:G9[%OQXDA3-VHV MW3YGQ\4I?P8%NKG;KE?W/N==TYF/8X:QN&E@3MM $E_SPVE&6\+TZ3]+Q:NL M*CUI "__S_7.U6'MLCZ)9^U/IB?3AWES>C+#2J]JK2_U6^V\V=):]8M&&[OI MW K?9)OD\>:U5O_CKG'[O01/7)+SMWW;//WRN7EY5F]I5[7;VWJ+]W9KM-MW M\-'-7>OTJ9M_ES0+Q[W"YOWS^_[TV UN%D:$T?YLVA M-<-*KVK7M8LZ&B4BHHABUQWO'X5$#QZX_-YN$+$[;US7KD\;H 6<-J_/>%,R M? 8 >G=Y2X^@_DE>Y3D)X>S;^22T5E<5K9<_3KZT=KXTCO:_9EI](K1.L=A. M'^?-X3K#4O_ ]G>-6P#8USHA#SZXE']7] 6M=M*\N]4$]T<[[WQHG'VWGH3& ME=55KWZ<''T__O+MN'IQ.7,PSK#2F!JV 8%U'D6(H&S?W=Q< MTM]K+5!C:]A!9![TS;X]3T'?[LIR[NL?)[6+P_^<-UI[_\FLL"_0=SP9?=.' M>7/TS;!2WF8:PU8)MND#AM\;M9ZUV>MJ\ PSB!\BH^5\;UQ?T@QB] M,=V<#Z:S[^-38(I=R%83ILT?)X<[7TZ.OQT=938LC& ZA65/'^?-<3K#4C%" MJM6\Y)21C,=G\UOT9M^*S8+:S8^3B[W__.?N\OCXCTEJ\O$4?^OT<=X<:C,L MM7G[N=X"@H@AH2*R=1Z0S;X)FP6R$X30C^/3\H_=KWG^\>/D/WO-ZL7!\7[C.2&."SW(Z9.2GH[E='7, MO:GS'?/1JE*FUH^3N\;!_OX?IXW)<9.5R21I^CAO3HMF6.I9HU6G6+:25O^S M?GI'1I'F^7GC5#HPH@0W[:+YM=Y"!6!.F7_VG=HL)+9_G-RVKEK5+^W?)QJ5 MJU-">*>/\^9(G&&I,?Q.FUOV$Z2QV7=BLY!V^^/DY.;SM];9X=7>Q!#+ M*0%OT\=Y9'K]9T/L;/OZ&8A]@Z4]__\YTOC_/SL\G028J=$T4T?Y\T1.\-2)38) M=BCX V;;"2!BC$*[QK6"DC#N<CI67UNQCW[YFT6.+_^.&D?77V' MS3T]S30M27!.";^;/LZ;@W.&I=ZT&M>GC1N@E['Q6#NOUX5?H][Z"L+DG&1Q M]IUY<>2)L_KVX^3K\>_U;SO?ZNE5%'GWM/Y3OD)'M,I M9S>!_"SR6/_\<7)1/;ZN'?WY>3)]F1*.-WV<7 2\'&9G6%S]S\^-DX9PC&9X M3+7VZ>?ZV=WEO%1E_OUX8[S-?]?$R7\'^OGUC[WF_F%S1K'R%4Y^^J0^M1L7 MU[7;^7T]\Z]WGI,]2$8"S=?4\6T+2&Q]RJC?E%E>YM/_9/:9YTU+YJT:,*$% M2>(DAST\Q4PA9\*6*'-7?IY=BF&&^C+5),[R#KD?7>C7+@44[<_S"O_,#Z=9 MJP6)[4L4#5+_LZ!2/8NMGR6&3;4!DJ_(JT0BL&>$/IS]B>O^Q-*+6XE?O52! M$J)V,]1F6&PUH:C20[K@3URNY#7/95[2NA2'-D,%@Z?=SCS6FUL[2):$R"V8 MD%>2YL7/>-96PUDG_%*%>R[JU_56[?))+9&SYIG1]6Z)5GL2<:,7K%KXYB<_ M56 ]'768UQR"V(M5,WDY0ZQ5B&5MN[@[O+YQ]?AHCTH@\I9_C/JN:SW;[>@V MT(A[9KM#YM$3\/JPJQM85]M#YMF'!5$O2 MLP]_[X_\@ W@%ZX9&J)1J>7X0U%]G5[!L%X[_'1:966Q2*T9>B#ZZJ:H@^M3 M_4;;-:ATHQYH^\>5BG:!U10=[;-EV[YVYF$]1EBY^/0K-J@9E;0KRW&8[P9Z MF09]8!W?"I@&PIR'Q7HM?\89S?)8NAKW1UZ('G$"0SP\/)0-/#V73J]LN(/9 MWEW6OKNA9HCVC+Y?TKH>(SG'Z&/CN1+0>D_TC/5YYXI4TUL\@ZC9!-9:M7P\ M6^RI8=@A00.'T'G52E&L'\[NW/4&5(FN)"L2VZ.H#Z_R_1\EY#_8@W/LVZ/M M+[R@LC/2] %S3-[-EJHUNW[4T;F$I^K&!\0[2 :R_J:8<%2",SK&X%6/SV=& MN>?>SWILO#KH $#K6;K-;P:N,1S"V>.F)T88K^6H991\Q#REG1TQ TZGQ+'Y M:H71@:@\JE0:A1-)OF]MVP2MU.]<.\MG0Z- M-VM@@3S$KFO;[@.5_.97[Z/6#X+AQP\?<&,MD]EP?STLL1WB4$1>\(I\&.(F M?L"+\Z&<%@ 6SP".1?^&9Z"6!](FC+1:>41H3P\\DDN2L!^8/DX6E8,,B M531_U[ZZ?<]I;6+V<.PAG(O%*Z<+;HOKZ%KTDVS^\.ZJ MU2X@L>F0$&!XK]!$$B0[0/& 5/&>;DAE "TJW20S"7DO@C[H1$"\@&21H@Y\ M07D.)5:D;=M([/-$UU@''[KHA\#F=$!U?3@XJPLC4NL?]CCD+4T\T1_)!^+K MN-3.2B7!EC,G";:P.1[259P7D&+$N&!#^G!H2^4JTD8+$7HIKL]KBT2*I"PN MC63'HK6.EMEAYPTT[RF&5]"67\(&G;-M32ZA<+D%%>30YQ97,KE=W4Z5O9)4 M ,X)I%(N*W('$//\_U747-2\1Q:S32XYB5=;][P%&9JVMX$UE >%$EM(1D2VW2 M>'\UF$*)$U!?*.Y&'Y%Y;W'+H^$..M2,CVBE[W:#!]C-DF).$K]C:+8D,FPR MW+O4Y/K,'B:L$#Z:IXG2XZ*IW1KOLO:86BR,:]O,Z<&\.R.A'(C=&O!9(1E6 M^P&!/JE+JYH8/C&B4 L8JIS4?4Y'FY?/1X3?R,,>QO3YWK7# ?Y@_(SCTWA* M.[.E=O"D1BE8S7JP&K0;C]$M]9[)QMS*_4Z02KB),(L!ZK4>BZXM4EG3 Y+' M+R= @?%VW?045S+9!#MB#64[.&_0)>%BQK(@2'BY$IS'4,U$D8JD/=&+W&<] M;C4 XMIQI9\ED^@#BD"SMJE;))?-(BGO&_8AQ]?"M'!@7)<34C,'N)W8 MO$^Q%8C?TJKSF$SV2DJXI3J2<&0/L.24X MG&2#\4*Y\P(:I?F@%VCJZA(A:8F\V7!0V4Q,G9UB> F7'>W#+'_4/F MO>X8V'-3-W[JU ^]W#4F:1] B]EN7^R>/)B)/0;2UC#X6AQEW9BM45:7/ H M0[HAA 'WP4EP<&6;TW89'!!_358=.%<79 C+2:%:9;WOFO4K_WU)#H1&L1X0 M%6GW0:4I(:$\Z?XLJ&L8WT44)B;M .PL-HK%U2>7BCW]8.8Q/4NCG>X!;U0N M.#G2/^QXA&23O^B)%TG*G/X 6R .^T"8^09S]3%24)7)1<*]=DNW>5R&[8Q2 M*\0E8\XV8,:A9K7D982I^^BI1&)=&:W#C9JA1&,U@:V-$2:,(,Q--WS7;M]KWH5 U$OZQ= MI9%VUJI=T0_.0;3N:U<,6-](DU1]\HSECJA[)Z17/LP GK7QM0T'CEG': ][ M5)HV,N*FPW K"#U()E""0@4CN6"2FMD$:TF2L<0A">,LX4F=A@M)N)"$7U\2 M3ML<]=B"!_=/V.QD!W2D/:+].;4#'[]W?NK.J!<<*/UVB JW]' A@^"L!%LH MDWM'1@&:;'R@*>HS2A.HP4>:*X-FMY;3CD M!.*$# @')'V#,#?0)(,^"8]2SAWV1SZHDR4)16XGXK@1=B48M@?":] ?J.;R M<<\ ;T^.FB+G\31>0AQ6<$Z2DV/]'3(!<%,U[O'VY20UAZDQR#,@/Q NUD@L M+B>I1_O;0=R,1-+;'ZO=XIY#""9LFG"9WJ2'C4?9_&P\@9>D M'@P0CX4JHHQO7>S7(]']'A4$F-Q"7Y7T^D7V9G&9>+0N;(4UQ /@&36@?I&5 M@7-H80Z+&7W*=;30V4X@A*M)P\87I'947DB"X]OD-%(;T1F3%<6(?;BL_X5A M=/L2F%@+%-)[9D8O>.U4QK&TTT4E-\Z4IYC(3%P[C.>88[,D]RSA.R%!CXO" MS]^+1:W\%*6 [>HQS\BQ/*3?.%$0"[G1[DQVOM^I5(]+(F1#N](]HX_Q]I42 ML;AOK@>BRV>FVT!HFUY/=ZS_IJ./ P-*D-61'!%_)S^F M()=N%_5*D? 1"9T@.X=HA>%_! 70,IC4)J7M%E13=\2X?@8,>$0"!JAC#-V7 M4JQ%R1D3'E!DT85X*R>BVG:2P3'\87SVIX,B"TDBG.$(I0J=R5P%Z(2^Y5!8 M+Q?4N00]9)XT(-D@"8 <%HRD,Y54:2Y;.&Y AL21?!&*_!A1PT41#-RT[9+( M.A';!Q(5W7S@SRC>F.1,0D,A R( "U5,]7$'VC\/*^5JZKL*-UUZF%KA,4/W MNO6W\$\9<6I$-GN-4Y/C@AF+B!Y^T'%UR^^QG MX2*'W->'*496-[F%$0)!]T2EBK)[X*$0G>L@/X"(Q_-2(V.A$/2B'[HH#]** M8T.%Z=)Y*K(*^JM4%0QV&8"@V2XZY35A? WHK"QO(%XHM3W:Z?N47E7'NVX M0OH@Q$*AF))%&2<-$!?RL!Z0](H3D:?=^0OO^#V+C.(8"$*;HVQXI$!8;-9= M@,E1_H^444E'A\VE>^""LB\0,G[N1.30;YIY2\H952#6E__-:VA^665:[UCD MFN+A*3+L6PTX9)QE$+6S,,:'X(4_<$+@':B'A0!Z#V$891MZEO_33Q-\^C#% M#1MHUZO6N%,"AJ_Q9+;6> XB<34,"X"5=Y"4XVT&)1'>'8=U1K-^L&B//O%T M-3^DS$D@_>4)46U3K"2+VO9):'^U)&->)R'N;26;&9S=G=ZVE3H*K^%5?[%T MZZ?46Y%;,RGU0+N- BC&MBIW%0>O[9K*WY#(V$U^"F(P\0V!:V[K<*/[F&JM M!*9D9VN,1Y1,2NJ;-5 RE9DL %*8_-?1Y-_^8Q=.4,3O$RH2G_P_D01T#I!4 M'6(OC(:GG?R&GW-FS/3DTT\<8T[,=2F+6U_]B2 I:$*1\:.4)Q!^8@I>5(-; MT@RIX"D%?G;/?E.0DR0NU[KCMIBLEL,(#!-1G@+ADX>E; MP:PV&T=3F-4"HN*CN&AA%19&.G*$*^%F"*E%)>M)L=REP"/%N*V5!E>Q/AB,>R !1;:OK2AZUN! ML+YSUPFO=Z6&N(F47GB'FQ'N-C&%\BWM!,]W><49/CR;K^]9SD^R^N%%IY , MN!X#K"2'VTX&!\SH84XRH4? W1\/RXGPKUH&$+@!?$%6 JR&9@TQK-" ^VJ* M(.;H N4,AQ9-GHS#$8!_!GRC35%U) B(6G*^CX&VCX]7*^16@;=^3^?/-B/+/BY]&U]3V9?TL24GP1B6RV)6,K!)N M1V:JU<0J3?+6+S;#"-_SP&F9O+62@&73IM1[I?]$SHY<%_GAA7P*R>PK?INY MKXY>H7CPN"^,G)33P])7[TX7LLK&RBK?F."@JB48T4]TK\<BBC)9*)YY,-FQA'"D7GZ-HEA M7J3O:KO;\!(/ Q^M1V;C?)(*L3H]? E7;_*/68J4S"-&$#RXW,&/94PY]>AB M*AEZC['*J8VE(]&?GR@N +MDZH$N@S&)BPZ!/Q$Q9H\4H D;?;@?!4K O/DO M>!(89I7Y##>/!\C,NJS4[#$D3\FVS%^T-8#=U1WFACXBAJ<2BSF7HAI<2G L MS)Z"7VD7=O:Y'L#GW0=K0FTUQ=1P"Z. MR(\UJD\PT'\R/Q7"2>R91H\8-,V;5RI8?/XN1;'$(1Q$$7B4*4E!:;U$X?EC MHH8J_"Q(JRIQL4&6CI-Y-;;K](": QIDS(4J-TR,9W@F0U\ *X[=H047?AN7 MUP*C0PIXK!\\$N4DA5$A(HDSZ3X3W>S29"$KG4E3!CZ)V("Y!9[5X2P1(_H< M9@/+:-:O2)IQ>)!H=H:_:7F4?2T3^61NHI+?-%NPUS."2@[S@TH6V23@A3H= M9$4F?T8&?*,:[(3PT>;\\6TV\]5BE2:664^5PZJ-. M!W+2OW>+@URY@YSCSB8I/CEZLDHJ9?0Y*'"Q8V(SVV%0)L;@X%!X$>;;'BE!04Y:X\$$D?E*5&4^6>J'T0.&_$FW"F'!- M)PL"*,(SI:,EJ\@J BM.-5$\*YHMSPQRO9]1-A 9R7 D5!KCT7*D8LITCV9) MOQL/41 :3X+V1C(T^?;=;I?*'H"LWI;:\M1Q=,/ '@K"V[!S](LLR*&Z^C#7 MB_]P/^_[2@HOR^3*6]]\\TC<*O+-%Y5OO@Q:?8(CDH_>R#*5I*']I@E5BUB. ML"@(J\YK55Y_:Q-/#FM4!>IXZQBJ&.*.;-1:+)9>I'=D/R:4;4J7)C7X^F_8HS [3&,_^$^3!YE MA"YTQ9,KRXUB%![_$4Z+_-[D?50L87R%*4M65!)TFM4L414^+PP)Y89WV=4W ML5)L,K OK@U*KCFL"<<+>79T[/*),^B$@Z%LZB7_8KA#JAEJV;8N"W!2D-0< M+L"D5S)C6Z@#)Y8*[22VA^>L$:@2KO9QT2.]QY$%']L>,L^P*/PA3BNM1E7H^:=*N?W)D9RE;"3R:@IR M.:*)J79;J$5KJ1;U)69TV4>&APF(MC2^B*2+>YS)D#HBCQ1GX,.M!)U&4B-) MB@*U_P&/AHB"8S-N'2(;$)^R$$F7MT^ :=Y;@*]WY\VO M[PG'N@&:C@C=I8IO1,2P:$8YCO:5CO89C;8EC]4&E[!;' MNH3'BK0B.WR- LO&0MB4U*X"$6N)B.Q(/LM7X^5F#Y)30^M(9$P%\)%Q+2M< M[F5"Y# N$+N]RC/)4O")*,/=2F6; M(B;A[/13 RC>MOG6P MT )ML6P059A!Q;@>V_YKTO9?BVS_<7B/K#&#/W_AFCQ+: Z:$@+4C.,G%NF? MT2ZQC1V=QNN0IX1I< 'DB<>3K3Y]>LFT7.HC_SH>WJ*DS**/ST^$/W*G*<\= MME%4$DFY 1IZL;$%K VS#]76Z;QN*<7!;O==.VD^$S5"?;0L]"$[<8-CLH*H4G8![-=MW%C MI#[3N2Q%)EV#.FR+T"VM\A M[ L7O>7R8[\Z3([!/BD;@MVYR)3.VQI%Q\G]XK3UR7W6/9&]GX"4ZR41%7O) M[\BDZA#DG0 +8:I&UXQUP*A8G9&:STF.+GR6:OB/QWY$U M$Q$7(%N9&C?NPBRPZBH,2=;KJ-$J;;G:KE79).ZHI>/@^3CEE?!XOT $>*;C M]04"G-'.(>(M(O *ST#LJ<&>.84*M8X\3I1+'6E="S/@\:;J'M)#G[.99$A. M!L7G7WBL9U%Q5%'#(I<_(0%.-/B3W)7W !1]]#RJLZ"^("9(ED]U Y@ZF[&F M?ABYI+P$F )5V!CK&#WFJ9>%(GW.DN\GIA,P M!PANPCVZ],$%JQ($L14;CF96?%-&I,*&M+P$\&UM2$?334A3+\D*Y(:]DF3S M@O-O) W>5Y'!NRVJNK[S.,*7G T8, SS&@@Y(]8J;2E@8/Z\CPGU MXU]3HV5@]]C40,X9YR?#",3\4XW#TO'#2G1+1FD/'@:<\<5X]^P2AA7S/I5] M9G=+7"VT150$$!JWXY)F&P7@< $&-*N1-!5$;3WQ#R$Z6>3>QN<2J<,D73EJ MV386J\,BLOGI9LZI3)IO!U#1*;A,\^:]@RS:F[7%P*XS/BX8^$8S\/V]V9U M+\W\EHA%S!PY7 N! ).=L"GHE\)IW]6:C??:C:"5Z[R!LV2+BPZ5S(G:+L/V M)'+UJ$ 1P%HW9>CL6&=&09IY$ #O+TJHQ:&B/!3-MWAS$C;2'K!UB6@')JK9 M,5.RV@2/#T9#M7^ETL$]W?&^BZPDRZ!+$\3R-'C/'OH4+XP!>ZIB'6\#_0ZY ME(>U&ZAJHFP;1'96XGZ2_<9Z^U^\JA*?!09-NP^9ZZ&06:EW/]M/-R,#2Y0 M2\I%!9=93SM9;@6G.!3]B='@_$(@81!MCC*COI,Q.Y.R!Y>1,!:W8BUO1:;9 MXPDH+.\N0KS)Z>\Q.7EJEA\5SOIEA^+L9Y^,7LD2@ M$; PB"DZT08?]O.O/ MJQ'G=0L33LQW,HB9'BYI[3^*V*]EPE/.V5+WE.*@ENB@GGOQ7[.T3G&FS[M\ M$XPV!7]>[B-=(OY\IIU>72G]/?_?^_'HFLG&P4(KW!38H6^W0$.!AD(CW+C# MGJC&D1&^UFR4DL&;BNW_7?NF\5Y$75 ;,(P(4*+A$\] V[:QI4LU.V>O"PWB>%ZJ62]G.# .>3 MS%_(];/ 2U-8V+[4XR@<5*!/(D>FL%X MX:UTM;:\8HBE[-"6JH[_EQ%;EK.3-6N2H2=CM+WR =8,T.Z91SL7@3(<,N]9 M+&UG!LO3O,N;Y;W:.XRG<]R!&_I: ^N6 ;S@0@+=Y"F8[R7OC_)4*7Y5?A;U M=@7B7'0$V$!JE%D_$0OF^:+W+,4()LKD47F\*,PN626/7BM2LA=7;6+DMJE(GK%G<*7+3X/E2R#?L M*(9Z7A_)\E^& NCK#72DYH7,NWGG_EJA5,6IKU7 57&*_&J)J+\+YA^Y78 M#/C_LL-_-)/9UCU2)9R;J0>ZK" J2EYZF0T J":-: +F*^V]MGG_);7_EZ%3 MHCI02;]O.:-$84TD;;S0IU_ _A8Y.JGRAD;.G;H>=5[4GU M2?^T%RVK:(>^2NW05ZDP3D'&EHIGK6U]IV1,M,<[(.H:D)$'ZJ(2#CK,HW*$ MO*S\$+:64\THEOU$XSO0]P]4GQA#D&DFB MQ)OXR./#T&>J 3 SR)Q:S3O6WR%U5 HM6?^7.E]&7:)3O=0+DK2&)&GKDY*D M_;('7"1:/\NF/YD*%H&%!6%9*L)2'/82''9^WFEA]7W]TUA,6)=^KULV*;\@ M^:(?E=P"Y![%Z QLZ# 8N"963#!#W4YD(.F.J(5.G36]5-LQ\G5-KGF\% )R M =H-XA=1O['BU-?PU&<4:Y-=:G;V,ON+I%O3%%A9+ZSD%@THN@ZMG]MG#@JR MC)=4C_ M^%-K,VJ+N'-&V;>I1N;46! >4KZ*8OJ01"!B.XF:)321L;6U"1?*N$O>K):#!1,P(' MHS9,8R-*Y2\_[V?6$YJJ/98FJ(XT[XX+JPM$4RWN=$[M4:K;=5Z1JI=J^)YQ MF=ZP5]S3;DKF_4OB)E&JU7;R# =LX'HC M<6?0Z89E460.">:^AZ*Y)N6M<(]2*I!$\H=(;Y>3F_#0M)Y;6DX4^PT>I+%$XKPA7 M87%;/SS-C)0'5Y)O6(IM M';J1[^BC*'QQ@7!OP@HBV)K$-J0 F\#:2ML$,= MGW4,Q!!=*QWW01N&GM&G_!U\ 2>K@C1.LD.G*NT-70P HS9^% 2BA)&,HB 2 MA1TBF40ACN+Q'2S.4L![4^$=F9=5?"3-C<=YW8RKA/!JY1%SB M>K7>QT_0/9 MKN_&A3O2^_2"[^68E8)MG@M0/:\7F01_03EZ%:;1O5;+8=IZ6<%.)OCEE:GG MG(K_D*>AHJ0]0?P7&8'\'0F% 29U8 Y\V!\W*@0 %7'Z XHG1MYY2(XG-YY?B434WT<\??\F[UJAD&HZ-3 M3_L^&W3L46R3.6&41"]_0N6SR<@G/U%RZLGZ. CA+1TFV] #'62ZT8>)FN/3 MYFI!7$J[JXX6#T"O4>=9HKJ*D=RN; L%?"N+Z-ADTO(8B&4V%7"&/<+Q9,6" M])Q,-G1A,G!49>V*C@,GD7@$+B%[Q-W1R!JFFPP&"^3AD S)'\0H'!!3Z)UP MDIX[1'.IZSB<:]#O.YYE@N($.Q8\,,:?YX4+>(T%#14:+[5^(@*Z+2N]<&:" MMY@(QY4@'))BP(OO+1/>,= ?K4$X ,RQ1ZMCV5(K,IDIJEN/HTIF&W=&W-J, ML\*BET2=9"HQ-TRGX^IUQZ4B-MV_'RA>6TPMU,D(8$(GZXH%[Q+>'MU M M0] &? QJYL3"CRKDMN^6T:EMPP"BR)C(GRWD$\MYCQQI00+1Y&WP(-PM"Q MR"OEWPO_!]6'T#I(+W7/TY7J(T"[ N8G%$/8@RP-4;P:"0GYJ +6\^BBPA]A M.BZ\'BE>:G%^2=QYO*RP>39=D+A("QI@7!M(T@ N/@P'I)*S"1U^9Y&ZF]P_ M($KWC&^&;WA(IOASO'$"S^%3ED<'0MV9T(>$S4LF!Q,N1DE]48TQ,P]QX;K' MC.'SJ!<>5"J9!1O&U1FA:1S,J<37( M(@)*SRO=W[*RN'DOR9B[\36ALUE@W:]4[BYO6[7Y$"M_]1S8$LG2!RS=<47Y MG>I%E 2??)"DS(=!K)Y'Q;PS;D%Y;-*2E0%XNSA73_(6Y#E)814(/DN\'61.E"%]9*LWEGL$.Q$);"8Y. M,[&T($AK4E2,MXVB$C*"$M06?.)-6&$FWD'B6YB!F:!4^01_U="?DZN[W&O* M2L7*#!F89I9,I--^T[M"$JC).D,W4?^D<2OO*FS4U!UHU:'Y8RUG]+ MG%$TN^#!Y58 ]%MR! @"32/J-OR1^HQ&G &CRV!R5*)06$;PB,0\@5!+>T!7 M.\1MMVVQ6?P7KD7V#.HZAJ=/,_085@6!5>,?8(V\VQ\WTDAOJ$89W73(RD*Z M@%7@1>1Q5<4=D]U;!DNX7L?V8JJ'5'G/F'-TO:[PXBP.RV!;6&-#0J95)\.@ M\LR@E_4T-O$[N.X0F?WD9RLA]3+.>,59?$&1$$, MV(Z(><@<CCK, MN]![;'KTQN'>K[L'Z;"9!<-BL@6L0,0K("+;I[!64OT&GNJL_4K01LH!$%$& MN/2B,@;::AT07&9I= "'QPIOH8I(7S "%.%R)[1HBIFC"%&"PF=?#HPQ1 MT@L]CWL"D1'ZOD57#F., _P]=@FRNB * PB$2X"__70S8<:6.*@I41@"4BN(/D:(QX>8\"D*+/F7@2T1U\K504P MUA&]MEC1VE>V5O:!(X]\S')IYD:?&3]EL)#'"21L.MW&+2JK36X@A-+>1Q6Q3>FLQ MJ7;Z&=&MX"%&I//"M;92%87YCW7,[U475&9W*Y_(P.$NPVMJP^YEC.&LAT"PX74.[ MQ(A I)9<("K<+9M[6Y/IP=J[VF6[@$,!!PZ']S,%>\],@#);4XQ3=8QT!!A2 MR'BD<92T>]T(0]3+!T-8)1DOE-P%86L5>0C !@Q,(00PP"_/FWH,@8![U3=^&/3)11?CI)P0UHZ]C6QM1BVF:Z@ SXLE%//T(\26B MMCT9B,WM1S!11_IB2?+?)S.L6RR44W*L@ M5QG(ID6D!-SEC^WOV__!R.B0,?AR42>VW&1]O ])?='5SI" M1+V49_(69"+BC;S40/J5XV_D+"B3]70M>Z!%AT&#S\B-/(T%1C^?+Y70$*\; ME#LL8[K4."\RO>?%=A4\3/"PKU9'I!$63*R@6BDF]K5@8@4<)!-[0D!L%NF) MFCT0L_LZQNPP!M*6JYH4JY#7+Z[@> /!&')_@ M1JFJIM/?E0.V600O96VZG(Y$4^0>?U>[R::)B:TMG-Z;01)YZ3&-.7!;F9"' M&08 63R4Q60!RL#D"L H0*L[B@F44FJ=/8([U^U[$?>$D;$4^$3OD_X,BEL:P0OA%\-P,,3J Q@M1*)RZ/4P MK = G6@@$L5D\9 KQ1=#!=A $0%@,<<$(FNX*+U_,-'G0443L6#\3[\D2D+( M"HT\9 6HL:I[M'C4%MTYG@NFY1$"7VPUAD'1-L,HQD\,Q$)0XK[VF-OS]"' M0[FU\8Z*"+%401Z\]^HL!U!L18?C#/_#%% MQD\%-6$I#&:F4F4R5"GK'C\ 6N"8V"%)1A3=]%V8O(W1;;3S([EV=9-G3V18 MCJ_!-RCRRNY:3M['PYG-DS Z],7W4+);N "Z7;%'6,.!N8!4?#< M$/_0=UVR"5!M5SD=66JG4JZ*6CLT"=B)^$U153JT8=C<"XPQB+@.F*-8!J\? M%+7NX:\(;=VC^C VN\>P291;ZW=?$Y<#'0>^N,X4$RG*NE+A.UI/8OMX#AS. M28G'Y)&G%'V8-;P(-TQ?W;)V3D&J.F8SX,RSEPL2,,%\.!*#YN#FT[R PVX\8FS#J, MBC,!9K%B$L@1^)",'#8Y+95[A'P6_E[&O!A#FL'BH-Q8?LB*._#II&10+;>W M40U?V+!X#"+;71&B4*8D #VN>R?XH#QR>97,Z';)4^11$SP,VF8Z)K 8,R_ M@&?P^&A\T&-#D)"CX7R$A\J\< \I&E93RE$W,#8C6@[<4B]@3B*YAV)>*;Z5 MY!5L6T=F166C'H?(Y?@LW"&\"ZM;#RDL$",P[EEB& R^6&OWU=S]Y10=!TV MO(/S1/:15HW&?B9*/@+^04/8QGK34?9 +,V(>E=JN=Z$T"QA&.@_1?P, 2]2 M^.G ^^' ,I%BJ@'[9>USUL W3/B6[6NOD!?317(ZT+7%/$TV4LN2RL6T3VS FT,Z_!;GB;0'Y).1W*Y7! M@!]%B^$)$Y68!_V31M#>U5JS24M28HGOAQKUKGYZ]CY1BY #%*:;(5WQ?$4I8.5-C):W7X%)8/8% M5@;&6O@Z9<,))Y1G45*&J,G*V?H79M];O XK?O!N;_N!*T3R+>^%.*"H1?BE M&3+A4*(NE&)+AA8NY>D\%1B':1DB*4;G$I1#=0)5+D)+!?8*^R-XC.[H]@AF MS!LTBHP3^(.C;A?/?:'?23 M?KUL[Q9G7+ >X=XB<5-7PK= X-TM[X,*I#HV1.,.2KOG23"4N4S63AB W%EC M$K@PA.J\Z4U6L74^O-!53H5> ZK*9]V#DP*)^P)=:MJ[T\\7[[%9,>PN*B)2 MN?('K@NSYV/!Z9NV+,8BA.S(,&WT0THJ%UH1WH'2)/VM)(V!HNXYWU$?F"G\ M)*FO2SV>5RI+U5"G@O Z[%RL%_@LV YY"!Y!E.?6DWPN5<7X8=/2>P[LO&60 M 8$;!7,L@C3(+'K(F+ELT7K VI2E.2C*TKQ@69IE4@U?IWO(TF,X_S&>,4Q7H?D+[B4O%ZE&WIJT0SA&1J(;4-B31TK MD8XFN%5>RPS.3NYU.R3\ZR+D%CV//F^>P?WH?OR2CE+P)9H*_P.0=BHT1C_$ M'A!P[WUQG&A33-1&TX.H@9'K:CVXR]PER;T[://IAP-R*MUCT4SA522MWA(7NL&FW(F.#BR?LL$ M4,+\7 >[>L3VU#+(-[(8*5^5WX?7\DHWL35ZB'A9,&ROT4%M8M7QN MPILKD]"I<(^,MHH:^TZKJR6OVM@+LM(HZ.&NC?6]0#*U(W%VN@GX=6-M$DQX M.:;T*K'QBU:4GV:D7;K>)"^G!']&#GOC,&8*U)KZ-%R98,^8D9O<0 M*(YSB8Y3Z-&<#9$VK;*BB#&=*1UMR1S5K%_%V2TR@D_IT5W@8+5PD#171$8Z M8;]_63S]S4]9N$D>( M%ROP\>-:LZ':D%0WG1>9NM#TQ$U1XZE.6?]Y)3Y68':AF'V&:!!['!1KHT"; M:GY=5&OOP)6D#^BA/V.9[@(NRP,7V:%>M N/.A ,,#, -AM5)84848V$_&0$ M D"S7;OU$QW&HYY7NV-L=()=>OQ=DZARADF>AV.0TXI[*DS%,9';?-YC0X ? M>5S@=7"5\&G;=7IP@MZ ' 9 R!->@O+$D+5"Y%_2BS./C(CN.*P=Q6\'.0Y= MO!KZO6[9Y)<3;=4(M1+OG @7X%AG<,Q)T;@O+Q@-.4)RR9#J[0-*YN,'GOM( M( 3I\I_52D4#M-@6SR[&+AD\K8-Z_R&5*F"WUK #J*4A<9R&Q/[$4/X"!"L/ M JF#8LXT7SDS2?Z70GZ&PBD,%(N0E6+21DG247O3Z>U,7S[$K9IO$5[H^" ] MO]B]VMP[E!%8VJ5_GGV]MJ)&HFA-J<>17C4?KD0'"&DMBJ6*'19*+]'"O;!Y M<"P<\ 7@UA1P/'#8#\;BDY$\*H&PNB2/<:BI6L;-=VVJG@P00==(1\><]\R7Q:PJE.D6YX5*ZD]))SV M)8TYYC862U7JUR=3M'DK!:SSG1@'$\%GB([BI:D=C!SB!W*5CADX:]6NZ/%S M6_?[@*6!ZXTTF46L[(6(W\)'$ZZ^.%V:TN!]GNXL%\_W"%8PX ,/X%FLQZ*U ME4BM5$2JW&?=,*B#&ZKF5'@9QMNK_"+W/>V3+N]H'>&3%A$SCA/"?W)&Y]I; M*8J6Q<>BB"RI_6$A&^8'4?*VSWIDCZ0I6'X4(CLA;D>)UA%OD3.0*=ZY@(L" M+'B3O-2"]P[WTW$96:[Z\GZT+9T1/G5$TXUSMGEU<6O(4]EIYAB:J>9FBXE' M6T9%PL7Q^(GSV8_/Y[G+G[BK8]%0'$DBIW6Q'N>,F)B]HVDQ,9E'44D=Q?[, M9;Q?O7#,T@L*A?Q7I ^M_'$6Q[ 4Q[ @(TU!R@O0%:1\0X^S.(:E.(8YXU'R MNX:MQ[E76;<3YHTLI0&4PWL&"J\-1)V58"+P-Y]W)1#*9#D_;B'Y MGV;X2OVK"P0NAA",QP@HV=W435 6WU.,2^ASQA)W^#WV@C.9S>OZ"I,*[VQ! M)A,L[H<'*;HQNM@ [1'CJ5"EC@U)#WU7,UV*BJ;PZ-B4E#.'N$_=DL0&%@+- M*@%_]6)/"WRM*[Y6\EB+ZD[36SJHAMUYJSPM,AOG[8H_3U4'FV.%6J6+IJ28 M_=&]H_2 XZ^EUFS1PQAM335;.Z-$$=:L?F2ZC^>W+5JY81,R46E2*0@LVB<$ M;MSE4M2$IJ&[\4SQAY,JNR9]9/!D5JE7[4JIW@RPMLU__>-HIWKXJ\^E@U7):%,< M#;C;EA.R1 5J66 WQ%71N0"$Q+C)9%]JKVZ:S$R[(9:DOUF&I2/OCJ]-_X7# MHO]"8AM7M/_"'-!]B["^>1JX;WVJ/R('%BY["I-0.F"?IDJ3K7';A565*PMU M88I8*0 N4\J!EH+0\\_#P_)>Y.4'5GVT^XO,6.-F0_Y\Y/]7V\#_<_^@7.%( M54>H3!BADIU)4$3N%KB=";=Q.2F=R[?8K1BE$"Q?E8$ZV2TB>AJ&$G)W',;F M*]F88[*P*JQC,PR0H,/ MTPN[MXYU%ZB'>@!!GPU')0UJ7=S"5NG*2Q$>3-. MDJFKDGU:J%K<,*-^O4P-I;30=+E,WKZ-=YVHAYX[Y!;XFF_IR=O69DR[!GD; MH$WZ28@UP&!@VS+I]UT+VXE9N'FX'MXNFI0=R^'#-S Z[BB*#*OQX+,6H[7 MC,\!6W =M[^(5#,$(4\U\UA/]TP9YCIJ+O4R"OJZ,WX%U:J,?" 3E--[1ARK3P%\.$$8J!.B M\OL>9R';'VIF%(X*:C9HSL&#JXU C)-B7ZQM\[A1.&:'?IE>!"J=#NNYL#TP M-YS4O6MA3!Y>S*%NT66Z*[?+FNG:0)FX'JTHZCF!JG!J+\T M@?'T!PV#\M"1%ZGQHMT/:&<#N.N"9L0#J9/1;=_E+I4699]R6L27!]?7=QVT M0RBD)SD?>8I=\O+MY6B4Y6&#(4P VP3!I3(:O+FNM&R-^AI2'DSJH"$ M^RMCTNQU-E3CSMY>"II) X#(%V M.%'+&R:M4J5@F9#1KETM.9B?&HW:LA'SJZ85+3EN%"D/CV?I7.MGM!@WKV59 M@&+;#N^H"6!>)JJ7;;5:-MH\W;964-9UD=:_Q9DGJCC401=:EY&L;+(!"&>! MI_0/9]@X5?P=!;X0.QT:ELU;0)*PJI#$0R!!OA@F/BH"T$?;3 M!"79[\/>E3#-A8' Z_/\EOBAO^!]((^39R^P#!)7PXYM^7TN?T8/\KZ@1M_! MYN31SWCI1:Y9-$C S^H.4-S#MP\)V*2N7LOD5BDPN)$8?'YOS1>(3'DA'_X8 MQ&?PFF% RE3[;53:#QC1 $U)L56+6W5%-,9X&PG@N:;EH:UC@@GFRH)/?- % M8@.PU@8N*PTM/=OMH($"L(R_1".,PT0=8V33PC83F3W0!*0( ./+2Q5KSYCW MN$$]$8ZR.$O($D%A-2E@(0T7\99%K9&Y:XVL9? E,K/5A/N:4+&WM9;6FHT2 ME8F!V[#P*J#%N;_VN6=?PCE+T,Y>;B1A;9Y2:$@1-G-%X[(2E#>0AMO8"3O' M^&0[[S/]'J/ 83$8@^!)X1G%93ABA@[,O,B-R%OY@ $@2F@((!..76:G99=2 MG20*TXHHO*2L->==%FW;3 I"AK]<^>@+S,)T!Z78E5O2KG0,,[?TDG:K6P\Z MG\YIWW)TX17E)CN\/4-&5R@=J:.C6Y6?GNIY+T?=5OSH=$5^("!:'V QI0XJ M)QW=SYF\8-:/L*.D?<"ON5>W-F >G%UP]/7,-%ZO/86C>$/XECTMY5#]Z79.C2N^KA M^Q3(<"^V94WK=]7]][0Q45VS\<1E9<8)'WZ4?YHY;]A^('^CV R=O%# ++K= M3&V[O&0I!46;T"72+0HQ>CV/=:GJ&!<$8(F14A" XEB7Y5B+[.N%9U^_M!VP MR.$JP#E[(,#BD)>9H5I@L#S5F+@)L*L<@QD#U$'Z^H=3R3SJV%D ML9+NLZ&.1CS%,,<5=NGFIK[@3S)/D0,\6F1Z^I%I@9L)T'+@BC2S1'Y65$L: M+9#M>6-)<+)MLDQ$AP6P%]^ M/@T#XL0>:E_-R<1[);?AVA2,."H*1BRZ8,1*=05_J5C%$S@_V^4)7&VF M^YC)9P6C=7;N9TSF1M3-Z8C=P%X _]P[+.]&A0'T0#MC!CEDM-UJ2>1F_;.0 M[-;-53RS]+>S6ZZ(:Y*L )$!E0K=KP6BI<#%BH405 _+AS.BI7IM0& ML+8^/-T-A& *0AZSAI3FK6-%$Q &RMIG]X&!Y(JIW)J/(;4&I5,_" 12GCLB1%)-7"IP,^+9A?&0L]X,=Q M,3B^@T6BM>&VW, -)3P0X-8/!8Y8X)*^C=*\)W0MRC-&L81_ETX0\S_ MQE.A2&12HSC+UARZ\S*[$_<"[OM(A Z(;!ZI9:%F)&OU#3U0LJ3#7G;"'8_3 M4'50*VJZK( "8$ I_S _DL%@I_\. ?I6=\0U,&RE9<.S-M=V90@UOE)FJ7>C M#95S8;$ %EW59%!'GR"F5=N_:\#@?TDD64,F(;>&Q M#-33B(KP^;YK4#T$OB7*._$5 !;''8R$?F?T&?;0,E42@,LC!$7GFZP%D#AM M++THHH1R;Z0[=M^Y]BY_X"3&C>K=&K>=F$[!;@&C=,WC4QQE> )>90'>A"#N]"X2 M&'%,O<,O*Y5/&720+4MN$TT@_JG(0@'=W2/*JR9*1A3;8<>NZCU>!R8R]7%2EC,, R(#)4%I$X4ZA&U1#J";6+Z51_T) MHYNZ_XE-(UN5JUDH_2'%=X#]AHF-CQ&.Y,V*>0JV^ M48V5@05B0MCQ42BTJ%Z!#R@5\5AF3!P(ZU)ZA!> ;,IE #J0)%Z!NQ 10W: M$J\9.W1]PJ86TM@=#.D4R4_*34'@,;*6IC*;-DBOW:Q$C]TH%:\DKIG&')+8 M.%!@=WE!84';XMZ.?A]E&)'._I.-(OD&L)HM-.:)#B41R&Q1735>AX2 B"0Q M1JX0B^1K*$B4Y+%)E9@3H_(;)VI2XV6+.;%ZV00K(=*K?HZ"O*R(Q:5,U&%8 M)"%*X[]:S9D*-*%,V"MK9WG%M$KYV2L!X=(\P%Y/\_>^_:U<:QK8U^/[^BC]^USLX:6^A% M@ TL[V0,8N.$V!@O('&ROJS1DDJHXU:WTA>P]J\_\U;557W1!00(W-D[*S9( MW769-6M>GOG,P\/NP:OMWM_-(P;(NC5-0>+UG[02EA=N&\VQB@7D#5082B3^ M^Q?;;NR^/,(>ON,%1_3E5T2O ,NI-<4D& Y#&)H;W'<>H*>X^W=ZUKT:P)Y- MGN,Y&\=)@K7,Y'!_$Z;"^8[JKKWL57;-G5-YYED\+29JOGUK\V!.:F=]2W.P ML_/J=2T#1WF?'W3N[CPEPY.23VQEFI;U&+XED^,;"9FN J2@^TXW.ABR%W;- M0;H\J7;::N7DVVO]2K *_ (4<(8T03F M5&(D$^>\I8I6Q-6,K]-5K@@@5ODO.C"V*-CZ[N6AL:ZN'"8P&[LDM M G"#VE*F 3;!7;TQ&+4R!K3DZQ=DA9-Y22?S(YS,L/_6FFN")9HB=I M/,IN4"OF0D]X?YG:5D">6+G37.>O3><_:]%96DC %B-J @JZ\F4%ZS;$!I,6 M$X2+3#>]4Z1OK#P>6HCH[7;WO/Q_]IM?][& MR>GOZ#+7><7MOC^]?:^H[!6-U-JLI5BMDB.U(KB4]9C$";):(&L$YE&EHH\C M=O"'G,O.8?W55'=RJ2W'[K:E.,]-&I>7OLNQ:E70\]CTBOFP/"B#[R(O1ZH; M3)TBLLY&0!H&@8Y@"RLY 72R%QLSCEMZ%,P+"==\;Z_[:A_=YK*%GN93BV%3 M/R=/4GS04(W\/"0"MR5 2,VC-5-MU>6S.SDKJ,N;V.F*AKYD;_]URI@ 9E-* M,W,YVZ3&FN W2) 2!$L?D?8*.5\HX1;%-]XT3P9CYG3" _B[==+*<%EO&F>* M245TOV*#CYT9=*SS"!I J84Q99)M2\*V,C#E7/!-50)FM?^Y&\)JY1#.7-35 MBE7PS<"K-8SXF_+P-S"<]-B!Z+N'G!X^E,Q=<3\[.@05QAI0)URGP(_6M.N. M]0%ZRLWPV?8(D1?7VB$=S?>84@#;:DC?S&L73, ^\",5YRE"PAPXF/"U2-F( M4/ CJQ9Z8#:F2T!<4\QI(H2KK*YE%,.*_AY'MOS0\QK _(TXP"H4'%^*Q(-#>P>\6G 1 M+<,U+/]$K1UH1&]9!-?K-H)WUYN@JP=W@9+3MYN8A5;5_'47\QK7I\152&F?F%2:B![KTWKJ\?/B1BNIR*>*Y+Z+WW='YQ3^\;.D88BL'3U .L'Z'65*QWA]L%2)A3PIAX)(C M:?"%UP/FVL#W01.>6,W\ 3'B&/ MKTTD*NT+]-=7RI_,,:A2I]/$.A+$&@8:C\VJ%STVQ(%'V=W$+Y) MG>WDW2/C :KA%5)]9):[9SY%15"R3K UDRF.!?\L!*N-_09NX?7=)YUZP2G] M;'J+';:]Q9QE7$-O,>OY!YO-5;Z0J_^\D:KXZQ25$+: @6/\M]YV]]"$F> ( M]W;^CJMEVJ%$'O6L:4P,ML;RMQ#Y_MMA]Y4C)7M_U]$"5U@:40B.<&)OK>4^ MV?46"S+)=LTJ ?]B5I7A;J'$#HS"-!6KH.D@BI0_ MC<, #A3])8TSN'N5/Y0N3ZFN )/F2 MZ$CGT]D6=6'OI?*N7SKQJU+8,]?&E MX[XC.*:YNH.M=941F!P7, /00RVDZ]F* P5R=5^Q(,$T=9+-/%_"(:@43M[K#-#.6^_T]U>(8$!8%:?2X=/?W/W#(98- MDJA'YM!HK.QX\J08SWA[:X]:C>*\965'N7UF:X<\OARM*".E'3W-P4<7%TH[ M^$Z!C0:V!7:+2X?:L/SY$/RF4I&..#SHF?L)-C #RG2CM"S%^\L" M%SL=HO'"@R^D,?A$F ]\IIM:Q] *#H/-& 7:#$XMIUO&PM6X?B=,XT.]\ M"APWZKM);XZQYR"WL(3E@0\$*290G;YMA'F6WD$>-E&#ZW?B?U%.XV+N<4E9 M%IW70(@;MO_$*YC9(C-%9?T)MZZSE\[=FW+3R?G>^5.+:H!#CQV" Y7--)&F M$$];;$UNIW#_V@]"#G)'()C4+A@AA9C>D"Z5Q%,=7<D]&L:XNAC7 MIZ;+*BTW"2^@D/\1 '!:H; MITO3U #(H+RI/ZV>@1V90!A,>,TTZ*N[L73F>HP#+Z@;.B7V W? MX9.@!$29B6KH;DR4;7U'$!&UH Z+'L1SY;.02=AE$DELE,G*3(2/2"&UR-F- MA/$KB2+.>\?EQ>\@->8 !X!Q;M (A,_MS_['2BOK"'RDZGZ:\/D5F2C+8U4. MC7BE>"SEN#CK,%$J*SHB85)O72]R]@; MJW"* <]KC*K#"/R9.>6XN!KY9[^ 6NZ:9J/T__CM.(&+$1 M9L?>@N$"(O6#3.9 \2&#V7E.M+;7F#C-',DX)_D$YIZ M\+4Z[>=YZ]7&\M_ *JN,>LH^0QT#-PKVD"!9DEFRG-G-8O&7?H1'T]!M(^I# M>=<4XH?K>N)?*;N,P)_7"$)W^A+2[@[7!\![BH8O5/G&ES?=/8*(S8$X0P&2MIP8*D#*R>J9Y$>&;54J!LK04_&6:1C^?1C2O<7+_H9\V^? M3-^CHF9),%K/4W=S=5FIYU,Q=YU"Q#LWG,GA5IQ6IXO:2CZR5C-J2G+F;)@C M!2"8Q\*,$8!ZO(G$OO44^(_Q3,DEBGYP,I7M1#,LEF]48C;/: \NT,$26T=? M*7%BW1M%FP:GK]\Z"L+T?ND0_:Z]ZZ9RFG;QO9JA'GPKLE[4X&MFQ$$9((T]@]YG*LOQOXL/@^BYWL#O?>^H<1 M(?R=L:X]BE,E!'4Q,0XR$=[$5Y'ZZED"5$!XT-L-LS$6>&HIIF-04BYDW8CK MQ2$/\9,)9BL1:A@+5K3_&X#A>>=N":4U\#?F['PQ.#2"@& M-_DE(66S?U=**[%4R&!39 H8 X[*O$IWT?@QNI&RT:I]:^AM_'8^^/.(<_ M75HD1:=! G_U/F3#;H=>^.GH_/0$]'Z7?E;T>*G<.9=^<.-'<$'+2R^1SD4C M,CO>233HT@-_ K?2C.RW((6'>$<_PYUH&XZ=$DT&2&=6D*E M>H8D:TL6,2+M+(>5K8FSU35[:%$RSU/?+=.YCX4#DR\J(=ZA3)4"L/4AF,)$ M=CZMSYR"YPTDJR0NQPIJ0T>D"BM'LI)HO'5L \1@GM%"H1PF9B;A^&/&*@PY M)TG:H&);M4+_S0I]1ZH C0\)\CO%'"O>?:C'+05>HT-!V8\X\N"'5W$"UXMX M*D6\(YZ"WDX[U8AF?*V2NH@F?IUR!>R>YH1;N_)-/VTO':/6;C+[^3W$KP)7 MUA2\$IVYIX@P,KT0+>?$&_H1WUO_" M.NE8*KM$],@SC'F?1%%\[3/ C+_L^#3WK18VOLJZ26&4RJ]_Z!D$<%MF?0]E MUNU5T5X5#].\PPGSK:3\VGAT*X1KL5?(2>U+%?T062<3[>_!1)N-]]U6*)ZE M4+SUTH$?&4AM80H6F<24H!6$ZRX,TGFQ>[1,<6_B/*V+&K?"\UR$AQ5%C!<@+3"I 3N(MIG5"Z1-<88K?HRC9S^JK?X6NP[]5D*96 M=IWS,$B0D2"2E7[8*JYO3?;>VM1I)4 GRA.L\8R(U.))'V6-)!$QS1A^9 D: M#/+$'\SL).#7K<0W;C!KN?9V_):%K.%V3%5R'1"L!^G&)Z3,2&NE,#]$*%_! MBXN.&E@/%PP"D!'$:2V.D.KPA7@,F^B[MD+^7(3\?YZPB78[$-*WM+L73EBX M%@>^.!)Q#VR8FQ'J^.S6BM1R3W7LFFOF>;-J@BU.U2K)=X<"^7D4_,5PRR)F M#QLF-20"2Z\OQ=&M%OV0,\3XH%27M,"W=-$HE78:=#$5?,41I@ITGZ@FCE0L M[!J%/EY16,DMHE0J?T:T)M6R=;UWN"X(++7F;1>[$#@)04=864=\=H538!"T M3O:"5X) $O@EK#F4.*Y,82[':S&VCM?/,X%$%^GNP@O!AV>S*8*;8.&P4/PF M2%1(C4[@D3G^5.A<%->@EO?7*3NOH#OJR'4U#0P5&L++ II:87QF)0)@JF=: MM.>P>E2DF\@"%U,L/C-OK0E,YL];TN@Z2.*(%_5FR:FFB&:VFGS1F<.Z:RQL MIB' ?Q.TEW#I!0 \) PR)@"X:8N4D=F;2J!F^!E(XO]B+?"U/\CS"1818XF: M(4:8X%)C15@1[*?&$JY8CP:%W'^]%3<(TWT51 M$'7X@_M?V;[FWCZA]'UB/>#SJ1T-4^",);]PE7>\ER\]0N8X)!_2Y4]_RT+: MQ%-E(/^OZ#TJ@O56BK^8-!"#\5UH_& -+?H*%V!I5PZ2'AM VLDOO5@UWD4 M@E5)Q<982@WS_,Y*Q3YAJ[EUB1;U:S$[C\RVRO1KB]G"\'[M7G0[^I"\U'ET/4^(E^.^"C%1406-B)"V6W MG.,FO;Z<"%K;A5< MK(GF$\&O3.@.I0O51W?&[JWPQ(VHY9@@/EEP7?BS]*GX]ISE@@-369)*]#!9 M(.#X+U%\LS7&BE:#!HFBL+TL)1@!F"A".')*\'L_X^) 8O,2 MLA2[M!AE=AJG@:G=!64$(-&^?%&:80FN MH2U4*F%,C4VL0T>ZRRH5QJ #-1:E8DE#,TJ5D?IDPX%']@O8%_1HM?)LU%#" MND'5IGW0!V;,A>+23$/6>I:!ZW;5D9!M(9%^.]+C".I/RF0CO S]OA@-4U4/5NB+/1A(^5+%?0]].$=8V9U?UN?+>^[ MW1Y9,MS.^Q"O%1A&] \\?S8'C-TXUKUI2TUE[0JO^JJ(A4UD%(A>V'%((">J]7KJF&J9\<7*ZF*)^Z3"A"3O9"4QPPM##>&U9 M'46XJ:Q&R![;VP/-&@V9;E$VM+=M;>B>V5#2C_H0"SN;.<01-U/2O'"Z6J^8 MC-B^,*GIC!K>,O,=#)>"?T9O25X>2Y_,5T*TQ327 >X -[- N@X_&=*+=,:6 MPVK2NMG;VZ$D&O8Q5G)IH K .=I"VRN$UA &]5X6GY>'B"^L%ZRHT>(O[& . M#R^8R)\HO<7,^@7::(*5*_Z--0C8$=)TI-3 CQS,;"TY?X'QL-8T\0#%.U81 MOA2_/V,WE'GPJ$R?Z OM\)JF0"IZGZ#-YUV!HPN_5D;W7\%%&36:I4(KQP)4 MA!2+>YD.9$D>Y_$9W;OQL[X7U$**[R'2T<8(GF6,X"BEDUYISY"<'+%W"7#U9A1@5YB*I &)?2#I$8M8V[>,/ J(G)%R<1@ M?U1F&9U,\JCHC?E9>;QXL)0QP9L4/ROJ8[K!4S%_* M3=@OT>J.O7S,)85^,)'>1M:"X#M"HI]ES8^!$ $6(6\) >3(69BK@^_Q3Y0G.A;N/B1$^%A\&, M!92=*>XC#!!U2B,$V6!N%Y?%'PK$C6,*7WD9*3J/ R]5?328L,U@'"!=^1*!-V9^%:6/U<,9$F=X(M' M:5<9&7'8"H.8*0S.:#R#.:,-D/CZ/10KTJRHA625[^*E#-C"UM5$G)YBEW>\$:@/L*0['$IG MWR'&X$FHKB2$DO"FQ,FLQ Q5^)IVY:#6A%[(/^60"&>S)#;#URX; M\.BE9."]:6+D#N:'0,/@&HZ0\US?UU86O.LLV22-V69))3ZP7I/N*E)_A M,*O$R39.6]26!\K/@^'W+[+_C++_](Y??CXYWMW__--VS3\OUEODZ='7OW^! M7W^DOKI+.@4O?NCUEBL,%0#I.'FL"M UU7O>RCE;JDA45K&^5O2A;\Z'J3LM MW9$?P>/'V]%/2-^^BY,;^./6ASC^0DV^47E/>,%JL(.//_Y:+*,S+-?^Z/9L MZ?TG^Z*615*YGNTQ[51/Z27-Y2/,Y5SFTGP=+UX 9ZQ!!+=>L+!ZN'(X&QYR M.8;K^B@B@-FY0H<6 [[OD)>QM[WUGKO.!Q'?3P65K4HY\=[NY2VLB'1PV105)JS]R/38^(B#5,!B8ZAMQD*A?POR5 MP.7%ESG"I6.I9."P]V8U08&5QHA1JGTN[__[/P<[.\@9IM-$'?H)G'SYC5Z& M\L_12RO_C!>@\@1:UO)/,^2PK_Q4O-;RC]%(C2H/3I7Z4OX9TM>7?W858SOI MT@]YF9'%/D.0#GY"0H,XBYYYS2..%)7W!.&VA?2$;&5 OFR M%&Y7F!/$\6HU@I1OI!%.H.^X=XDL%AQ!>AT-KU,>&PYW)+U.2%VPO<[QEM*Y MI2Y!3* M]& H?^!@Z_U<)9!.$1I,EXRO(W;>D++2.DDR$9]NB-.B_7?%)XHL +B23 HK %).%*+LK/?3M[: M+_.P*- MR>$>#YV>!8+*X$8%^,?_;N"M9+[JWQU&TEJ:0YCEW( MQ 8F_E0*.92>I\X[" :^,NC%& \B8L4LNK4TQO8].SXMA(<_*W4Q@<[!<2=, M.P7F-ACC1[Z&BZ4P(H=U^7N4NQ#;$KK[2ZV-\/#)U:!G+C/FRIP_XT2&4W1! MHDE(#-6>1 (2.I06>M*5R+2?$ DO0"UU:!4!4KTVDPBPSZ;4#:1FLW KA:K4 MXIWCJ0F654L=B)8S",RDH@J03\M)1)C=-*,EP%5D5;1G962 KVEP/*[330B5=&$Q@9-DB?28-(Z>^=#T0+8 ] M_$! 4DQ+H4O)7_.S#"8K?P9+QA== I8,OUR_3'*,HB-AVYYDC#+ M$^10[TGX8:[7L! .[HRZ:,^G >$2E:^/S<^Q@=P,VD,80=V&/%X=X''CV1>7 MB\6_^*&WLUR0O65?7)Y]L1'[3Q^T4P:W#A@[B0=9U43G5A'<(S_#V M>^^.WER>G5^8PU-(PWJ3[0>;5RAQ5DK'NO$L&UK=$-NJ]?.%-_ M!8E=HQ]'!0H4R&HJ7P5]> .F&WV&/,Z.+@V7 ON87U,,A T=^,@HR$08C,$) M/T(CW?_*)@LY&F*U6^Z;GKR8S1TW_RC#PK MQ\L;@O[7?C*S40;.0W4)/M5N%9+G!"?H4MJ%JCJ=P# M:!(,AZ$JS=5]&LX4%_C[%[M+Y&K/2>N=%ZX"BL]/')@YIJ 3.VB?\GX8#+R? M":#CO4$P32G];%EDZY_H3F6:SFN;GFI]FW==; S9[AJ3M#(0,/_N\NK#5PWO M;IKPG%/', >O?%YB_ M*1Q/F;Y7KUW_[][.GCE0JV)%>]V=)B#L/25T;G<\%MX,S8@5S$5>!T,[WT - M_JR** GJZ: ;!H4H! 8WC*%?<5(:.C%@I6O)(MJU?N:D&!'4Y]H(JERU2_>G9KH5#@."J< 8ZDX$UF' ME)US'D@Y C:-*3^/( L3-\0Z[LB.1(HZPOQFY-B*'3N38U//A,%?>3 ,!%4+ MDZ"H; 'N8#H$>5'&#@G*2K=8,?A)40=GMZZML5D1UP(OX 1Z,/*N"MRWGV<8 MEI%0[A:>?6J=' T9=RQEV+CD8Q6B,H7SR]1D_"%=%QB3!P;*!&/9TE KB]'\ MZ4BT77WQKN,PCZC8! QECF/J%Q :@M_.>2%3BT[@B',U$- -L:P-X7_2#,M3 MHZ%)!Q33DB;"F/&.T#%@><:2C2W8ADA &R+TB!KZ.;[!&L-..:&MRY40H9 J M1U0PL&UA@T#._&R,CAN[JRL-,TSH:!HV!_!-&J&+P"L],U@Z MA?P!X$/Y0V>8?((M!(4U:^]16U$B))AX+3&]J!]G*IXPT)U\IGT95 M+OU9==Q:Y\S-RK*W69-<+3JKFA9RY";*,77;2^-)0:0]PO-LX+HU)FMW9.#6 M[#6#GDG_X(I4DBA. 1)K3.=#I8HB)[DM ^1]\#6A8F9K;?#$F:2.QSZE=;/Y M%LGWGOJDAW-.43GE2%SDH,MW[#+> >+C4)#2E"0=OX-2A2D87OH5$O;5:\;> MF!O[BK/'T)"GFBL=.LJ!C]1E<%CE1-$"/TAT3C2YHFE1W FIE.-,0P(9RR.= MR7%NV$;0]$"O3(5WS0XZ%5@T$QB3"8B,5($&,@*J>O33.*+&YAH$.&3$JB&G M**P +%G!K!SN*]@O8'42X%327S1DO+3J\CBW I38L8K6Q7TT%W?G<'V+*\]Z MC,75KV[]VV_5OWU@3]:";&)?V-N8<&'I7(;]^.D8T!P4\U B#Q$Z(M@16J:NVQ% M7-Q.]$0#Y2._MC)D-I3[&J#9E7()_9$V8PO2+_)0[ DU6 /KCR08B\*E]FV/ MUC,^6@^YN\^1]^6I[/=))NYTE>P%:T(0#IM940##RB.PHRB3-TO;=S9HV>ZM,TMMNSOP93&T6\&KZK/[B%^&K) M[S"9#X)^V38FLEZ5E*4KGHCOX7YM-N]S>SW>WV/IOM7>%> MT"Q39>8\BFI8F0U-A#N!'1BSG8(N Q@J2Z457;NYPCSE1C2627B\Q*6LB4JN M*PGR\O&2("N_^O9)D.JK&A=\^^4:5W?[$9=7O_M)ZKPV#_* >1 LOY+AZY]( MZ9#S,R[A6O)(NF)8+:BJ%=Z'3Z+]QKK(OUQ'X=:LTJV*8$L'$A MD ;S*!@6B=XI"U5?5!J9DG&L+XOC+W3YUWP+BX!2[.Y!%H.&X^G2UE)!"HVQ M@<_&+DSIFNM_19.T G)MI?]>I7_ME\FQ.C6G)5P6/%TA9RG&PHG[I MAIBJ03()+9BYT7+=735D'MJ!+JE'0BJ;8<.<,K1>KX."NJG1MJV!R9GI("^Z MX99(G'-FLS]1C%UIJCL!@)EVB('I&D_3$Y)Q9BG0<#=KB1 B%Z<9AA&1+2D: MF@HT_*Y4?CEX.5.9W_&&BB/DC"S#OK\"&/TJS4LL\*\NUD=FA+P,J"N&;K8! M=Y3Z0@6*N!F$3,+"-B.&-@GZ.162Q?80R]&J,C]YD4. C49:E53( ZA02ZIF M4\D;(%2/$+Z&H(/2$ASI<%3/V?$IXG^)=,+334MTSY>"$J9HPJET_9PTXM1- MI*4?C 9BE]@JD._B]'+18VK&5_20@1_O[[V6"<[E2"FUH@X1D(>Y)86R0D6( MD;E0AA+WHVM 2YRN9H0_T@9;[").WAYD-IN.00RI8A+V(2MXB/.,,)AOBZ?; M'"4(A3?=$33^CTF9]=\,@EE?6%6Z'9\JX>F7!/?O>A<()M7^[96*R(V%)6;D MMUDG!Z2I6XW28A%W9;%2^50:G[ECJ[EA.=ED^)+-FN#,L](%IEFI6[P9Y*I!NWAS, EXJ1'TCW2^A?HA4 MLVH5ZA98?KB!*_Q ^]W99&8DTT$C4R8;RK M0]L9>U)5N?MK#+/L/UZ498E7WX=[O9P_/6^8S0&P=<:_'C'\U4:_GJ=_MJ$H MX#J!JR,#D*A'BV1L$*&:^WE$_SQ@[.N6.H&ZCDYR=+ZY4WA'M[[VI7$N>EA6 M'V\B*0E#+YM-E5W9)98_D\)(V,N8F_!0/[HRA5"+.V7# Q \UEBR9S75180S M/TEH#)O >I:YWR&W6TK!B"Y0>]E$LI=2KT>LA*L$&=(ZJ-EE&:HA:RE%95P< M.+87\49QG_15D,C6\Y%#QRFKK18VKPA$WL0KI4TBK^%"\4Z8,W%&4:=QD-!_ MY2S1GV%-I*F\D5;\6R&L 79*".@FT75[XK_*":_P*7&*VF@)4!G.T^ATXCLH M6$W$\RGXT"*LR^)M1P&V01@'TFQ@[CG#85-8D#];.3^-"F%*X3TDE>*0B["D MV[7R1*6LWZA+:,=4O=U$+TH:III[]]IS^LV>TW=^$.8<^BGN3>K+/Y75@_*C3P5(336(=57 MZ!,"3ZB<6C=D5;F%44%P";-M;VB54&MW\%I8H'+K<8*RM#M8PH))T3\

C6 MB)O%SNU]PFD>W^%]"#B-#A$0>RF_4")6_/#9;J+05[,X&FK2>DSDE?FLM"DMG43@ M,OWU"WHBJE-FU2U*<,O\'( M*^7V)=Q2Y&*MO#K9K<1<-B)J.FD4TS$ &.HET_$N8"5]&!](\:4?W/@<1_O% M!PG% R#>(;=)+YQ/:K_&5BJ,$@8GP\* FMN9IGBA.2VEIV*BUWIXU_N($LJ$ M:'Z*:7ZQ]?5:"-O5U$=1E$7TR0,)Q/@-="-!,PQMQ9M.&#S,2%X5#_AT#XQ[ M(<<9OV-B5CS>YH=+,,N[-.TU! ,T,]V[/#^94!@M&H7!H*@61:'),\W2+?8\ M>B"A^NJY+:<+=H*BE[L%8*'1(#*!< @$/# O=UO.^ Y36'V-:K$KI]BC0Q ' MSLSK)$0WKK#EU[!CP8$?Z)E2]SD"]J%J-:Q3SD>*G:A"-*2K'/$X37!4.$1[ MPP0D4P8++&9 ND\/IF5%3G MEL2*H-D5B]YIJBA^! K@"E*'6+P!6>_(ZEOJ+D>F7O>B:_6\Y('=^(DT":^6 MDS0BTQ,U0L>#C4L-[H^N59KI_NC5'ITZ*W8SQS2F*5)#&Z&)*=KNI?!7[%@I M)#H.YYA)/6J2&1P63;+KG8QJS%P-L#4I/@.EAR, IK-.]Q4DT"@A_#MTU?3( M--4NOS^U<;\U!.<=BPR6OE2\/RB2@MB#+A^8_NE+E#A("YSN"I9X:W7?4[N- MYP4/;:WN9W?[;2@*40MKOFGTM=N3I6,4TWC*F$CKZN48)7K8O@% MW[_ %RPHDCFXI17D/$!/:._O#>V6UMA\T&,Q\6HJW]8RAYV'F\,]S^1PP798 M38+7:RG7&:AW:%LYIUAP'=)PGZ/5)7GS"AN7O-M(:LC.VZ#)KFUJDH"<:?@! M!PI&(;K7OJ$[-Y]27R7U1?ULYQRD5?3[Y:=_[^]]W/VQMFWI$]'OM_=GE]#= MZ]2]RVO;5;3E@K?=5B/.?8>A%;H'_?8PM^7]SJA1!]YR/DOHP+5/:&W#M_ID MA_' ,),42?L$H[")--?FHB[32"X6](8-#,=7Z2]1X<0D'@8C84U 1R(D)ZY, M2&B_/+VSYGSS;O=R9_^WTYV##=.,H4B%7O920D#-FNK\"LWI-IO.;LW__^,O)R:L_SC;L M@4TWDS MU?D34^"MZ=Z:[H^GK\P'CYQ\[)Y?G/E[_7QGY;3=IJTE:3MIKTN6A2VNK35I:TN?7ZZ5)!IB4+"_4%1S:[1"QU=@6!56W,1 M1]]/$JR26%?@]_/BY=[;S^YN?6N7:*M=6N;;*]?DI M5PN0-HU#H0VF]DR:L 8Y9(@F>%TVZ]L/GXZ/?SL\/6K! JU:;=5JJU:?H5J= MQMAKB1MUZOX F?^5J(O3E,.MJ&;7HU&/?KMX__;-YP\;5YE6X&]W6OSM&G3P MYN)O5YK)/:%Q5^VK3N#..@%Y61[1DU/URT]\Y_XF_@@WPO+S/ESOCJ]MFIG0 M9TZ0:2@:8J=3;%.!W#^:R-)F0;7(=QEBYO*AVR5Q?F\S2*K!IQ P'\B-IO$@_ MJUA>J[717(OEM7/XJL[TNJTW2X>JCHU'IK;;[6T?'JSGS+[J'NSU7M4?W'L; M])-D(6F)E!Z>2&E9T16B)-%C*37JMO3I:C+64B9M*&72L3 2L"E%S$D.>P': M:^(U]8^H[B6F'2640QDV>6,IIWFKFWX]X(+EKTO!&!*1T%D M_U?HK$74D4 6U_2DD$7M>B>1ASN]JI-6NQH)!93=*197WZ?FZ MS^?%OE+Q5>)/QQ4A7D*3RU1%6#I6,\EZO;Y2IX9J^?F:[.!RR?/:3/EY#[Z_ M:3)?O![+8??P96^O,A9TOW#5OW^QLT23[7/BG#M'T6+>#3P:G[2"(NIFT3;P M4T4=/@8JU?OZ(+-^$IO[I_FRIF]ZZ]E]:Q;3NCV[)RM>K?'=V&N@I.,O MK<:WU$ZZ3)1O3+;32[;U,%K/+9>X1UB>5AM%F<[68!8,9H,0):UCF7)@D=Q$ ML)V1=/Z2[ES#HI<8]0O@A\]PH927AO$-?@U?-%03XLZ#$=2/JSH-RB3<(+<^ MFF1X4Y&9MK/=.S14]4]%O%MO\P'8>3\78HRTC"+%YK"@MNWU7L\Y&U49K'X7 M9)(]!'PVX2C^!)%'R5=31?N"MK/3"L.!JX$W$".)L(]]Y.#TA/G5%;I!Q2?* MW:U7.3,*3+LK.">A7W3)'H'%GXV1AR'3[?HZ>"Y)#V"GP#ZZ+I10H%[;"I8F8WX)'[6$/YCQ8X,)]9Y( M8&;@H63YD+QUO9J6AC'M_&0)P/<'F[5PK4JZ* 4W)G%:,\;5EH[LV+ *H2_ MNLW 0297)X],BW#EM$3Y-811PUJ&LV+*%N7&4,$*39A>@YJ$Y_Q-G"2]A/H, MCCRDA2[K479TX9RIZ H[NO"GTKR?PG;B7B8@/?@(=.:U(QC&T=46OE,[=-QT MLBIF16A/7#[3-;#UXJQIOKK_:G[Q+>FLQY>R!U=9#G@LB,9HKBQ69'L'.UJ1,>L-O.)JQM;,R ]"#"R# MF*$H&%%38.S&,[:2@M3Z&EJ,_F <*(Q<#P9J"N\9*-<"AM' C[@QFF[95@"8 M0Z?-NP2V[9;*19\SB6VWS5V^#?&>WUY1Z]0@@J=-\8'B-X#>LP44U&CLX:[$ M>6H$VFK=PKISW>&(5G(>(](VOUWG+=1E!&_53:O0+03UD_A;8W@$*J,XS.FG MNUO@NX%"\J;!5Q5ZNV^]CWX4GQ+)7<2MP#W43IRI*XT0GXG?)?),?PFW, M%$N@MC[_O@L2TPI3*TQSA6F69FK2\4Y;:6FE94EIH1!E:P<]>=FX%SOHXE^H M2$1N2%+X)_^M?W2*;:VWWN41,ZFP2*5MFN^Y2ME*?IH?IC%E@;G))G:4+X<1 ML/\Y63YVV,'VTLJ6.)M&G!H2::-$6RG!IGO">["$7_PK=!>Q;06#'MW/WOA@ M9='S_.&U3]EJ_A*W:]=?XYRZ0D(V&+CI+V]")3?&+RV'^/Q^G&?<=5Y^98?P M\"$EUW484WI.YT3S*7Y9=]TP/4A'5JB%%_$FH!P;GB/X^BC@W%-J#=+/0!(' M""SL4(_[$0X;QYA'.@^H,$D62+@2Y1C[/^'NM&?Z>9[IVFOAQ0\&WMSN^_/< M]Q5T.:H^W$Y_.@VU!B*M6U(O5PBQ9U@[ 9]UT0 6LT0*B2RM!'\1V*5'[6SO M[-"+,%6.19^8++]*XIMLC+>$7<-2?0 'F?MJ7IQ9#6M3Z',Y,>Y6G]E81;G? MPTV^M_+-6Y=GFESX]GYOIU?A[.CV5LFLWPXA4.9V>-4]W#DXJ!_*RI63LO_ZZK;'1U#>,0=WHV,(>SKD4#>"P! ML1YJ%6A4E4NET&[YXKIE163%,BXQ2TF;<#]C;P2/Y(F5RD&J]WKM!?W"7OGU MB/F*DW(W6DK0*J5 _5D%OB?<%N(12!&8-_+1\#5X^RG\GN;.((.;D61HJ,./@J2N75,N-U^M?(B,P>6UY(U514/=D\?W;TIDT$@:MC3=HGHY[ M-N+((YO TVSOEV13+NB[_HOJ[- M.H:?NQ']U*Z/$:%UL/W<3EKDKOV!2L:,):YURH#PM_TT!A](%3<1EUZ*C5Z$ M77P,8X2AK@JHQ#;R"&\5JR:U(P6B6+K(A6LZ:$%ZC]##%F9$"@/Z*B3@B P M])WZ&J2LIQ'^2G\CIX#H#6#$!)&5D Z,@K-CMZ#H)3M<-/\,!*5N:XE>G196EY94Z)54BHSMQULN1IJ M(+3=RQN6/55(,&)>&HV$B@&$P"7#K[<)H3,GGR4#)8/&8Z2N=2[JON-IWFB1D7$9K9. ;70:>$NA0CK2W-B MS1KE(04.;P2^DL *X&U?K*P=!;26SAJ-7G+XB<0;_2%(!G[9&9G>3*?4G7X. MVT*GTR+KM5YK3:+C?KE6IW1,M;9;F[S(4:\QX+J+KKI[=-6-=M^]5\^\2N0U MUU6O@/M7+6_5%L\\ Z?GNL8[O<.#\H6_,2;/O:]D/6NO)E[ MNW3 MG52\OR.:G*T;0]FAQS2%WZ8$)(X*?YGC*ICWFTT)8FS&TD5^/"F;PDHMO$:. MSDXXT?SII-%^,ID_^B LGV4G(B?RI(^W*LH%S5C@5.8BHWM3UM8RHHK)A'AW MI@RZ=Y9:!F+_G:(KE0@!U^>B,2LV+9HP>1:$('#2.T_92SZSC= POE'"#'.4 M!B!MG"XTCQ=:#T=IKNXFWCEH(#IG,[WG>PD7L!I9[X17TI_[BSA[&\L"%UD. M\ZV!6FW;7C9+&Q*WN6S:NK!-J M;N>:K=,/OOJ4;K;A^1W03U<0O[-NN?/E7 M;GQ]P^ 'ZV+A>).R0*7=FHK[MI)F$[+Z]Y>Q_P3R(EW.ZR70DC6VJ*&4(6Y4,PW*B$W6@R9-8<7,XPDDBE+- M@Y:;J:B)L$L6 "A8"FQ7% M3DKI99#0D=2-,I"," 1'.U@!V/ 9V7ID8O,(0-1DSF+E$: M6G8MF*#*MHH-*T7.?L#<9\^/\]RAG=XS85%_V;*H5RGU'H9%O61Z=7>:@X$[ MV_>+T[EC-/#A'#B'S/!^?9M:G[;U;YZA?W/W8-J/DB22FY;*,S6?+B4WT.(P M=D_'@I $D;:0*5E#V33X#;\3[N #9#,(O;5!<-%93PB'35^A+-Q1(B46+&X MST6J$^_T(JM5-V R>D*&CM"%BI;*E:8EXKI\RS2Q6>.(O8G&A;_!I4?+">OQ M87$INJBSB6@H:,YXSX=MCX9Q0AQ9^Z]3>ZF8O%:^Q?![A#TE.)U4 ]>1P<@, M@_*,0JL+HD])4[ (@CZQ917L2 667W/N@FD#1E_36+K>T0 L8A16#!'F$=E@ MN!?: J0R2:2C0O.=: ABB9Y12C;SK[11%><9N1 RR*F*>#-D[8EQPUYYJC^X MT2_J8/H48WE]BTN*C,P\M?D0;!Y?MMKPE\5RTE"*W#<(!*8@"\;IFC58-L:W M#/9QOLI; ZN3U@^W!6?.&^!,V2%X3@J\ODF7^][N&B MHA'R2E>4[=HQU"5!?9W,O()]#]1TVCA:.S"@4OQ\D(X+CGIKTHS@P"YD7*ED M$_%W.#I Z V=70%5',*X6*M&J(@I:-&GPU:J/N <4IS80(E1D1>R 1^Y-%3K$)>J!L#\/A4-&9@46DZ]4-W0#82'*'[ M/%']655BM&'3*"W=N_9)7$ZOEQZW4J[][F>W\OI[N+K600G_HY!!SF%^_V9- M@*<8R&YI&C>.IK$0W6=E3FY>]N,^1*;98EW.26CWYP%8*FZKB.=M[EEM72DE M47!_D.\>+1OJ)!0&7QATS!S:'O/$S6R_'2,-!.S19-KP&?GC*BR$;?KS20G8 M7=E2'(%H**MW3%>46A$K$,BY\FN(8OTT6U&4&R799F?717%%'^@@&H6YHG!: M[>%BO)H2JOHPC&](%"Q4N8EX64TD*'#'=7:=A?B^#J^6)#O38DA4EE?'GEX. M[$J59TR\\2&8^7[(G.WX4Z=:F?'I_^5+BP$;=59J\X* MBATCHR3F5BSD-ZP^=SWUN '.N9!%$RX3K)]&C;Q8BP!^ MPV&VQTZJ8\RA?'>8FCF+E0:,>-,[O"CR9IWM?@QKU.@#QWD"O^F4R0GR*/@K M5UY"":T2!"J!VS)37L3%C?+#A=Q)FR%[K3FV?C5'$0K$_ >F;7U)5ET*CT)4 M"AGEFLE"(%%N2F+;(;@]/=+JL$022MP_@ MF/PKI5'_C1::]7KK&W0 B1Z",O;&\$/6B0#K"_HY]W\%T?('\GV,^"5QR$1G M_A!;&<)'N64\?E-W#=2-I1AV< 6>=(;6*?$LJBMPVX,TS<4*8PMRXJ,,R\R) M$X,H-$#,(Z?#(N[2*(C MH--MM%WL!&,'"#66I5<"YZAX._""1#B6NYTI!2S@@69X"\(+D+0$N8QYE2\ M/)#)XLPWB9(C0#5&"VD7>A2?000-Z:,0.TN"^"2=VC&S@%1>X4]A9:88::'6 ME@T!:%,J,M/H;!DC](]>2=;HCN]8K_1*$S$) ^K/N.>:K M7>^!6"9/+'29P0G:B&<*..#%!K>"!I652L=N%-%:$0O4URE=!S@7#A189B8M M(2XN8L[[,[V\ LON,#CQK]RGY:]=G]("\ZVE1K"S3(9D$'>TZLC-0&6-^KTS MO?C.?F7*YZX9E5=23JZ"XL,BP9RTJB9_TH27#%GR&.^3[=9'@G%BQ25%,HU/0V"+(Z(:>?&CV*PTAU3^.HT;5* M,PU3U!$IS;!5H"\OG3H"?J_!@>K:R K-)A\ 53TKMT'NU\AQQU1]N$F]Q.+M MDN[B=C5(T_5Y;S?!_0:W*CQ&ZP& U@'<2J]8[C*X75%1Y3+3M]CZ,:8KS>:V MQ5%OK/.B;6@Y 5KOZ&MOY%_'2 0XTV2U8A)C+1$QT5C%1?:EHX/-5Z @$%E0 M> ,%OIH<#09HLW8R+@T^+5(9^*Q?YE(D.P[VW3L@-:5NUO^NS\JL,!?2XS)X M$RJ$)\V%'(WP 3_"Z^UFK")R?30@>P$VPJ@?[:_:"I*[CO N(]]C40B%%]H: M]LMT=W%FB/)82UA$_N[,1>Z3$F?YTNB,N7)F"@_P[A*_E"N_''0$]CB1Q^K5 M9(2][5RGE8*JNM.^A)9>6&+;.]S=?OGW4BWEP]30UM-#V;6@RZGW5<&Z!V^Q.5X(I6UBZG1[Q#"OW6MKKNTBYK.TW*[G0J67_ON3FW9[@( QFT6 MO_%1>E>7<6X_LV4-/D6A^M"]_0J]4L@%A245FZT=6,-9=G[S S5U]<-5^C",3?7IKU'^OYS]@W< M!MI_L';2"5XM^$J^<80_N.GRLR*QS)S8]8[";$PCRJHOTN3$<3@LQ0HBBIY&H+92\CO;_&J24'#0*<((# @_$_A08-K0JS0O/<>K/=!L>>_V4;*34 MKN-L$0&:+[SV;E-7/$\!60I_#4[)0?5)"^*0SXXWYE7+&_-8O#&5X/+#T<(4 MO0>V%P:75R9&N:4)^^"4,(O,V4;[==4%*"LP=_9[%0/^'NS7^^"$N2,9C*V& M]^^R'@MLRO78BYZ8@I5P?89=#RQJ8F:QBZC6'._SD=WU(2WC]SL2J03CBTL- M$KR,K_T@M.+%C.^W'L+7>;FYC]T0R.6,(7B$C-0>6RE72A0MQ5ORE)-VVM.N MU!VD5K&'/3K3+(K)[ASS#_LB\)(+:PE/I9B D^HM&YU!Y674N@GL)5FS4)4, MQL!TX"J^(R86M<4P='LF[.]0],%^5-H34.5[D3,N-@^'5MZ[ZF;?6-^5=PUY M)[Z4X\4ZM$U/YYXH7"]#S 84]"ZFU6U48=7K_+&OG5<[&W/MW-M58W*:RX5. M;C6IBO)<."W-)Y M1KZ0LEU\?3OEF3(SH972L[#ZXIA0/38MD*_ 4*X2?V)B1V-P@Q0U$'02+5>8 M8FT80G4-98VQ34_#(G9H," ( =V4UOJY'Z(XOW[J,$B3?"KP,5QW@F&FXSP; MQC>1":-0Q97B*5"$WYJ';BG$1A &Y[WK(,D)7 83F&@,GN#(PF! BYC&H^S& M)Q9K6BZQ)61 =5NL1ZYE]#H/$6F@L0!=[RC+8*G3)B%DF6;C"B]CQZ2)&0UG M+:&=7R8 74$;1U/U)Y0Y(7L--IX%F5LH%8&O36A>9 ?;-XZNM#4)[M4D6"8! MKQ>PCO"U+O_>4#S3LNT]42CV^HY$ UAB'4>A[7WQ],6L$G[!@EI%:7Y*0=EH M:P,@>YO4M:JXR.%&&=?\XGT>?O&3*& (W"=D[1UJ//V;<:!&WO%7,"#H1C]# MS!="K3&^8Y4JPMNC^+JP3"?YP+!#"%F?59MHX^H=<#\7+)0:1!C M.2]KJHNQ*$1)6T];\%VR2S#T.U;BD-PI)$5.#:C3;\JO1(RP]RCN2Z7Z@XD?=[@FAG0X=<8Q]:UP /L&9P$W(P, MM6/]\RAP:25^,>',4.],NI"89.RO$2'S+C(XI&FII7'HWU!@GI+8E2'H'+$] M/3MV+H/ 2I^4X>\>5?12=9%/7\^LE]!@NA?=CBXXG]%?+;0^=W*+: J(:A[ MGUK&!#SW?HAA:)B7C(BR&1JF7AZ6C_F!%'W1$66WV<+N)[$_+#=(YF1V@/U" M!-,*4Q'&_+Z-#-3U5^%LT:+,V]JB15P\&.121V5:NV&B!=S:;YJ[WS U3$=UE\X:LM&O#N^R) ^&N4(]-/*#<(X*JK\FI/(Y(? G]\QH MS,I9MBXVYX ^9CJ* =S6D3&>B,KR -"+-Y'1Q M:#[<60)QLBYQ4O[%D'1Q\6W6OU/1X*44]C"?A@&12MBEV@[N7#@Q'#8_!WLTE+ MA0W MJ-5K:W]=)I.H/Y53!EVY-LVE9;VK?O]I\>%BY-?1]YTJ]Q*PC:F;,]Y"N;3! MZI#5*?LJP("\X@<(]&((DM_"!K,#ZP+_!5I.29.WG.63)DABX# X>-2FMTC)7? M3AV(]2"?S%]/.A@)XA#+(-'H17:M/)'S@B?66H%T[A1-E3Z5K:<#5(O89(]: MV5&\M/@(QFTDV0+SUW)L":QEH>("_94'UWZHN,EAV32TOH;;@J^Z0: $ 5E< M[(HSFXX1YAM> .8TL-7/TK/O>K\%L024469EPIH-HWE7-8D& CWPXU;L;QQ+ MA1-G8PB*\R6*;T#?"+:)2'LRQM6@F3OVDTGE)C)7"I-%Y*E-6F$Q/5EDZ:1; M!A1J\LEZ9VP*539I@DZ+5UGHE4"3YQQWDILI3HJ+J>DD3?""KH<;.YPG0ADO M,&0F8D ;>*8Z 1UQ0Q8,V#U3N5!=XB'U!I)J]KDSZ0P:+\M#%IC85 P_/Y% M]I]1]I^3B[V3DW^_>_GV8KOFGS5Z:,94IP9D:T9BW?EXNL'6):*-O>V]NX0; M^>LU:N+V+L^#.H%-KM)M7,/Z-3&XL?I.<_=3[[VN6N[%2&@,QD=;(C;=9U4=['<4"Z8E$!J!R,+ZY$ M2?S(D,[&B:6_C9>Y1KN#[=5'=EZ7LMONBC=8QGI?&2KQSC"E$+*665&\4ZO# MVJ7_%?Y.M-'KP4T\PCIO9-Y."_/N_OV7Y^S>"2"RZP)$=GL'!P??-$!DMP00 M>770Z]UQ06[EC;GYN0J_TU"-5$+7'YQA-'8R9'['VX$)(%&=]_V0+-1TK%16 MT.Q;FI^O/V6NYNHS'>KDJ@58, GGB-0/)(4P"A@D("D^MN$LCX?! D?29N,;\,?%'99@*D<_1E3 ;UVQ) MP]BDV92OMRU(9#H+.:[KMBK$=$,JO0]&2#K/'R=SS?\JV3%:[^IN2MI2(#SS M)&&9QU&Z:8+^M?1&O:EC;V 1AQ7&24L^"3N8DISK)6Y8NHYL$1<9S]\ELST+ M8"US;Q\3C7S[Q[].?S_^_=.[]TW1R$4![8=!C>R\6ITOHK?VXM!>&21Q'\6A M3EGH71 ?"^M"-V,ZC0'?1230JX%^S..^:=#/_EI79$%.:P LGS>+! M%R;8Q9L#"?E!Y5Y3WC94)0PG)BP-'V^1R)U,L#B0'C0*D5:>;F.W@S63Q4\1 M"PG+U,%+%<-$?*NCP]*1L!;Z+D.5#I*@CVU7PE1I<"KC&(^B"&.HYPI#JVB( MO,.BJM[VUON.P:;ZZ3_OH*[+^G>.RG54\SV4X_,+OG^!+[AU1JBDF/;^_F!: M:(WJM Q6?U)7P8(EOP4AP#S-4W[;&A7O.C;6'NI:2Q!TQKA!1QXV^(MW5/-W M7>UU*75,EW ^X!,LQ3!MK#3SBN?*/;]"E8DL.]5E>VNO+;T96; MKB"?J%;<#$WX5^XGL"=HQ_J4?)0VIQ9/50'L8^6WR%]J=6"K UL=V.K )Z,# MM2.N=1_E;\E%9S P_HPCM:$$KNFGTFE'MR3@;TC342Z<)!2%AI<0#R3FS"V4 M>ASF!0_@@IX1!E."_=S\9)-TL4D#K0?.V:R9*X&X5:OOM/9P'O!$M7?M')ZD M+J^=R6TU>T5&[I3J-=_>9.U_7Z-]V"C!^B:QOC@!I5HY*VN (2J%WU/8EN&) M"%1B[E;"T$5^.$M-SI&P2=&PJ.RI^>@FJ?*-,JN?D#9^#X,!:TQ4L9NA-5L#N#6 6P.X M-8 W91)KT^%$A^@/G+"P V+H(XG6G[%N=J\)3C7)DIBXV$H :]0Z^!9IT#15 M&,>@@HI;*W'Y3\T)@34>A,I/9 ]O4=SL4N!/?WBBI$8O#U>&I^T=-BD,J9$& MR>_NO\2W+ Z[>R^>F6W3SN\1UWR>$ G"\6T_VIWK?.]*PJ:,+G]5'>&L<&; M$L4, ["OJ(:Q[G@S;)=Y.+F'F-L^+!W[B<)^L(IYT'03UH((3?JK]T-XG "7 M_(R*N8)K%9D:1XVNHA).<+"S7,Q ^PT=0WAJGL.M4S M-Y]+;&T!IE<4;QC4-QXTQ5B"VXLL^2$*&XL1R)6\XD:+1YF*I,MPC(U^E,UC MJ#OA4>\=%F*A2PI"/ET6M6+3*W!]%!8]TRJ5%M8T7)8[UQ6:(++Y>&D%Z7=! MUO4^^ /I*.V^%GD<:? U1QZDH,+!ZR$BWCFGB\1/$]H+5OXY<\75H:EWVFZ29_\4/OH*6E61,M36,UHFU= M>U4C?*6CTVSTNW6=UI#L$=WZ7/X_E:?(KW>6,@AOM2QW?"=LH4@'][;X,8Z_ MX&U@1*1$1Z^'4I',/$GQ!T,U\O,0W@QV#;Y/;[JS]Z?[RY?/]3_2UQ2U.YP5'>:7(*3BZ/3[W>CUWOUX_GQQ=G'WX[?NM= M7!Z]>^>].3L]/?YX>5'7;,&6\KOMQ5HN![=.?&.&]3$V9);]L*B/OW\_O^+A M/\E#+[]\^?]O5X#B==#'I*=KO?I_.S3\?GER?%%\W&X]VU]>/=[ M'IT=]@L+F5/#>]7K[&P?>"G",-&7P];?P5=T'JF'%U.WD@^$!O_('["AW\^# MT'!9$K_CR/"Z@$W_$WI,D?<;4N6 9W4:1.!HQYFO:5)&PF22DH-+#D RC:D0 M=:S\H6!"-6%E,$$:CZ(9.WI^9B2:R91;>UED&$5^AUO$ZX[M3&LU%^ED-;W% MLBM>*PVS<*[?:0J1%2.7'D[Y0CNG^6<2=6Q:]NTA3,;J* M),'C2)AV]DB8=KO/>?<7ZJPCC((TTM6X?J=\K!(V6_ ]*F9?=R.J(K1+SVQ[ M4-DOVL3^JU4/]=:ZK-UP:\/9*S1_^8H'A+YMP@R8JB"B,(XXF^(/TIB,PP.&\42W*8V,"<):%K]OU 0JV0[H M7+B,^8^G_HS^1-_^&%^;C^UT=/='BE&6^2;F_*>(3;6^Q )?XMU_?CS^Z??C M_8^]DYV&L.Q#^A*[7>_#\4]'']"C>'-\_/;DXT\/[5+ 4@0M8*2IA1D6V'?*47]_JCYW+3H-O? AM13/X<_P3G\ MU]LWO_UR^N[HX/'/X5[7.SWY>.Q='+T[OOS#>WMR\>;#V<6OYP_NX'^#I[$I M.O9@YZB2(B@G\OXX^N7\X_[O__[TIEY2UYKH600U?X"LS])(JM[ADM=EI^.SB^]DY/N8\2[U[6710+WL7?RY#\_?O[WQYW3_:,/ MQQO@C+P$(^CH_/WQI??N[-P[/_[IY.+R_.CCI1!@7U F\.RC=_RO7T\N_^C M)SX<75*:\.S-^Y_//KP]/H<'7%X>GU]X1Q_?>B<7%[_"CS[]>O[FYZ.+XPOO M[)U\U[LX?O/K^O/GCQ^,7==25W^+J4KC7>Z?Z28[)GYV#CL1=L@)-21T+OE(I)(;)M[<] MC0^$KPKG:!W DO"+SG=?=E["M_O@+B()*FR6/*AK6'PCT F)-_4#I#$%H<=N M:(:RUP%^>F_EM]RH;NK/R(R05A#86"Y1.L,#/^%]^#'V>;!O Q@X8_YRHK$= MY?@D\F$Q%Z%AEYQ+X*^-_12;6XA_3+F*2+\!7H\RID=<\GT;3V]68V6YLO"J M;+ZN=?N7\HK6.\MPU&IE1M*@FYS1TRU^L,4>^B'PN.?%@T- MU%=L#\"H2 'Y3@O>!6(WQJ)>_#I*+K)_4:\)_FP>!=+ZD=L=) HY=Z-LG'K( M'#RLXH,IDT&C4C"%7F=W;]N:00K#2T>SYCD(=R\W^(,1_>WE(6)RM6Y:>[5S^,O> X>J2$GO8TCCX]%/QXA@-G$,3._\>G%QCCV].CCYX;\X^OCVYU)\!5?_KATOZ"$(_C_ 7%\LI_#7( M[D&3Z#XRFJYVX<_ E;D.U,UBHVI10;=(8C\$93>G)ZGUB&7P($; =^F?9P3 M^A/.>3":/:IST>[2IOM_Y4#(LAY0I<_PHN-;*PH+H'!+B<:S$85G=6"?S:X\ M]@%MVA*!+?G40!;C&E>#,]WBW4-!N@D0AY0)\"D5@*QW[V&A82YM#&SQ1?II; M$;D!DD<.?$+A4J)"$Q:K28!M+7+\*?RRGTA%$$/O4DZF4'*"FL)A%[L$G%V[ M>L=0$P=%AT!X.;P)(][8V,\B+_[NXO3R'\+S8;_:ZI]!C=/#X)K[5U.K//!L MP1F_R<9=[\C[HHCT@"H_# L(EB'!XS&=-Z;&YED086OPZVSM4HE -]D4_AJ2D^%-RAO0.0J^].SR_DS_^PEH)6M@\35=>J MZ)P-G[67*\"*%PHL9..$J$-@I)B&P+VT/H=J!:>TI>910E.CI[E[)S W4:I[;2-DK;[A!EEUY$")>3DERH=X1"1)TFN1?I$"GT'/6 M&3!5.:UU]?CZM[6N-G%7-M6Z6MTI A5#_W;AI/7*.:*=:CSYDC;M(VS:N6Q: M"N\>W>+LET-TK90]H;-?OE:MMEUBG8 -4F.":+I93&;RM371#=RITO,Z3M 2 M85JF&_LE@6$Y2K$KV!78BE#)Q/LNZ*HN M%T!%,%48UC5UC: JXG]0DX/R*IVA/(MS LK_TR/$RK9_M M7">D8I: U8&6B;ZO:TPD,1HXAMKZ*,_*1X$=K9I@#+&J6).6_8B&,'$(+BV4 ME2/8]>X:1M]@V9 X];^]HK,O5!U'@SGCIL'+, T3Z#,7)B$.6ZGS*98!)'P2"M'L\4 M.02QH_P$J0^P85&HOM+E.$R":R;MP"L,G#\\XO0I=K'5+;2WTS(QYY>P9!,H#'PL+XR3#ME-<# M/@6B!.L :N,+!G9*&^!^G )/#,4=7B/[_E"^1XS\35MG3Z,$E5[' M12^\ :W?3P+8 5#K6W4JP7(LJGA?IV#NU;^/=L][Y^]^:N T*P&'#+/PGD44 M_Q!TTO)T<^D2<&$54NG>=H54NHEGTL4J.0]X./[,I@U=@57S#O,[V.\>'LXE MVBS?0;N//>^F]@.[>W=I/["[-V?7[U0O4>I$L "3+HS:2^&NN:)D[6;J$S1* M'P(_78/O&]$_Y0-1NV?:[)?YDB%YL&O9N,PB7F?>WJ'#@R/5]6=]@6S#>5\# M2FF3("@;[-X]NNM_ZP!E,PG!2MNZOO*2AU%]C[YA*U1U8"%92;VT>_U,]WH3 M=J55K+?;NXM_[<(.:"@ ^L7.3_Y;$ 3OA%O5=&W&&,!1GL58ZSKTSB3C?U*X MV-\=G9W\H^-=<)N+3SY\S?GUQ:<3QED,8IA?$"%-JX4*\;Y[\QG4]F]PA9 *57H2\ ;GQS.3*Q<]U,R MJ+IA3KV)B.A2):6@*7[2CJL7$5.&10T24,OXUR(8"Z-)J5]65(K?=JDW%U\A M#7<'1X*Q\PZ.&D8#:Q:'U,3'CG)^0P7ACW\$-JLBG!M-1>.@']#YT>#%+88Y MPG=!;#GI0"VCAM2!?!Q$LT)$)3W$,,\4,QBP:[H$D>T,8GQ7M-,>"DGJP1)& M>$Y>;GMP0!)-I0!?-FSTR)=A#O]RJ,92ED03R%WTS3IWZS%02WD\#OSN:KKRILQ1B@P@?^6*F$_=M!YSR*3* ME5RK/QL>2ZL[6SS"K!N=F'003X.!%TPPP?57[M-'^"1.51+@&RP;'WZ$"TQM MLAD]G9Z_V__6OY;JT.5TP'S!7M6)> MZM4M\U)%3L*K/&M3^KJM-!.,0^]N[V_>?!HS2[MWRBSM/DQFJ)U)Y-6)_]8*KNTW*.6.$HUF]+S\?]:6VQ#XMVKF7FSN=]75"Y1<81U4(^7\18/2_X#DZ8I9+8;0)*ZP=JLN1CF; M;JM*-\5BTH3'_M"?8J@I&ZN:S4OC48;M%E=.]+9&UQ/2X M!MI-W@C-.Z^XK=VA]ABVF_P@Q]#J$]Z>R W8K/9$/L]-7BZ%OB(ZUCM=&E71 M!E(VP<5X'H&4-I;Q=!5'+6B^C5%MLHG&=ED6XUN^,$B58Y0PLV&(4WBL6P!.1M33?6XJ[N!U"5[VJW?R*VW(7*Q8Y^?'9_^5]KNVD;NFJ2Y"JXO MI(&] HL@3LHT'JO_9PW PM^V=][_7'\OBHP/T[H0+W6U1@BPI\#JC _;I#3.+N$^I_64_ M&-I?.SK?NCAJ7?1-M0S;;7E>=Y1FLZH!8<[QJUN@])/=\%5\]]\MNHHVC_8\ MMK^BLU<,"AR=G2R;9FVOAZE2A7C)>[&;V.#;2X MMJQ5@D]781ST(IW;1?H2[D%5&14]Q&+87C J+&XJ69$V=OI;* M*BP57E\A/%9EDY: ^>TC;F4"9QUQLQ_<-)F7O;M,AKY=&Y%U)MC&G9^FOGK8 MN//M#P"+8X0\>(';(5)]VE[(#;R0&AN5ZN( MTF4KLWSB%4HT[4I,4[ <@;:?HL)7&NQ&]M9RA?-@@[F8*]=.Z06H11!H-@ M2LH-&3P-++;:N;S4L;S:>FS%RVA.1_$P-$WG\Y17 7N;:H/EDC\XH>=WG([/$[T-\=Q$OPO/-8//\ 2 MG:M)#"?0#- 4"F19/-DJJTWY+7B6E5]5/EIUC.57V'AMG C.U)K.CXGROU@K M=:6V^OBCK;Z"@P0KX(:?^8- M?!>)=?_G__H_-(G]JE#"=<$JVQMK(V^LVI;JTU9@6H%I$)AS.R>*)@&;";JK M9<>BSP:;X>CLQ-@3>.V7^/7=F'Y',]DS7?C?>J^Z>\:; OOBY<[?T0[^V]Y! M=\?\G/NB]SH\H+_M]KH'I=]MEWJF>VA74$MTRQS2?=8-FSXW0C<&DFE9[5A% M)9/H=KWAJ9E T8BU8^=+&JTF\DF"*. ?HUN I.2=[ MR(<3@/ [L!!O3&"!/L+FQ*-G87E?O.H"Q,L>\V0$??NR'.9F;61R'G(4% 4/O3;<#Y\=IHOCK M(.,&W30EXQR#B- '%*HG4,Z@%W%MBBFU"F0C%0A+FGTD1WE"DJ.O3;H7=5B" MKPC;)D!:.8ER-6QVN[E/+U%\>T@4"]3N]O9D0LWJO'.5!K!HV&_B@NM]OSLZ MO_A'@:)K9>5;E16,6*H(;Q\T3OUP"[<7TU-:8*S&)6RT(QH4NV*!]4+7J8]* M"\UZQR0^?O/692UM^4HW_R:J:9Y>"<596+;VLMFP_7-]3801YA$F189@.H0Q M.PF=V#2PO*=+#-AAXE\H?C%$:+B1=]=W1)9@&H-#[L>&"X4P9?)PS MM_!-\(.,Q3HR(1 UO,(FD9GE>Q9V+5XU']JY@L>X M5X<3=MKBL!.CWI;@OIBKV01FRTZT!&*"U/+MAP9)6V@^K^HAEMWG(HGTR&YP M.>52CE0_5&*M-OUR+_/#RDG,*X7Q%4AHZOUM;[^[:T*9((]OP7F>]$&B=GL= MB7GZ4>%WG_[AA0JBT*K3T6?[NQVM[4//D>\ MMKLUA;MKDW8,1":DH-7 3S,G!/FWG9WN-D7Z=_:ZVV:,&BY15VJU U+MA*G= M8Z'C$?CPWGYWW\X0-#VR]TVA;/[,4VQ>W!X3&\M3H CA?.!]'^@.L;?)\[# M^]*@6#)9^V4+^UJI'N#!&L#2B5N6:#W MO [XD]J'G^,;S JX!HZ<.LH74&=SAL -\B3!4_8&$61;O4,/$TUX(NG;*AWX M4A,LW__U2^+C"^%4C< !S?@@^AA'0DI0))&$7\7P $I7I*EDGX>4#L6_=>"[ M>3CDSM9X[X3QS1:A-.$5\&I\'EY62^J'IO1T>\KO*_2@5:[M+CFNE!"%5I/^ M51@D;K#E8FD@93HF$3'"*Q8()\]<(PG4N[AM)/C)>-H6- M'5 &C_B7&!:Y5VO"OX#__2O_:#D+*?8+...5U-%S9# M+16H(D)!@+R$&)#&!!D<==0I?]L]Z.ZV>[WVHSS//Z[%!CSEH,$RH+A6E.X- M"6DD!G0%_=N%9>\UA,3LO=M9I5CO?_H+Z.EK7E9QKT\FL$H9.;_LQ6OKR,QL MWENZ#>]YL?+"W'H5Y@/H[W<#=&'R'7?!$-;#"$D 090CD&4459OS-H@<0'DP M(?["NB+L:9R2!UK_6QY=W6\2-55^5O\[O/L&XPD=S;K?QTE :UY;%!X&4YL" M[G@T0F@7(='%&#_+,\*YH_'T8YX&Z,Y[9U,I,TS+@A"8_WL_)#\ W.DBL_"OZ7@PH#!N_R M31BB Z06GEF'CG/ZKD.A@H77TG M2% UF8;Q3)'WXL'YFQ%J5UTE2@F>%Y<$8R43 A&3J9':6K\$^+,8?_C#^-DO M$09,*%3"N4PYZ? * =?WY;KH2&B&^W>8JZ,#R@U1C.](LR#K"B^N* BQ^&O+EF^6)]5XU]9$OBH! &CZZQ0S>B[2?6%-Q!XEHU M,IN(U[$(:P%S"Q GR9NM44NU(\<;A3*9 PQ1/[V]U>M7CB&\J"?!.9 MPN6I&.N2=,S5Y )\\3#XW@SLE*T83M86_@EC9H%)E=3F[(QF1*G5+YF?YM.1 M5]B]*U ](_< &_T'*X^!N [&;>%#>81/3Y6*/!QWEO*YYN /*2C]Q7@P0 8) MU*J3.'4K7XRB*YU\PPY9HX=)#7+HR9!5_O/!C-Z',A_O5;&5_'*M6J7.X]O0 M2X\/"6NF GL(G57IQ%,1+Z? W6VXT^V9/6T6_;H:=[=V?O?O]1Y$'3/9"ZR3 M@;]]_P+^5F&XFR-T)9Z[.M]L:5JU$I^:3.-POYZ2;TD^@(8>C//YOD!;ND;0 M"BMQ*[?;..^5Q?JB9M@7+@.37;&E&,8#7Y@S3H,(Y#;.?#(H+^!T^# +,*M^ MC#DIQ/50] T" E!>H8_W2II3Q@ OE"N\ R/)_$=#SBZ-%=(*P>'=@G4:" -( M"D^6 BV\40K;UGKP4*D)/ ".$YO05!YZHV#@4H;E?5'(=8Q7J)E7/F489!Y% M>&F#/@CY$JJ,0T:8\B.1RHC\AJYW,G)O1G.E!AFZ%^ -I@$- %,LI=%/_!D9 MX'U5&;Z@?,7F7V&I#%X"']Y73OXF'><9)V!Y"6;68(KB,^8DQ:.*!6C@Y%"A M +X1_"&0G7$P$H!HL9CVD_!-Y 2 D-':1#EYCB 7APF7@LZ#UZDO8FK2%*8 M<#RW]%2*4=+;P%N*,F'(_C.V4NI!0N.D+HL!&7L3<.!">/5EC)16JK- EAB" MBU_B3HU^DJ"]QG49]&[VKFI<*LN]XU4BY$W5YBO+)7ONJ<4,AK!=N$Z26;=! M-6I*5-*2)1;66NY41YT^Q:O@-NJWYJ:\C=Z],$Q#\419!:H3'VZ,&8FJ[N1< MVYB5]O?T]V;*W^*1HAE,S,/S!P,UY0JA84XJ4[C@Z$=XWKGV%8X J B?A0YD M:0!BB&$1.(R%6/D,*@_I*)ZBCR G3;_.<#47ZEAJ7W&N>+"GJ-892%[O-NBJ M7?CMC.XHT:(PNG2)X":(3L-D:N<1X.;C*$.BW(ZHZ)5=.[K-3&PL M(4H?K=7P _ M&O/(.,X6EU>KGTI3>TC;](T63+YX$/WU=8I('K&(0."I2ETB M94QIN;VSK34)[*[CSI/0/N@,W!-R20>A@P=BB%=T?%-,R"KS![U5FJ#,AV]9 M)K448>C43M:-H_QZ-.3*X#ZQ"V-MX51U(]D\3 8! MWRO.SC(4<(\6(7F.W&P[+3?;NKG9;IVM7HD-NHW7M?&Z-EZW<4;0@GC=_3AN MI<'5MXFUL\Q<=F]P9,6]C#E3\EJ&:*XD^=0IE1$SG7+/,S0R@LA.$H-] .;, M%7N(B7_C8689CF:(I;MTWZ/Q$/K].&$K.QT'TRDQEN'/XZL@A3V%MZ5IKAP. MNJ$"PXG#,@,%DQ\E-#G.&,-+T7O>414I'S?KJ6>!$J:SPL;EBQN'[]Q"PA R'.-)RS !'[DLTE\G,F$!L GLPYF'@9H/05993 MGU[MA0MNI%C=KG?1=/Z=3E?H*\%'U\]_N8@%^TZ%%/U4)&OL%+3O M_8GBE8IX35F\- 93-*.?$K4NV01HU&N4T$9_<,*NE M">CT-&65"%KVAKQ"N+UHRHB\"(NIZ*96.H9MP1"*0#Y1B>_UMCO;W*V90:V@ MV8?P3+Q.I5$+71?:[X0[*5)@%A:W0S&-.3L%]V.$I>(Q7F-L+(I!WO@&N@O< MKJGEB^!1FHBLB_^I#?1M2A7)F9OJ-.J'PP89MH2[F@G^1YRFU,8U13EX:YBI M+51$H,$>0?HE+:/^Z8>E*-"%H\'PKR-_EK&I5OV_I>&&6E#UGO]RKVT M)AM YL>Z9[UU*1UG8)(?Y P""['\*-$.-54T\*+\_^R]>7?CQK$'^E7PE/%] MGO,HA?L2QSZ'(VEL)C.2(M%VG']\(+(I(H8 &@"UY-._KNIN+,1"$ 1( &S? M03L N0B4N6OX>T,G8KP+L+!_"W,1A!"T^;?GSF_+YS?_WGWK\[] MIW_\^^JA&?'/8R@*(\YYZ&\8SD(P?+>HF-6I;*,')_[:G?2BPCEG_ 7?GS7/ M$(Z9:]CXWSB1[\]@(L&PSN:\$SNO@Z8>^F&1)>I;"C;.?E!X+D1$;WFY +D MN0"Y +D N0"Y +F 4UZ 2%].H>UY:8 )6KX2;PR$X"W\28?,%VR;NC873F)W M1UL7/=B.X-32;G:GFR H88)B$)'3/.\O M.F08H>QL'I"[Z^X8OJ<3]U3XR?JM;TI(HC^%&BICA=*5"T2<3+R9=Z-=QLU( MQ:_;EXP39G\E;4$IZ>%#+JN/6?$H\XK]4@4%8Y&;T.XU1MW6/AL1OP6E//2< MZ+YVK+ZKY*\SX\NUVEC9>"30HV*=BD8-LF MV-J-WF!4I8VOC6"+\X:W$W(?-GBZ72YO"JYXXB'U8(D(<2S6/X?C^Z0+;)1[ MH9EB-5OD>\.))'6:TEU(])V M8]#JG 219O#V[ZH31:&B\#'+LU.X3P^!EI'N4YHO+M4*%4+'EV9Y[=V6W#9U5Z6A2+X/Z5 M#KL2MWMX>HUF-ZV)MNN!1>%YE7\GCTWG=>#J+>KWGEQ>+=V]U6F,!EO"T FZ M^S&NR%(H_DFY/'7H5%>Q)+@IX/:D#<')8SD^/QTL-[%]T09!/S?7" 6U&::I M#2ULB9Z6CS;2A4PE6>Q/%OF0PD'5DE&[,1AT)8442R&YT<:QKY!:G4HUQ+>\ MVN75GO%JC[JA)*ED))7*7>V#9J/5VA+2EM1P E<[OT$B8+'D_7[TPY'WN[S? MI>E^=+*HX/W>&S7:_2W90))"3N!^WQI-V=X&8C/G* 429/[@P,$-V0%/4H!J M,FQ&6S2770:KH1F>K.]_-YAD*UQD)XA/RXJK]QBOO3&>Z*(DBK4#H)0?AA== M%W#2M)0N!ZEL]RY&<4B9K<%%+PQ@&<"[W %6-S;GP'\@$E8W%UA=!E/N.UEZ MXIT1._'H4^4GWK[HAV!)L8>/:'+C=23"AI^\T2>P"K$\UNE<*5_O'UQ*Q*9* MY$F=O?O!!#:Z9M#Y6^8+_"?D*FJ1';\"B8PPZL/7*30SUR"J"%T]5KS]._0, M8>_E4U/G)K;>42QL*@[HJ1N3I%M&WJ#U%YW![?57?W^KAYAU!3FLY]L['X?1 M_6[';)]2^:<7BRN2$9ETAD/\0(Z3!D!>MXO2+(L8 K MC=WFU[,9=$[AW: "Q\U:PF$AD0(=$IXHQQLS*C"@6]IL.8S5/^!#C8&-+11O,YIT"T %J@TP/? M%&RQLVU_^=HT?QLQ'[_$7Z%ENSRCSF+SE("4Z.D;*/+\C9*@,3B]2_1W*J(I M::Q9P[J@PR07LN?B%J\X5T R:<<[G^&^N-W01*_ =RI^7XB>W SB6+PLH?E+ MJ4-L=$4[%L%LK6Z(T=ZU+36BH1LVH!ZWNNSR[G8V[U6XO&-Y.C Q=C'SWW:H MUK7E]VD4@:X/UQZFV6/3["3H=)WVQ6!3-4BW@ LF7V/T/SH4-6"7HL\,TP>? M54I*[T&U4';@*#.;>QPCSZG,Y_3PKPX] >4KF$SGG]<&$VWRS,I\9N*JB=!0 M^5B/YAOL.;[<=8Y"HC(5_5%GF^YAY>N_A3/HF3R#^O=,;1:=^"]%,;=8*YRK ME9XQ'KB/L-$V2HZ%:*T+W7MU\J:HT-!WQO53:FDM%>PU%W,=X^.:H9U_N;[B M7_EF3 TIOA+7II"T7DI:3Y1/T3I7QZ>T@#+#'53MMD\7TXPH[DEAWWG(PZZS M91AT=68=M[FA%"/90T4"\:2"_YXQ(H)&74DS+22P?7]>X+DK:9WP.BC?_>[J_!L"RU M(S\,-SO(0F0"?#"J1;"__0=)9S6CL_02J'\Q<#V P; 0TIHDC=,E#7I4D:31 M&FUF!Y0WYAL;FV9YJ8$^U8'.U,GOC\I.\+>09KG1,UVU[>_/5D^&>1:&7G$/ M/-CV:-N2W%'5)T+'_:'M);PD9N(N+?'DTK2T_]%A5?T+/9)[>H^\D/G9AG^3 MI1R?;W*\E^<=^BKTTS"0C(")H7-=6NP0_,OY9!'U#]]./9'S1_CH_)%0QJ,[ MH.JOZGM$:DA@'[%S/7V%JBPMLOC^["_3V\NS'Z9XTO02O:3/TIVV__Y7]0>1 MGGR4+.6+MG^0M^A%))%"6O$[TXEJN4-.# 5(D&6&F:QZMJB\ ^C "J!G'HF"^$OOI%Q>0Q&&9!+.;GABRR0 X5W8O9TF!Q'PSU MJ,8[4UD,C3Z*LA@GZ8:CJ&Y$7T<'&=].?"H059/HFGSKH ] V@&F0/F2].+# M3A9DBUH$TD7=]#5()L7DOT":*4\F96FP?#>]F2HJI5UWKOY9:K9"WN#E3!MC M<39X%2;>S=?THGB':X+M)# 4_<98J[K"D@D7"F6S5V<)CXC\5U\>JO]5]!-5 M?S9MAXKQ;R QT%P_+>&V'UXH/L)H**]>4B(L>$4LN/I48[9QA'ATR=2P5.'< M==U\I>M;XZ% _02LC]*DRDZ!%VF(#<9T0+XJ-^87>T1LKWV*)STM]I,6P'%I&7C+&F@6[*I(M- 2ZU 2/VWC$'D2+U.4I&DHMVH M*%O>S&XG)L_&?S:;[,B9@95TGOW@*X80#B[56"_4&6R3Q96).:&KIC5Y/"H7EY"?J*W;QP)Z?" M$DEZ1R8](3Y:*OS?SO?='*K\ZU*@&TQJE)O@1J06)9B:H8-R CY.+KJGN2QIE@I :PQ2U1=C'!74F/4?@'S!4+TQEIB'8FI)[:@&6@VX2@SPO>HZBW7\JBZ(]4"_)5M* X8)4\@T M;_P<9BK "78H48@;LQ$"D F4GO9$M48G 4"F%_*K1U:UMBY:_J$%<$;DTWSD M;@3>10J@$GJ*E%_6KLL Z"EXN@OUD1[M0GVA6A?$%D/Q,[QT@\^$$4AL )R@ M#,M6"R$/\#*HLQE9.1ANX=YU'\GD=IF52!0R1B^'),S,=)2]7,P/J&1S'4K\ M4^T%=#9B+.%@64#1,4T=$64V0XF;FG4$Y:PA0H6P,PE,++6=/Q" +S>&7CY 97/ZHK]3(,'R8-9[D M<*FS(7R7\\/;05/-O%)%I?>>)9K%Q^Z&S@9@W[L,Z WL"WPOJ!27MT( MA8<>%?H+GS2#18*L@'A(-(Z;&N+0_G M^*-E4M7I*\Z@0%='Z7;(VXZ(JPM-[Z8/'8JR19L;W]U1*.&M%8U,&0 9;?'' M.\.05\ #I IA:L$=//$#2\W"D]ZX9=&H]WSY@;Q4BTJ_E#?"Z)WIM 7&9HN=9VCML%:^-#I]@6^AK^=,*PBM 15] 1!(J-!SELQ$@-F@ MFXDGT>$8BJ6^*I#M0,6V3M6 N69!C$-7'SGTZ0+C,.\*U?>M):C<\$);YB:4 M].[AXH@2_IM"#Q1=48ZE/:YY?C"2+EWE4S0'<"RVZ J-VLJSK9X9QL%/*-W9 MVZ*4=\'WD,'>[5_TOO$D&K44>M\$K0?Z4?<;3S#=T@LW\ +?V$(LP<#"9?@. M5KB*H4 J)#P]@+(R_6[3+(A4^H%29TL! 4OH>OAC@KO7KTMB!%2;NH,6 M R6YT-062X?7@42T62 'O(&'IHA-6QHQ9F2.8D?#,@/( +FS3Y;Z[(?LQAJ3(&:SV!9ZH5+RU+U)0D*7A4=#;]DU M)A2X7VV"-,MKMI37+#/+_S]IEU?IT-B%X\*U_8K7D#RK4IZ5R$8*1T%?P%Y@VXC M6@@$:\A\'0X"/JE' B/-":AZ=$IA9$_ZG%=CF:[&+EUM);NN48NP1:XJ^=*B$TVROB(@?OW2(2>S+?)>\I=)CK;1%<1YH*#!,:5:1.?(G6A_$2U M8VI8LV+9.+6;Y^E)255.2>5FW?MEUK:2$686N0;5;&U9$ &-L'%\A.!S/P7, M)/#(,#;BCAS*X\8"65YL#LQ-9C*VB6(AT!%J.7Y,S9M M-L_D@@)\_I_[U^+G8H-)7BTEK_X=G@9(Z82#*7K'J[>_$5@<"_SG0/4'R8[$ M*)85!.WN>726!23R79HOVOR\-:)*)-UYVY >VEMEH)24WU&M"S9G!%V&L2:!,T M)Y2L<1KFC-#U+BQ<#ZL0 V3#9"P7#,5Y0PJ+/>@Y@@./ X45Q!=0E MT&LB<*DP82Z<-LS5PT3XBFM[HLV/J\-PG\].[?J24WI++/:.GG-8KM*?4SCR MXTOB$:)MALCUJ%/ED>$/F;EK,0<.Y8 "QE M$X+SX/-C@$/OBH=\Q"KBQ#W#-LV];"@1@+4,=KH8G:GRE)OH04$_P3FO\,(, M#\H[L256J-N4I:&65(JE4BR5X@HJQ:=PDTOE32IOIW[F2:6:7).(13ZM#_YI M5^*?YH1_6IC_=5LF[BUS2% -YOH-\DB(?7(9RI#W9].U0!,\#)Y1B\ID-57? MWO^?^KSZ[NHC6C*&6ZD**;G!G-KV-U&YL WEPRC8%AZ:UH9_*&IB1AL=;OL1 M/Q9%M'YT6#Y-;Y;^I#<>^) &1"D-"!X-==.XX.B]F!2< 5"&&T)V3_IYI9OO M).CEI'\!8,D+"0S74(A!6880@:+FF,[[BL=P(2[/>TO:Q'J!V.Z%+X(.F,6, M/O.<)Q\K>KI0%VFMT>?+VA73EV"N &9)/KZ#0R IQ387B?"ATVTV(,KF!?FY MB\7%#GN@*U%7X!SY$?PG!@B,_]=6_FL^VNC@!J\RSW4#1_ K! '9AE%ZF*UM M<)&KC_31"^62!S #;#S7>,9=((E^8<[0N4Y'] LJ<[$#>T]Q'V[H/MSS?:!' MKRTD>Q<4X-X]L4V>T.%.Z.O]@\CZB4^]\4NO#12!<'I/2(U $(M@LH\W,)?" M+/CCB@"ZY#^ R85@W7P^!I1B)X$G"<9',$G8?#Y.2\_X;K+7 ;+EHRH>I[ZB@^>:;7I44RX"7NU4 "\V@\A 2IWSU !?*V C- M%UL18+4 3&ENKA^=Q5H70!@<=E\%V?GHB&V,+<02@[.CF),41]'T'P5+(O-V MB)(=U/AA'8.ES@ED([Q&'D4HZZ$1&@R2(@D>)MV6!>%'I"H?!DRMY#@BF;3) MJ(JAV,/?7>W>X8Q3]"(ZIF3*5LRV-0)8N27]&L:R,5VWCR=7 1?&Y=AG#>)M1E6#M%E8@L2XCM'PNK!&,Z<:ZHRL9 L2_UY0X^FL;:Q6OAC10L=E)=+^NCT.A$XEB_JH 0RZE[.*Z[*@\PM[B=C)>I%Z6>/WD;[7"7C= M =1W8K!47GIZMU <>LK5PNZF:-ZFL(I97G0/I,M_ @3-?"&:\4(_8"89EB:H MP,LL*]"V$:'#-NG]!6R,58W@U:?$R'/'9^^L790ZX^VW_ C$]&6L_]6[N :I MV/3_/#0XR"M[_6AK!XL34BG8D^STIZ(D2RRT%EN(R0;+A90 MK_1"_+\4+0+5%57)WK1G!B[1\C!K4-RWFCZ$&BEZ3U;T IEY9.32SW;TDA]9 M3075FU3C28-(U1?S]1P$UEQ(KV]_G'R93CXVE,]< [@BEO:"W[L/B9]^OIK M+S_TFSWD04K Y(WU7:)S"N*?"C..U9Z=/R+J4M"I@"!((H06?/KGBX<+94'F MZ/\3-B*\A'+P7..*G-!9?)\SEHS=JV;"7GWHC@;YK"H!ZBFANW=/G MGS>E1WGZ5#?MWQ^1#A*BO$5J1I>I*1 %_84RUG4/N1?T'/1?J&!N0F0AUP16*GO(O6)MZI !0(":2[HBF_PBU$1 MFR;FF]:!="=.E+66#M KT7"V@%>"^/Q 9^^ MXS]1[G35\"VX/T#KVDUQM00^J'LX'P9#UU1%>8-IGXY)#^H/XMFH$&]84G&/ M,0FJ0?%]YQV08)H,QG%)]+D?R2!A<1!)001%B"M2GM'0>F8/0.]#;H#'2T,/ M/]FU6PAB0G@ RJS0UZ7B6/IC@,XBMN/NQ:.J0P("!E8B'VSP(%[-Y1\V4BW:JZ.)ITJW66-JP,><@ M6$(C5U]43"QL,/+DW5*8$#&,7N1P.?%Y;C?GOWD\KN',8@H2Z@ M6SA&H(7SQSO-B_ZV+DVIWMO/B M#4B%,Z;M9Q:5YC:*VUVS CE=^J'+?(!>)8XPP[;';7FPLRD0(6#?/"8W(MM<2[4*Y\;Z$453TE.*SDCS*3![PFW-F M%(G<6L_P@V($>7QE/C[7TP(E"@1[ 'JQ;,KTEJ/]C]?5N@?M"Z>@9LH/OL&D M@IM,%*IX:- W+(B%V3"08>0;DN7CH9*^)5>+ #P%&FJ M"FO#OI,NZ),-(+NU6"OU7039Z*75#KA^-\@%*X<@LBNN.WQF. +W9;@+;XPK M5MJHI:'(0TJDM1V61E+\G*[X"4D6KS*4%789IH.8S,)'B,*F>S$,^-"XL&IL M2BKA:.0QAP]#3[#1WP:*2'E_%,^/Z$96O(H4M-D&+$S#ZCO](VPJA7ZRQY=W MFDQ"!MIJA@2P"(&(>:N.$O+3LS 2=];2W34@8! (T 70M#&,1*!C?;S#-)Q. M'1+SL4G4;BDI^GT1T!M+>WE&4!K(FE?5HL3/4Q>\I&I0D2-?Z3F!4]4FA^C* M#A.6YT./>I5P)]/7.4OESS7E8T81>![^)/?8G]&C'Z>@,JQ9-E_=@L$@E5$3 MQ;0U'O #U9U!3JPL#6J:368K+-@[L8K:U,,5TTFDZBN9?J;/0S<\"RL\@[%& MV/8%%3Q8=8BCI$<^*$EN22Z5'/$I3"53>>3=F&-VR!:W? !4PO/[,AE0D#.Q MYX5]DWR)B=ZJKB_GH[[^$$R!W<$?DHO%'50V4NHY+0]U,*3;1%IA+7^H/\)R MB[U^X.%V=\ 4E'T5^BU:6"]!"XLR1WV[D$'M&@S:;%5A)2"\Z6+@N3\2SI0+ M49D/U[LH]:("66>-J_SM33FLE ?YQ# .G/>5-L.4+,R0QN8GB.$AQE!F[S.= M\(9R@2Y0L6W=0K!5J!BZP!\)NDA$K]^X'T?!WZ10#AGN@*L;;@"KI%+;8LD5 ME[E>Q>0K9-:1XJC6IQ.ET+;YOC/0GXUM3Z.*X[19T]3-GJG^-M#)C..;,DY& M>Q8Y7KZY>JMHL$IV!F"Q?6VYT-1M N>&&#%.%_52\;9HH\E5R"5120^2_9$" MDT'D!/JT&\Q'I!K"(#:BO5&$ 'JP4*;X1Y8 U:>?G?T@:F(#&_*AX[O"-G6G M8!V*=TL!E6'Q""OD=?,'X],%(V">?+P0E[3H+*$GI2_SCFV*+XR[,>46FS&# M&O/CDFTJA;\2/I;_LDL:*^H8V ]@0/:7V\5%9*5&9>[&I>MNHCU)SHDTT#Z[ M$"$A7FGQLO;X8Y3672FMNW8'SBU ;3G(.H%KL)EW#APJ,K)1??2E:F]+/_=J ME_$AE]%!2_';HX->%"4JD@C+2X2]8=L/SA)V(QPH^Y\+L\WR!$E",H(#9,IQ M(V+)=&(H_UA3O1U4_@;*K$^F:F%_MBN-6MX.=I)?.UC7BHX2J@%ZWC,F^BSB M238.LH5(.2U:!Q1)0*ZVSFVEQA35.A*MQX9V()KK:EMF+2BAX(M"4P=6V. @L" M1$SCMOR> \V(,@0'ICHDM#6TP'C1[R;RG-KA4&3P<_,*G8>-0@#,B'F!2=7'."WDH M.:+=#W&N)XXF#@N$6(K#P%P-*CZ@D@I\1 ;]H?D*O]"IZ>XPCP.\P]Y>#5,C M6HQ]W.O!1B7,9_)HK57K77@A"!ZWS@4*K(-Y&$3@RD5%IC)IV.PI-O@FX&M* MJ,]H(-&#TV8L&/M*OUJ:4-[B>A@ =-C#\F.B"-II(/ @] 96L9C%CPF/?AV8 M%-I>S^#09Z%.ASQQC'=W>#'-M&X_Y@[RECDW67P320J2_X#OW,@KDIU%Z,_I M9/QJIK4V7(!6+K2[R,F="^7>78.8I.=W97YV(57]$V%@%,#?:*O/H_U#)E56 MV.\1JU;(=,V].?R8=.6D^?H 4O0E($6!@!2'+>D*@..60DVX?IN1E<,$W".J M[BA]F.S8<. &JL[=VQ%C'-B"W3 ]/S:"Z3N>+13LJ(.^NY!Z'BC&[&"]PX+.YH,A_DBZFO63C6C]#L^1J]YSE.,[YRNW"K!]+F=BLQ M-$*9++^C]T%-Z]T71<.-<*E^? TY)@& H0_EXCO"B\ECR^/8W!!WA"F% 0(/ ML@ 0_8WSI4!CV.6@ 9!UO=(%=+4_#,F;LD?7FV.J!<+T/P+Z/WT7-AUD\ M A;T4B343'T)-47GRI6L%VB2= NFMOL;\* W@]WK8)F[^ D^X)-93'@2G*H* M>#&8NL'#VYBX!&Z'%S0SF5>,MW]@'A-(&7'H<3T!X+Q%E2 5G7XL+$E ,.GS M5T D>?@Z95$#:'-A&F AFI8(\_G2(9AXL%&TS$VT%P,21A,T VK.BB[69MJ4 M$>J, =J8&FAL$03]\Z6T>?A8P2% 6/BUN15E>TP06UA( @QMT$7!P1QC*LBH MY<@=2P(=,_*57++1SS03H"$6<8L3C=EP/@#T_$:U>PBAL$=QLS7>I8".0C51 M\!NL#11N]!@!(?N%RNV_LZ[0:6[-PGS=TK,=Y=F.L",7^,]6218E<828=?<\ MVD5U"CWCCZYG'8)ZDKO$G\ IGX:02#QF!X,$S.GYB/W\0"MY8CA@;D! ] 9] M!>5;UT.ZJ_@7WA,':$!61MWK*^@ ;HHKI4.#7NJQ50:^NXU:%)P\>_B3 \X]WF^,4S&A^@6 MG4*)\Z0<83YK!MI3@8'\4\-.9JBWA%NE447#-K%!I&[.PL/X\1\A0F'[?\:< M5! H"ZJ% !#M+-&M[^;0"] ^5)&X^N?3X" \P74X3^]MP)#,]R6T+;=3&PMF MT%&):+E&M>(9\2NV0EWE<&)>[UR6EM MO@%CG&DUY:%(8^\2+/T9W2V>\0[;>&?JU,[GZOLUW5J@WQA;K\J.QVT&'?C& M>#]VKT9"U=]MC>.:BG S6$Z:*RV8J<>HUV=9V-S]NUYQLR,0Q_8&H[>FPWR] M(EJ(W/]("&1I$18-XUGB=^7$\OF/!/?8K%U=2W$%;WB;RGC"D&%E5F*Q>K&80,=N M=X6^'"CAD>=-UE@%D^@^:_LJ4'T>J(;/8\_>BT]I7AL5L2&;9:O,8<=BFH%Y M@H&ZI++-M)!%8;LL#64FAADPJJ"9T!42A3D=?_W,8[1X0#[H4I89H]+K LU/ M+P [TZS9^IF2 >"'-OAAN@3,"!"T-/P&MY;;WPC8Z%&$^@A].G%$:!@ 7\(N M$!\IA.J!&!596%L#LYN#6T1= 8D;3@1"*P.7Y8] B+_->_$;E-O[.;5"C'0B;P7!O MKS1PDJLV9C@%(I%P-6AS3H-5[*Y,W/7ZNEPB5"KPWZ\9,) MKC@+4VY Q^1Y)&X9%0IC&S]#;RM(*Z8*H9P3B53^.*WO5H!D%_8ARAY5]ZF= M_EL&IH,]RDW\W/:W[\0\%S5AQ5"B:N.)/+Z[:[18-@T6I.&DA5:[L5C?B2EC M?CE3 :RSB\[3D5E6L+9:"44:(D98Z0MRR2W7U RQ#1>L\:&H220<4ML;D4FZ M9\WAE^J3V[P<$IM8%J>7.O?&7X"#B)WF! K5R^SJ\4Z'SLQ7INDKRU0YV@63 M^\R/P$LXJ17V3+>?*A/0[ 8:[O6:REQ]QXN VDF>09 EMZQ@^;.+?.BG"SJY MA:8_Q>G?T.G?W$ L2>@LBO!#>"YLN<96I=\(Z#:T07SI!'XKR"<25> M$TLL&I;)"/\.6X1FN1HC5$+0E9PC.#\Z\H $T;-QH4S81L?^ J8$6O <\]RA M%<5C+\M0)[S?^NTZ<(J=KD?HL FIP,&XM90MFT%'>";B["A2@ M_>(4K-3"*2'%KC9K!/LLCGV0E5U5!H0#M8HT#I0 @5)(](. *(N:VM@5@%5= M$.AAOJ%K1F,8V:%ST/98).8S2XZ'\CW(_X,X_L1:]B+&;J M#R^ZNSW9W%B&ZYUA&8M1NF$X^Q&K]$&9$:[;H):.WB5OY?Y]%SXE^AI/#<*' M<,PPV 'S5XD5:![)QP5/1*JCH@KGUD4Q?:N#YY1'RFHV'*HI$7?M7"11>7?2X5[[IR[Y*V!TF!%T+[HIOJ)O&A-&Q_ M+H>R@Y+VC"5WXM3P1F!ER7XY[G]]P[V'M. YL*U?^F.W7/F$+K/?P5<6 MLE+<1>"='6MAR_P>=+ZKM0.&WM+TN*3>TS[-TNE6D]SX8ZC]D&&0,H2(D!+"PKP1D8@"];HJNSQM KRM[9>31 M\P$P%4CC=;!B;YG[(H1'R6K'7-\/ $62$'*=@T!QO!.>N,X#B2D89N>6D]L: MU48L!!YC=1"^#=A0,_Q!?>;Z65D:"NT )42 9[YZ/C 1XIGYOO:%F5_!!CN' MIGT-?V*ZR^O!HGSD<.SR#O:ZL]0P*X?S/>CY(KP)9A;[G:79?U!#Z^<%VQ WB7E'-1M@ AIU(AW/=<5$I'*%#0DP( MN,WA91JD 1(_)AB63&..DV:)1J3,,2B.79RR.%RJ\+%-7=)]V<,>/5\:M0':YY2HZ\*K9?%:*M MK\CC]2Z#&4]6C7"%<]&$RE>D<@9A( TYFFK63U0U @F#.IX-JJ(8\L\U^K\$ M*@VO@&:V1S##";'F('CR;!H:"'D>X.794>**$0.BZT_4U 30INWU:J5K&-F. M2H""S%"5RG8BC(M-YZ\?65HL8Z%J.F1Z62PO2X0X>-MG456-L%(^DUS$*MX] M3%F_438S+8LWAE4WWX12E:OCD9,04(XL8]<7BG+?R2;HSSE"G! ONXR>*P)9 MVR+2Y5&&NW$B#^J=1UNX L N3A"ZC\2=A7L3L&S>2%G?VDW4N_/P0'G#HK[5 M:L;)>A]%HU ?C5I;A/JP,Y)"/6VH*-&QE5;$3]Q\Q%]!I:/VP:M7LKG]#1NC MI:ZH/:6CBKX84(-F?3F\G-"@N6 ^VB;EY1GAD1!=!= ]K]4]$PU0.:T+(2)2 M&&?$#5F[$6$.9>LUR@Y*'38J2\CTIR'[O?N3@TEYE>"!/\E>4 =3B M1VCS=3#SU")/JH473XJQ/ \)NH84*%J=BP(!<*1LY!1Y@S,5F[\B@)#A$_#A M]X&PA4P?MU<"#RDQM%[7_8(N6"S]]#4&1X@R:K3,F3F@V6X%J!\#&-[(01(! M2FFCAB&@^WM'QFPNH)@(,P"">L1@=3I>#&Z5\BW@WX+L%(W*<&]J-SKBP[A(WZ$.4&:XQ:KMV"\ M7C9G!BA8B,5"MP_ITPFTO_ ]35@C 8NNDFX0(,5PH].=>0"2G7CF(YL9O'[8 MBK4R^)4UZ+4E6F4I 4_],)+9%(J3-E]2JQ"_B$(&X+^)KY2!LL<7TW@Z_Z)! M3X8QYO=+%/"T"H*_,&6C7@(V&G*6,="F&@9#>*0'X*-QOAX6.62EI""!"9;B M::!$&"J+C(AR!1NS FH@<,W/\/K'=0>/!YO@;ZA MV%["GPW%GUK*JCM )+JY&71[OS]S?E\XO__TXW_^TVI]NFU=-B/^.=M,XN!1 M7G!LTJN $ICX2] MCPE['+]+/$.9$5WG0;GOSYI121]\'O0 L(907"3/VGRN M$[P,0+1W^CQG)"+JDA]7*8S5V?\&(7A9LLC6^29-T>;-D'QUP%!]U5 MXJ3-F!GEB5S15]=>46=^!<:DZ#Y@H,^X(S(E%?QQ]ZC[\YU_WM_(& MEBPJ630UB\[)#%UOH@ ,"]5$?HSY_ R%(=C\!Q$0%9NRL:H9+@)BPXU$P"O$ M@\(G+UK),?>27V$7#8L?3?,/9O)?["L![KL_3:X_MYNM!RD!I 20$B!I^I^Q MACC@Z@4'W[G?P==P*X>#KCGRQIK5,3@%#)&M#IIO/P^KEUOM<.5$4)Y+Q6?=QU?T-Z\R]B>N# M-8?/] WV&K]W:R,A:Y55(O!NL2Q+U,+_%#8E7>6L6>*FFT;\'F%/7% I*KQF2T/[TP6Y8)YM?];/)CR[Z+WN);Q":0/]&HM. MV(]]Z6O>8XBFX6VJ6_0.,,BP<$9,4$ZAZC.6$.!?#-*C($:<@/LEPRT =,,G MN/>#!?H"(8!7=:P 1V3]S#+A9CYH0+'_T4H%GNTSEJ0\0E";:R<,JH7WW 8$ MQ'?A0[#I3^CF4 MI9^E+/TL'\YE0H-! )]WKS),CO'*]QFX'*34(UMSG$>W8BZN,Y ;J;2]5$LO M(,A /=BM!9DJ/YFO$ %M" #(F;ZV6?D?1"69QS.8=(2:UF:.52!7R_69>&E. M7MT7)F=X$)XBB3J@!M./ M=?75)7@!U?G?-54DJ<1PN<%5WAB3$%0>D>'\[41!W<*>D>!J61NB1AC>(I@. M$<:IRJB_\_S(-*F^U-Y+]S,T:IO?H1:O:W] /0$F3E+YAE^U(EM 97Z=0V\U M>PG='K_5+LA%@TH??*NV-%EK#7/&X:E!QD'=LL7FL] 64!5!+)#C'YDZ[0/L M4[R!$0_1X?![!NOD^LZ%\MP%L IL<8.?,.08LJP<*&5EZCB$E9^A3)D!_$5M M%,NP]/G)D%+(F^J6L ' '^OB0EZ (NG+T6CA:'GOL!Y(5 V>.]0OX)F;K(IC M\P("+$\C_7P\H3@-$(F?^7/LRQ>"W"*B&A MZ3'+M>+U&F"?NL@W7F=D9FMA/;S8M?5<\V*IP?WG>V]O;+[(L&)00'#W^]KI M,'6"Y7QA%:C-*U@V1*BL,DBIXMIHN0IV$* 36',&.'8B12T%R+@O6]!_[_E] M%'ZT:C3"P2G!7YWB0IOR]NDX11?8D(_N-G;CICQ>G*(XJH$X8(3!6;"<.OP] M@;0^:,?D%4786'P6J+SV0)\=N"+<=$9$;EP$.H:[&\)B%L!XHH4V=PGXW^21 M]]QM(DX?B8:Y%GPA1*\UYQ4/F\<3:/Z=7Z//@EP+D0[]C,!QR9JOS(['[P5Z M"O^/-]@O?-KU9;PEMJP*4DJ?CK)!'*E>L$_:,VJU=B# &,$]X.OD# 8B)I+5 M_050]%F>F,QJ5QAGP8@6H13"&Y9CSQ?HD?B!@/6S\EE[8$:OQ8>Q1J>D!O MX3CS6LJ.$J*^ATJ@-8-"X(JB>PT+J==@4]BZ;J\&2,7B8*J(/*F A>M;I>]T M4*5CBXO?==2]ZI; ]#H3VN- MM=APZZ 1"8/=5-X.>YC4KB:<"LZTQ&*OQ#)."+8._I,H\W;Q:FZ%")+7V]&/ MOKS76Z+/^4/OHNT5.RZBQ%/#:[?RH>7!T;+:16I_(A@8O24B1!;OBQ+U37QQ M8ZAD#I&/\%+1>;=F=O6%KTDF2E-B?\, LB MV@CUN,]0O<20:*DYXN"'>$^HS/_.:ZMF[QR!X@6_!VOZPO%] K#!- \S[Y"L#U]N,RX;9:=$1V;=K/K<0K28#P@QBI7.]N+5 M0YOSW4(<_Q EK>IK@8[W)7TOBMMXU CF&(L7&L^^]J\6>6:M55 'B=2E>.!" M@#)W/'#E2#D1UW%7&@+2$-BKIVA&O4E>4"=[004=[5(<'9T\I#B2XNB$Q='I M'#WD3VB+=WGX[N$#SI^F!S+=1$B-VP@_TT&I@OW@N,BI(L^-.0_A$W"!T0T. M^E68RW)!YF@<1+P E'[FHE'18=%NM@:LE94#F;4^CVA$_M3$0 >*[K;:>F 8 MKBQVA VG19*.;R!ORM :,# KWSO\4UN!O0:/PNR81W)BZ#"">/%8)#.!\>+Y M-9:JS0\$BP$HQZP=V'Y,PM$XA F"$7&;A[Y@&-XF7 ^/*V(>D*/-M)5;U@); M00=F85%P<$$=R1JAVF$/P7W"[4=_4!:2@!,M1].*-APOHAJ.;E=D2I/4 WGZ M$6D6[7234D6./T.K_&2:?T!5BIOHO\&6@@%#]05KRX8/J%FKTBW^#AUW].7B M]]C"CHHUEMN7WS_]\[[]S\FP]\N/,6 4^6;0>GU@-_.1I]=?E<'X M0OG7S^.;Z60ZGDY^N5;&-U?PP1?QWU>3A\LOMP\_WU\_*.-/MS]/E:_C^W]> M3Y7[R<,_-TG&*V/8)Q.X%0\&ZH-A#3'LL[5&ZNB).>TOK6 5$.94+9>+_5#5&?!<#I4;^ M?X7$:Q9KIN!2]WPOA9WTXPT)6H+KY.OOGX:_C?[YZZCUXY<8V 24\YF:T8ER MO@OE\^1F?',Y&7]1'NB]T+7R\-/U]?2!+RM*NRM!IFKT M:G[[='U_>S>=7#XHE[?W=[?W5 &YO0GQN0L7TOW'\///OW[N_90W7,B;B]W! M[E:Q'8/V"+[CO^:LXEV% 6-T]_MX V\D_GX6"W)/:8CNJC20)(%'E,!U7IS8 M'OH!2C)!D\AYRWG+>7R>RTC666XD!.:=Z@&,&0 MWY]U8M=0"#37,$XU#.:"R(.J[D$EBHJ$ &U0B@3<.G2=%X/>RE&PJL8SJC/L MZ)8)%$X>@-&C\\7$\?#L(>AUEF<8I$ MTIH\TF^G(WUTBQUVR>D6&=R8$SO&.JY)DN8AC[%8(U\XW/NC;PZPRDN 3L5: M0/@#"AQ>5!U+[W.G7[ZN]B&6510/BF#((=;PH;CI)\T_7D[DM;"_:V]_,TSC MLZ5B;AVBYM)WWD/(?@*:?*O=:9TIAOI,7[.VSY]4=?4W(-2Q,8=_77M4.G8N M.4PT='XD9\K:T-A /S]*3?>*@!*K,./Q M^S/MS?F;L7X^GYL8IX;?GOW0ZC3ZP^[?_QJ7+H-%I#PZG/YP8$=9Q3<>VY3-=WAE8:M3) M?&6WVJT$EJHW+\7>X2+S(3-A)J5.Q.3VY;;>,0.DLSFB(!!20]$!,L\#D( R MIKFY?G06:Q?!#BMZ/F2Z!<9BX,^F=<6'%=.X=V>Q[5X89"3B3J\7)N%8\*NM M*XQDREQ6..IF76&SG6J%D;&;0HBXU-=",YC&4#FE*DQ8-\39QCVMK&Z946.8 M> ?L5![J-02?B$LF?^$_:>S QH-+(M*3/ MX-BFS5&O-T$&[Y2C8YV0[8RLW!XT^E':DO022%:JDY<@!1,-.\.L3-1LM ?2 M+Q"ZG0?[^@78 '?0ID6;B[XW]KX$SD;E99G[#Q5%ZP$>R23U^:*OV9JW:'+= MK)0[; XC(E I*36X5T5M;YE.*E*T[')2PTY6KTU_V#_ 29VFHGV+B.8N/#E# M399JPLEJW$@/8R2#+8*WDU7O'O8/F-IS8I17QS554NE.ST>]K-?B<-24>O=N MR<#N_[?+4)TIECD% /*B[^!RB(94Q5,>+%:.Y555OI13R9%N5I?VH-EH-<,: M=JHK.:?SS""8RD'/DA$/S8C'"C*E8<%!5I6XUZ$LF.2*EKR7*A.G*#.]Q)J0 M7-,.:TI31UWE]=5Q324YLZIB#"7FXS=\3>#JJ>>3J633NU8EJ MDZ6ISZ'YA66^$/B&WJ'07U Z^4\V9'9G07,3Y_U.5PUG;,Q=HDE(6NMESN]O MM 8R?"8YJ^;ALRP\-Q#C&'R2__B_65+)!;'UM#K,*WK=J&]D?GY M_XAE0N/48;O5_JX0,BWL=([QE@B*R(L&TN.Q; ^_#[(Z*[JM8@IY4Q]/U3WH M5V1!Z-',%4=]JW?YR8DYT<7!3HR9^4RFZIOK0HRMTVZ455W?M1XSQ8L.4:I9P!UY])5E*!IK M7[2AG@C087528-78T?=F2Z^(BFU+2945)IIC 7&S*B:C8:/9SHCREM?!ICO* M*KAII7PK$2-+^58-+319LG6R9BL-1HU!:]>(D11I.Q44%P;M7VIA7>V)EZ1@ M5.Y^*;FZO@E>[(/--M1?)N-/DR^3Z>3Z01G?7"D/T]O+?_YT^^7J^OX!0RB# M[Y3K?_T\F?XF\UDJGL]R6OV )6E*TBSI,58](.CVA5JI[X@8(<,@!YMX_GUI M*^<(Y-1WQXAO6Z>LS/F6@%POZWU*0/*5G7@I>/583JV=N+2?-:S::[0BTGM. M(ZQ:7U,5=(SY"_:7G*UM.C-B@:Z!>!I2US_=XJ1+^B-XX%?-65YRPOBBJ8^: MKCGOV_!OLT8(>Q&MZ&79DN2OLMK2F:[K?3AKD/7R'K8[LJ"INCX :TV\SE,5 M5,_+F0IY;-L:3E5P_O9^\?VLT>EN(RHO7UK7D@N.;+7N1/_#S*"0G<9P=(#; MKY177);R/9YLXEO@N<6&"WSFHMVGK8'3R6*7$K@?.#TH&[7!BNZ1S)%JOU+A M_9>L0"Q% 7)J^ZZ38[^Q;)M;ITK"*E)3BM+HM-0TS*K7#%MA;T'YJ*G&_;%\ M@KBFVE@1K%EUPR6]Q3+*VH2GU6^T>D7VP:J8>B2IUO%4JQZZ8#WMZV\GG)@)@,?JTV%2]+7*"BG4 M&B1!.=3'@RN9H#K:>P;RS^KC:G626LS4@.[+"3SXQ>W%6+[@0Q7 !V,\P2F@ MY[+V/VPW.OT4[N ZQ0TJ'!)(T0(PJ^^PTVAW4T292NCRS^FRY_][3VQBO1#8 M+$5#T"T %02IM5UWJJP*4E(O8QD2C5S@M33Z2C>KNMYN96R)5T?/HV2HFBG^ M65BIG[FC2T,,(D:4K2 M+.DQ2I6Q9A,OB=(B=[^T7%U/E3$:$?G!,6=_+.E_$,L6",CDS[7FT+'E12TO MZNI6:(IJ@W712-;P,L=!>^<&_-.M7Y1]34)^LKOB/6P M5"WBU=^U1V?*FZW]S=#T[\\A^ M^<^!.]P!B^-O"GV&N#YXCO&!GV7,]@NN"2=NC]?.TK3HB8L*1B8F M-Y^W!"1R(('TLVL-![O-KM=H-IOP_Q%IB*$/D%\5&U^IJ.YTCGULMVO'=E0# MQ$'"N?7[23MS;I,9[,XKG:E-C!R/+=7L6L/.3K.#+4Q_8J8W!6EAE2M/,@0!'/-#4J M27:;6CL/-9RI)0V7\7-9;CK=>M@]QE%,;'N=: QU=CR&0:,S:C5&S7!":/@# MW&,F:OF&\P/1<%:8:>#7NU5'N2(S\OQ(+*73:BBP2OS1$=DLW>$.VOD>;KJY M;3W<7=E_T&B/NHU^*URIL(W%TI]H4_I;3S=/W4?"R2995F#\SJC1[&5L2E\? M'[%DIPJ%+_:]"Q(9:9"UZJ,S: PC[@$99:E&E&4\FZV?U[KJT$O91-2FF?F\ MLLB2&+;V0A3=M"5X4\G\G-]FK0<7)XU -I?^\Q;;2;EP! M=BZTFP"JFI9V6\VPUIB_?,QGLS^Z$SMAE^4]<53-@#Y*JF70B\B^E](2U,R6*TLS>RL-$V-T.,A(53Y&O<7$%PC><1>VUGQ! '0^KU&KUT=#))2Z@.CK/;]KJI"BA<=&C,-(LT'TBJ. MOOH,(JY]T0;"GYOK1YT4*...OC?KT; MW_PVN?E1N;F=7C\HXWOZ\8TRN9E>_W@__J+^GRNUG!7Y^>7OS M7E\IGRA.1$R V[NOO[),,^BKV2_%)P1*J8L M=TM\<_<]'EYZIQD5'@XSQ-**%"(N+X>%1^BKT$_#$H%_!9442XN?@KOR)W+^ M",=P_DBH:*1+4/57]3V*1/W[ IG?D802HNFME$-'496E!4+\+]/;2TKV2 SF M0KF$.\)P[+__5?74329"-B7)@>@77^O?O\R#EU/B!,2')S1 NMS>7=^/IQ/Z M@]++SW]VRBHES]I\KI/2NNKDQ#E%A($!C69(_N_H M?2AV9MZ0;XQCF<93E@TZ M^^$WHEK*-55OYH$B1<_'S,<^='5(BOTLE,2CP1V_G1B*LS37MFK,[89"WF9D MY2@KNF=8 JJHS]3N<^R/-4TA*.8[Q"5:I#+$XH M'^$,<^+5N#+K,E8*"+.U/_KF *Q^3UZ(L3YL3P.QPO8A%I@?'X1<;CLON+7C M@K/X[S[DO-+-YMIIEYIBK0= AKJ*+Y!@=!\3M1JULA;AR,TE1/DR.RF>?F*+Y)NZG3DGS6YMC-L MC")0% NXKH_GQ]PS"%&4+Z3$>7-R38DW_AZK+/*JK^GFEVV9^7L'CKVB8TB" M*O1KJX"1]J,%X&UL:&F@Q1MHU9$*V^R% YEJ6_752%L-R?'.,A>Q2"#M9E95 MM=MIM/H9J_4/L_7E(:+*LG%U"N:3;+8T;)"U-*C3:K0/X6 MY:U\5'NL<#6/ M6P<'-U?R>N_.FGHE7URRMP1D9/0;T[TC?4&?_RU55Z#OB4U4:[9$$(DY>2&Z MN7HFAJ.0MQ4Q;!GVR*I5%QW4*+4>+*AJ;,RO/)JZ9B055RT\RAK#:#4;PUZ2 M2B UX^JS8CTTXRR,,6QE!98:-7J#).20.JO*M09\?B"Z3N?;4)Z(02Q5Q]M; MG3]KAF8[ENI 6X/"+O":N&KWR.DL>;9#01,_NE;!J?Y'1O-4A(X#%+]-BF;U M.+0&C=$@"8+WJ'F=QP\L'RQ=U'IZ_+;=ZC:4=K=#_Z?3_E@I@9/CD595_=F3 M@_M9.;C7Z'=W!=C,.2GS^'R:18OJ[.O%8 /DX@G:?ZB$*S_?P3>%>-E'+VRH M/+QSG0B#(Y4+KIO5!'#_/R4F;(H7%VW-+1LZQX/(FUHA#&B*.^R6RR_+/)2IHK5NI8D>>N_DS? /U) M-&--M^/6C7U^0M)EOYL"X5Z_.99*M2;-4*WWB4.>;:HMPLLL$W-2A.D=FYV> M%1&,:O?=4:^DZ6,5O...O:(C9(0=VQ[+'%\Z!I]F[L+"[#&!44G&_#;C8-;HZP% M1/U6N(RZ7 ,'24[,3I,4K M+=YZ4'*U+-X4X .9-^#8P 8^(U=9$;KVI6H1NDE#JNI_QTP+Y9-J:[,<]>WR M+/X@LGG+*LMQC1?=%/L0FW!4(_A:M0RZ1?8=L1Z AY!I@EJG^,H7*PUDR[:W M6<(7$6VS#V0'5X*(\[]88Y9=%SNX$J>:LQUBD*$@9"+1H+6^GEZ,RA+BC M6&QD_*S,27*;0I:SQ!8QVQH-=U, ^RFQ(>C>'O^ *Z;K54WBE/!0"@E9U%T? M2R[@YCA5BJ=^T2JH#''M%QV#= M*H1?]I;'Q:_L5WP=M8)5.B'UB3 ;V5;,M6,[J@$3=@WFC8A*3H=<)>K<+E;V MU"R*EWM5CU@(@ATS>KU9/S\2ZW:!:J=]ZU'MIK^0_<"'#M?-F$(S:'3:26[# M\A-9B6^Q*@F##(=25:B/G)ANV,H*+SIHM%M),#NY^>K+P%JR3GT/):4HKWY- M].MC9HV7J):]-GH/)_>0)$[2?+*6N@\:O<[1.G%7(I0J2QJ.D=Y?,ZUJ=Y8> M-@>96;J;/RY:'>L!_NH\FO-W_$.E,_.BE:O NWV#*KIFD'-W4]K-;T1_L,)E MSI'GQ#YXY6]Y-/4Y'7CZT[4ROKR\_7HWOOEM7$_J3ARG]X.OUS?3A MHDRKCCP)R!:8Z:IM@V1\(I\LHOZ!NC@0D7CAJS9WEC *3"SY[5&OI:-QVF3& MP=Q]XY-AGD4+9K\TG!% 771WP3==W^/19[QUE\Y^Z+3<#4EDIZ5KTP0$@BLN M1/4I_]8Q5Z&O0C\-"QT?HL;2"F9SP(+/'^& SADT\M\457]5WZ,(/!]T'/J0 MJBPM$.A_F=Y>4AY!JC 7"H!ITE.Q__Y7U=.K>';$AM@YE!H#K_5O5^;!C\ZH MD>(I(&L\"0.B"&36_?5/USA$04Z!'.[POG]_M?/H_'5__^Y5_#9L0_(UHCQ!%=6>I1Z66KG.9]OU9\XR-_OT9C!X4B2%7R3 4F=G4:)ZU M^5PG&TBOY="OY53S-\G*,5&YIR>]IW*J97&EA^\'5W=N@7&:$O*]N+4-,[AC MRC'S3)ZD7::^$QKB()VW:,,^VO/8_FX[EFD\_? ;42WEVIB3N7)%9@1)6PHJ+@[+^D%NX+X\M2-J#,@2PTP!;M5N= M2N+MY4"FY0U!IUQ5G3>PM!R-NI4]A!*2Y? M_TAZNJRLJ*C2Q+==6=6YC(Z^$GDJ=6*,W2WK8PO<(UG-!>]'M%OAUED2BQ[* M\\HB2V+8VHO;IOI;G5[Y'QNB>;6COOU--JT^X<;!95ZD/$O)A*G7=*PU<<2S5L'9MN*^K\OVO;>8;T M06G\U$+-WG/$MO=,<"O;=!;TLVW^Y5'G0$T^-V#X4-($ MDRDO6*7TQU/CZ#BKK5)=+4O!#^WL[6Y'8>R#_&^9T[6(CZ-]5FA-)V$*E7F1 M\BPE$V8P:\OK6JV P?>S81'ZSO^1N?*D:H;-_*#$_JB P?>B:CI<^N?TYCZW M52C/(=0TU!R-V-("3!(OVSMO5T7*%+_64EJ1'F/\9.JP33]2]H"T@%OCP>6! ML:79]*LK^I_&TQVQ-'/NZLZQ"G("4E$ZB[$]2&@K7[C%F.*X3]M^W"EONEJX M$@=GENQ=K>/&[>5U5)8Y3K%.M-W MZ:Z4E567AQ,9'N8MT3(_1-Z M,:.\.IUGZK<$Y&":-X;W+=^55EPG5R:N3JRL+/-%LT&\?_M(#++0G(^'UI*+ MNH9/)S2TH5J?SL+SU\&3G/4)6-'I5.Q>& 0^OT,+GE#$U5&2P%9IV?VP4:X2 M*^E)T=VLU>&=,,3$[B>7_E[?^2REKEX_E5GJZE)7K[JNGM)_KJ@+A_Y".KME M ML)*>LWQ+E=)&DK>VOLW>:P7$[QTJCQ96+WBN6G%:&S;V6%7E;%O1EN]]]AUG(8/7T4<9>W M+X8[]+BK.H#M_CMP6%]CI/X>H:]LTU6:H^Q8MIUND7 #P:/9ZF//=%CEL2PK M*U;RYZ#]5YM. MJ+6YKT^D6:C"GZ4-7QGF7:"ATMPU<%&;%GQQ:*<+_&=_,DX8^YA1X+0]^_(W MYE-L>$799Y^#/FJ3.(^S,K3Z*_S4-Z$7"IM#'1KUI0!OCFK72 EROSU,69W] M@T_#4S[?WWY5;N^N07&B]NGXPD]_4$]M5S M%OQM6[/4?%9==CB$K#8/WB<:U64-=Q>">Y+<_I2?P,I+'K#8P_Z/A-Z1ZQYY MG5+SY\#Z]4,-&.1':7J:3P0H]1IKT=6TG[7LOIT<#0^OBOFBEBJ0[=$ ?IY0=1-::IFO9^.8V45 M-"VY^R=+Z-*"]D565.9KO..:,5?49T""^A_[X)1C@=M$QC&E M"@X\:K"T.]# MT+VL('GM1K\]*MY"*^7-.\C?+$NZE+>^[L8TSM'Z\2P>G:@V4LQ9H M[T /HV9F7UH["DMI/]&\T[F*KNG](QP8EG XB[6NJ+,9W<2< MNT@?^_*LDOY:$G,FTYWBDM=GT[KB%#7F!!5KQ61N(]1. 'O86Q++(G*&/R;!, MI0(#!89ECGF9"IIDD>VI^L9U\D\,ZCI&6F5M\3X:%HD]L.4V3=;>)0/N$2ZJ MFO<+*8>58BNM_>\&6Z,*!EFM4:/!+495/T+(_!\@W*E M )_/;$+N36/M;M;K:G20'@S2G-SWTGU8JA8Y?U1M:E$";!Y588K)$:F)7BL- MRX,FG2!Y?@+JO/019YRTZF1&M&MTNF&!55":R:Y69768XZ375%5#=C<6ZR8T M0-W"8JUA4J507J4)QZ>ZK 4+D;U9B[!N\UGMSX;%E4?E6[!C/RK0(D.!?-,7 M5=,1W0?BM38E#X7\N=:<=\4FU RF?P01O?94_XK*93C(Z$>W0Z_Q9![8P6C$ M_OQRHWE'*^R$V#RXS)6#VWVXI39 O?C[HB]B&288$.F M"TJVMKLL\@A+IDZ^D;9DVCJTRZ5J/-$!-,-?5F;;Q+&Q+$'7U$=-ER5FTN2L MPNY+RZV6:SJ)BK5NR?,]16H37@N.I6994A3I?+E5L3)JQ*U"QS:DT6LA]FCD_W&NU6@CIYB-A9/OO],:J7 MRZF:O'<66:G:7)2;,].7]:#G+E)I\)ZTP9O3A/ZB&C.BS-8V'9Q:M/1N9G#4GI$KK=N3MF[S\C=#KUL8XE?- M65YR8R_9A,35E*)F4&2)FPSPGHAIFXEZ^UGS$MH194[2EBW3O3F; M66OB\PE+6U;:LN6T98%.OWCYV[$W;=82\M[PB*YC:^=CCP& M@Z@DF?TDY:[$<#2CIU5=H^VO"AK M7%+.N..,\>G]9QLP)UVY.G9Y(_;63:@+2-9"FXWF44VP0Y]SF3BZCE(J[9IV M55JJ8TWNS'4K7@*J196*@VIJ#!* M*:1'9D5@VWFE4$F*?W>=]O'X:ZGEQ*L 0%"V?NJ%HM:,'WY2/G^Y_?5!^7Q_ M^U69W/QR_3"=W/RHC"^GDU\FT\GU@X2KD9&YDN^^A*NIY9JJ<%N4O"W#_OM" M3;@9(7-;6=#?TC_N4YM[-"8@O*^TR'^^K2'59(L0S;L3&_5'7=OEV,!2%^-JT'2H8>@&-L#"8S MO&^ST6\FX?L6GQ&Y ^UG.JU:V^ 5S,',C'A=+ =EQJ!O-7J#77L\9<(Y+:'. M4+;6\,'K':_P'2[V?;FKM.V[C_AB/VER3S+S!U-F(:YSF:M_^%G&B)M?.@#+ M9Q "HZRW:+O=BW?1YWUK5J@5?50 ((*<]IY,&'@[;Y)+8-_\!BCFKQH"[[E!]+ON4Q#X<90WE1H&U'^/(2GC1RPK8 MY K8M4WFT"U3,UZ(+:M?BS;5RZYEE+^J-9L"$E,(-Q%4O[VLM;MWNZMNHS\Z MJE*RU^%*AT4="TNS:SG[7(SOKF4):TR1%VIW997-;:^* 7*Z9=1TSB>T<[4I!0%78D@DYWN"E19 -E\ JJY]!%-;)YPUL8?@V$>6<+! M,PE?]W''FV2FO.!OH1H4?BN#<%7,&MX[CR@O_NAE!6;N-Q.JQ _1'*3P"%K= M372V/K#3V5^:;:^A72;[+W/!_DUOYF?38'^C"<_^I$="+/8G>5[IYCLAH=^L M>#4Q_R]ZJQ_54*8?U]IRDNG'5=G'XZ^EEA.O0D)9/=./ MZ7Y<+Q9DYB"0)7F;+57CB2B6ZA"%_4V_,)CE!V!9^ ?@9[W0NU?"9)7/<)(6 M7T8@:<8&MXMKS@/WE 5N#5!:$5_>7EY[5!]K\F7%V:RNG2=Y7IIY.3-1 NQG M,8;>X8M:LQAZPUWLO*$T\X*[=GPADN'&'1[/R-OMU37:Q>,OI8;SE@;>$34< M"-UIQLP"G&.(W$ECKAPIQ"4N*#VF(1:M+=X12S/G$T[&5X3].U:'S(H%UVNT MAPGIFDQ9A&VW6O1V1'Z5@-2'LV%LL++6)I,)0LC53K^5:B^.1'Z9CIE M<^QP=SVX(/Y5_] 4MI)[MYHM/)V6':_MZ1/7>'235ZU3BY,C%J925,&8\E M%^%1E)P\G/N^&'.JE[7G<09S*H>ZWM))!J9^_=5Y-.?O^ =TG(8_YMI+]+3H MHF8Z42T1@4N>56 Z/9R-0*=:^RW?Q&Q GRW)I(,.GI3]?* M^/+R]NO=^.8W@)"^N9U>/RCC>_KQC3*YF5[_>#_^HMR-[Z?*[6<%?GYY>_-P M^V5R-9Y>7PGL:?J3ARG]X.OUS?3A(K#U1>\J/3LZFFK;(%V>R">+J'^<\<^! M<9S?%\[O_YC^N_/0O?S7K\VH?QY1]09B$'-]U>;.$O8-CF*'Z3$:5/#Q[\_@ M<1R:$QS3_N?N=)\,\RQ:,OJE%B !$,LE M]:?8^'^:#3<8\A#?$O7:,DP,6N M?<795_"X8ZY"7X5^&K;2?)G!2XL?DKL!3^3\$4[O_)%0:497HNJOZGL4)1>F M_/Y=5986R-V_3&\O*7<@35![YA)D.Q74?_^KZHE-MG'^?_G7DWD.^PD*S\5Y M6'$3]= VX1.0))[\ $'S0/?_GS_=?KFZOG] VW+PG=CWG5^C9'[R^E\_3Z:_ M1>G6993EE[]]NKZ_O9M.+A^HD+Z_N[T?3R>W-X%Y^PB4/5 M^%E(-/+?4([6U95-)R3^M;L;1<-2LQWW2;'?[]3@3 MR2BE6TJM%*]!IU.Q,RD3:Q2;+I+>3Y'DCLZ\_&&QX="2"H:-$%GS8M!;.1L9 M2LH>ZVUW+YK-'ARFE\$V./S!1OMA+Q$$7\'&2H6=>"DXM] #;V^X@48#%++^ M^@ Z^=>=TA<3#M_/KG^W'QIAL8,ZM?/^N__?*D#_*I#%OIT8BK,T MU[9JS.V/DK]R4L-:;:J&M0??I*O:2^"IXDZ>=9O(,7'T1+6QUG9MK"37Z?C9 M7!O.J2C>-9)6E5]*[,T[S%HSO.-]N^4]1TC9^#3^,KZYO&XH5V1&GA^I&=1I M-10HZLJ5%E(NO!QDLJ.<]E(1+B,2>YYG..,'](7 G1(*MLZ_0; M_5Y"#5&5Y%EJ3B^*W\LKVXZPXE(+NNWY784K/Q]$M5/)MC*I4#CE[OIRSMB. M)6++>P+1%TC"$%(@@C0Q9N8SV5=0#A,$9XM&+-"!+4[C>:@)37(:FJ04BH6 M9RO'UC/G5=7L'R5MV>>'S8TOR_[G(DK=S-0=1&EFF=EK9T55&S8Z[3#:CQ29 MN*D\\]>5$M3Z;_INE1G;1$[YON9NMK\2F1)=6%B.G$5:3ETY^B)7K\1:Z;9B(=D8PF'N8(A M;42$?2&VP\'OZ?8[EC9SR)S_#I1BNT%/V,%G6>*A:"<]5U2;\M'[,]V\0V) MUR.VG9ORO6O*2D'SW"/7I-@L$Z\A4VPT=O;^2)A1R#),KM86W2'6EXFEF."7 MMXQK!#O-Q\;\%\8\MXM[EW5^!IZY(<[M@CTJFN;.Q_8=8Y;X!)9!.VMWIU8G M*7\EITXFDBO+F7%2S")C-/5ZL3?"MA;%W<$$CF[6!([>L!2L?1)$?Q*++ UG M8SU8^SM)S%)%SD/UK$1;T.2P;BGNJE:[E^ZN6FAO9'[^/V*9/E[. ZQ<,K=D M[BHRM]?SMQ2,/$C+R*F4SE/E9!EN+$7D2(8;]PVGE70-I=D?&4V3&[3?!N7/ M!?EW;2Y):#'[33U5WT3- F")I-X>HF:1V%W_.%1B$4Q:1S6E;J[4V_>,MJ>KD"FW2F#;>!GI(_2/5Q#]_ !^.FG MK?P4&\])R U.QT;]9CAF>U11K;S@4/1\$6%7LE4]V4I&7:2"5Q_'K*1F2:4*L]&G*$H'6=X0CJ.]/*7PF$KO?PU]6++_:F*$UMN4'F*BO#9(Q45]4OG M^4<51M%L>ZT:,_H4>/CGFD5F#OW#[][/4\5(N0T55Y13KO+H]2AIYWG,.,"> M;LL 3$%L14JD-I_@]A]T,J8"Y9T(U-_7V7_*W%6#19;&#UHLF[(DOVU<&DR[ M38G05'S:;28>/0GJ/8E%EH9%?;D_I^O4EQN4->IQNMWE'N+J%4J-'%U*??IH3>$* MFNB/6BS0@S@>_)S'PR36&1IF/IX5]1)G/.)W,-E<:Y*:I;47!]J3JEPA6,% M1]*P!NV65+%D>*$VGG097JBI^USNS^EZS^4&90TO# X47MCRGOW""Z'V*ENO M;GI33WCI!+3SF*%[2Q&=/N;$4JZ?5[KY3HB"3B_E;FW-EE2Q4J!(-%<%-N7. M5%Q-3[G*HT<@TLZSRCT^4A55"/K''PGJWZR0#O7L2&@XG@RCU,S;4!B<8(0E M-R:KP2)+XXPMF%O1=H]EUKBP258LY'9$)]=C,.I)D/!)++(T?)J+FUD2\XE? MK65Q,TMJEM1<'VK.'#3)4VGJ2:5)AD$JZ/$/LV6AD1'_ZP"FI>"=2[VZPVYF M 1&#E!M[:*HI\;Y6>J4'9Y#\(Q1R9W??V?SO"UE:$E)/;ITE82A9%ED2P]9> MB*(9]+^)V^'=4=]D-I8L-)&%)B=,A#589+W.&L]FZ^41>*(TKL^1\43**D6PAV4*RA=0#CZ^JAF7:%YU.:]0O9.S!1;_5:270=TGWI&#> M&0U'S:+HN]GN]A/F75("+WC#"Q4H@T[GH!LNPU A1>?3^,OXYO*ZH5R1&1J0 M2J?54$ CE;9+[JO$UVP 5"#"Y6XY[0\WR8M>?Y MH-$>]8X+XYOZ0&O.HF4R-4O O=[]'[\-Y1,ZGJU289D#7RU-G:[8OOYSK3GO ML>CA[:RYJH/&L#6HB-RI-T>>Q")3G[7/L*Z2V/'9[(>7.]^FDSN9"Z92RZ-^ M@CBRZ<+I9]N[&C3#;NE24JK?T,SE&#^ZRY0&UT'/T?4L54GB^)Q6I=5TTL6I M4XN7]BAKLY3VD*H[':GNE( OI?2IB9DE/+AEE3[9QGAO4//S5QU\Y0[6'$+).4JCQY.3CO//8+%!P(;:25';V;OCR2YZ1-^ M>16?E9_;L?]!46\F1MU)<7FEQ]A;:&YF?_X]8IH^ADZ\NR>B2 MT4^#T*F%- J2D;'9/!';E!9-BCV\MER@^9V M+Z6\J0\8"9NJ;R)B92L6P51JQ3%%9.M5GX4O?77%CDSC4>_,-8/FV4TEW#%OJ -+ZM"F-QV]RX2V&HM'(>KE!<V\.P'X_;66_6*"HX;Y<-QB&ZP4WV2[R7\>0_2XK MLJ'BC_YC\MPE^Y:-?(P0=4&M1--M>J\:,/@7!A;EFD9E#__!'%H2[.S_U,>5F5%Q)3KG*HU?2 MI)UGY2MI A7[L<4TDY3#U,:NJ\!<]>K.&4+ [&$ MP&W\$RPT25E3EB%9=X_,ODPL=!+T?!*+K%=(01+SB>N7M0HI2&J6U%RBD,). M$87N4JSQZ-"+M/(_9!"H72[:WKY_^E(FP!HNL9VA@//_OVG8P M86YJCNF^P6"J?J=J\XEQJ:XT1]51JC]NVKCWY,^U9FL.>2#6BS8CS"B^)S/S MR(+A@MR(L :+ MK)?7,1,UG\0YG\0B2Q;[2MGO9#R;K9_7B,F-6L>E7^F8&%0'(=%!L;A??Z%Z M"K8GG:IO<0Z<47M?W.YN\R!=AG:G[[V;"DE5K+:.?'E!2&HND2-_MT8..E)EY[TD]R?\CB*Y0:5I_J@%+^5"RZ;6/IK6G%CG;#DPO4%OY2BVJ6MSY2]-_&>3_O+:BOR=ZL=<3-D] M[ZGV)MUNG)A[/C=R/A7&KI0/_XA\43**D6PAV4*RA=0#CZ.[I(,LTBPVQHZN\L#':%YU.:]3?:XS!1;_5:240UH'6 MLFN((&8BH^&HN2]]--O=_K[S*,V&Y,(P@TZGD V150BA^_?3^,OXYO*ZH5R1 M&1H\2J?54$!C*E&*4(3T9IOA:418RYH7&U+X94X9J;ZT>= MQ*G3^23)^N>BDT6%EY<0,]FZF,(-@/AF7HI>\J%X9D:G5$[ MUC38Z50W=/LT9YQKXEZ^-%H$=U65E[R[- ]1$>(N']LHZ=B-7A_+DRW'62@S$OW^E=-MJ#/(QG#URF).*M)$?9 YTHQEH!HOA(F85B;5:' M6VQ,R;[=O6@G-1OI=,]WS=7N- :==K*/\_"LI!BM\JUWHD*Y2UF*U5ZT$\_U M\7K9B^*[J0Y[2<==TD4[4[.28;^74R7I PLY[]M@&G$FS:MC&IY_\\B8 M1G[NT,V;$7%QV>BTSU\!=^"NZ9_=D359TQ]TV!O^86(\J\M';G@.7+SI;;W; M_DF^KEB_&H_3!FCGP'OB'[R(MXP #6'AQ[_?:%?7U_>?OUS=_?/V[C?M[O[Q MYD&[^@H?WVFW=X\WOWV]^J1]N?KZJ-U_U/#QZ_N[A_M/MQ^N'F\^:!]O[Z[N MKF_AD8='^.#SS=WC0RO^U'N",MR_-I[KCH,X_<3>VTS_?B8^1_)R_YBZ?_3. MV_?W[[_=7%ZW8_ZA\ 7BD]R?YZW%F]F\V9A=6HRL]S\[5>/ZBY;R&SF1TK"#P.(%F%^!8(.O)5Y-$H M'Q%?P9%_GMGB*CTX/;'F".^X.6+ &>' ^OQ%7\?A?\05F L+X4>Z-K.19?_7 MX_TUD!!ABC75KE$&F*[SUY]UWZ+C< ISI3W1 KU6!5?NQ?]C_YO/S2XWD4L) M+)1SS,?[=,SQ*(]X_<_W-U_OOSS>7C_ ";]^N?]Z]7A[?U?UL\2A58!["+9D M\ZV!PL0\5H4,0GR$/)OK4W>K!;.-< /:3;AK_IH&(P!HH$8W^&/G^ 3Q@-7/Q@...YY:QL!D\_ &B,J3'63?=J/ ;6Z&*O M8%AO;##G$3;R?@Z*I>+M'IQI#!3&)>K)]HJ=[5WY2*5FQ]"1%OA9]"JTF!L[ M>]<)Y0AF?K66^Y=42-#Y]0!O?O_MX?;NYN%!^W#S7E_=/9)J]^WN$16[+\"6KF]O'K@FS=7I:(^(*NJH'P"7;6-)=A:(V?D^:EYSY@+O;<*&QZ1ZRBSG33?AI-T:'XI\8Y@2XEJJMNC;\ M!$U52;DO,\-EM+BR?]",K1>^\@M0MO]N6@BV-_INP%JXH./:UG?6E$X=@LC< MTCW.,#&FZ3;\"WO64:_6GN;62)^#C?W, MYM:2V9IN3@ ;S-44+&: H8V8-@/@:$L;;&L'<:_W00.F[5BV0T\[:P>8M8/V M.+S363+N":"%&&QV;CVM6QJ^>>Y8\DWA]VC6RM9^UZ?,?H"E61PWX"S/,\Q_ M(&80C#R5^T=:_;Y".'08C D;&_&4IB*YX^JVFP750.6XZ/\*:&--5F/7:<1= M:>PV:KZP?[X '(&#'AGH7FO- M9L#5;?@]K*D[Z8@OE7W&S9S-T68Z\,P18Z;&YL8"\-3EC'FLY3*I,5!->^D ME6#-,6Y,,"+12 5D0ES2 3/-ISD#AD9:#06JQ%%(N1% MBABA$5L7%0YX22/1LL7"VA7'>32 \4V@8B1K&*V*(OLWA]U/;QP /4#7KU2X M/#\./0.VC[?G':"J&(SJ!JA>* ,V]WZY=X$-H<8#&"8:%.].>F ET +H# M\F"VQ)_JGDL5'!"N:-=C2KH %P L 5*LY+ *P MG.-! 9VR"28PBW#(I:C0- C:R4_HS*T?:T[LRMS@O_#=)MG?8X 3!)DE_WA M<= \GH K@MT@B!7 *1/I]%=MH'.UD EMH9.'F0&(]@)@I#Y(&QI'G3# M7_%=.S1J:KHR)\A:0"VDK%!D51.V(!X %.88KJ(7O\,OA,&$LGN$TMP!;/1I_UOKH:4]@6UNF\35,&$"=F"-R#6$;"SY$/#P M'#@*@[<@[\$+@_WI:^ 58X8,ATT$>X6WKM!60BW6C7@WRB3T:'QV:P P%W?X M3!>"VM,#&R,R 4?FO$&)I%X"_3B;2%P MDIZ8#<6)2F@9/C\!O51"1@I>? T^)!E-2U, J3YN^TNCP'4T9P9BM(D[(X9B MF4_\+\)=&)#B@N;@-PR5@!%Q-(L>-&R?DY$6(.7VF.<&H![SI-L4LG* @H&T MT3)=I-RE_JP;* U+V"1#9@H !%V'E#8RE@'J&OX2& PI?FM:S3:<[P@QBX;Y M"9XH?*VQ3*90C),_;\7DQ%WK(X0+630KUS?PE4_+U>#UB MI G^'?9Y:W[DNQ1Y-$E=K+J!@M'VEJ3KP7#8:+>C95W 9K(=/-)38MOOX%8* M!FV>_)MM]]'>^3Z&EYDNY/RB&WLA @@[WTM[R^]BK*+RR'.?K"#F:QZK-(#, MC7%2_@YHL5&UI$+;#@,Q;E.;]@ RC_YM =)U/-$BMM")R!HA/!J:(FJV9$;0G2#IZ8.5['F!4!D\51;)9-)DL#I3VI%W)%?R>6@_YN[CCDT3V0.28AKZ.44U$>YL6O9.JZ M:_*2^^7@0ML,CHX6 S#>X$;>>C.D]>42& *I..(!5_^!.BQZ&-%+Q@_2TCYZ M!^0;7MIP'#-R0^"OA98OTA%(CP+)">2H MSU73A>OC-@5.@231Z8#FPX+[Y'0-LS\8]X88YF0%U+=&EZ$Y =L!#0M=O@&T M; U]L?H"W8!X)6/+X73O7QDG[<"E-.BFP$X"@N>TC]!C><8:WQ?M)OIZ;G'XGD_T5>*K0R\F4XSPBDP7ZMVWTF01 MM\Z]N0@Q=/1PC!Q;3R:]3#5QQ/,4'D& 8#^8K.%L5KXOF'AIS5C M4=Z_$L1Y6&SRKY6X?C"O(B\$GDW X'Y<[MOV?6(<3!S[Q7O6 AWQ*T8N;DX& M8MT%0W M_@W+ZO-/@$]?V0+N8'(64I;W5@ 5J7$KJB0J5773]K*F8B1;;#PX&&OP<3-Q M._N5N*V$X^?W@2TL,(I$E!7%[1KIV&/5Z, ),Q3*5!"Y+MS/I+!W5V&+(%$8 M24?TKN,?FNY,-YLNPXPYW:9$,/@EL:$W(NGB_O'Q5B1=O-5FP*TLD+6868-B MD:?-20^_=(WSM^&VO?<1J]8,)^&U2F;1G)E/[HS8FK&0/C)7,,:7F3&>J:?# M#5$&!G?SP[(\/2DH\8A%@^(*.S1<$-$Z^;W>R'WC3F4*H+."%R!/G@#/I10C M$WY#+8GJ#S.BQ]@Y--\%(>^>"$[XURI$QY/-1O M^-*^-H"B6)>,7T+%64VG6!#$?Z;/Y]8+?Q#S54#6C8TE20.48W .TI&$2B+T MM%M0?]#(II1)^#:H$,1A&5R>(E]Y1"7N-AOR!C K$<0PO[/0C? 0!$]:"+Y: M#[QXC:^5&B&!"HZK:(:@.O+J*BGLQ!TCNC7$JPTG),^9:.O1X"908#DN13E0 MA2HI4"-QN:T*)]=VE.Q3+_[K;U;9!+R (8Y*/./Q689>Y1%S7Q#;>:Z' B:A M$CNQF.^AJ("5#VQ,S^,>:%3C5Y0?0E&D*6"4XZDQ7.%7D=Q[GZ]<4/(H(=8+ MUS1,@J/# )#J3\E(-/#=>%+8+M"\\1US]HA\3 MFN.%:LBPM!<;LY4GUHN9?/U!*",.V8G 3@1K$'G5S6WV2@/S/N:K&QGDLQNDE;]0G0:6WS\!ZY'1_D-2P, MJ7V;[9$-^(9["4;[AUT-]&V>J>AQ KXI>(WIC5)5G)E[BF+NZMJ.Y&_\[-G[ M67,I;@'%00^S$[.$!X.BDZM[1 MJ +G5AYM3*B#'+B4_"2,.8>,%S)112ZFXTB=6R24>NE9:%O"[ZP%1WUAZ('H M S@U%\![86^&Q'9\G+].*,H\!ZRE72V!3\,1N,^:[X*GI,"!GT U-CTCW!"U M,: #CX!9 HV@ILGMD("Q07JJD#6PB;AK:O'-J.B5*DDK.];FX!%?V9@9S[A9 MY]'6)]C8@OJTRM"O__T5&J^8,O/1LC]8JY$[7"#>!^^#JX>_%?7C?9VJ$0*XS MX-TFJ35HOG*7 S DSB8=%]09O_25'S&&]5)S ^Z%PI)94)EE5:W(6T?98"D+ MRD(1F6Y'R;O1A),ME=02&7OT3RYD],FTQL,"\3#$-3+=9G&L)=_UO;K+RL T MJG"K-:$>YNX?_K<'-ZA]1MN]^7%E\@R_4 ^"EE!I>,FV[:DTVHCIMF^*8VV5 M::+][;N(*448_FL^4P!D2KKVW)_A:(O5(MB5FU(-:6>D:_FJ MEHSV?X574,^UR1=F8QQ9?V)*!N(7P"G?@NT%.G9WO9:\S>ZV]-!('N)/*!=3 M'DS_4?+!+ON#G >[B!ZLX2684\XW#QYCJ@+7$T(WG<:,R'BU7V6J^1=ZH=)2 M>1@X31.TGU\F*WL![YR=O>L,PY:2>61[](WP DK3 MEFK[>-T#E3A/E1PQCKLV9$Y5. MM?5P.M=>#3VSMAZJ0Z,U?S[VNP^GU& 8O5&\(Q3E\LC&"9,55WEXG:5(_O!* MS3':X<2H5"WM(_=G.2QAZPV>.".;4(%B1ONA" GNBI+-98Z[S:BYFD61 ='( M MYNK5P* ,/.6MH50(F6Y.\0N2L_L/^^L* IPZH865HY_,:P-I3::$1SEWD%[&J)1H]?-2K]A-K8L,>K M!9Z""M5Y)B">!Y GN$%]S/#H0@,5N^*PP%\W)BQS&B01 JX&H2],J\M"?-@ MU[SA3O9#1E)]*J8FEQOMD $,$ '.""5'4 MR"LIV^*\6E"L$N@#E,_/&]E[>V!:7/&(-N\D']I!;!3L68&WUR2-E">@^!53/E]> M.0P9(8>%8)Q,WD,CX*LLM,P^\#6Z^IK&C^;,F( Q\ MZ9 ?G9^] /9'EZJY5 M[-MS>S6W,J1O!-!/QM1W+W>[L8Y--%L<9IZ]<[!EF;9FNNV$66Y+X0@1,O#3 MK]/>._5LX;E.) "(#CP4F*+*3U^LP"BSY^3[)#(D"^"0V# X.#9X]Z R9HX; MQ6'*\'(+JA!'3D*5WT+)I%AE":8IUJ<30]1)EZ>B(MZ15?C,>6--:IN5N\E5 M=N%STI65YW5E9=&5E9F1;8N%F'F1V$K+'+KL;Y8U02<$\();N'!@J9CP1P)? M?A5*\1L>2XZ?W/\K45CE)@T0(FLDJ-;RQ,77*Z M>"F^8VLQ$G8 MK'_@1WX4('_HO4'55Q.T='$^/"/J=H!<,3F!GLF1P\F>E(N.A8H M^87A[(=!EB@62BL/\5["0NEJ #V[I(5A.2>U%>56Y)O.6VIIKEJQHM":'$S( M#.;L29G)0@.W%/8P)W.NH;WIOD5/OU+LC&D,S#5$?KVMO>F]Y:TU^ L$68L. M1:(H8+0F;_P3]HZQ;&(XW&//GQ&UXCIE+\D=Q5;4;ZAF)8Z%[CZ%%6)E .@6 M+C%)G.P;O-0W1@N,7V26(\OZSC]\*VMKT9TFRN6Q_WN1+T9/N39=V70D%VUG MK(#P&FQ/BMJ"7ZT??O^+;[*'?^>;?K)O"[H]]?&,Y\6$/L37Z'ZY'I^/8_RY M$B:?*.967Q>M?^9O]!MSHQH(7Z-7]B-_V'CJ_=-KKRA LO\;XE#X? M4]>B0 NEW]$M$NQ-(+\D^%#5'-:5A*I-_.DIV+8?WX8-:8)1([4V1E3!>-X: ML0K>V(*,+RSP'TD?-Z]9=&>&/:%NHFLIP(%J/.U 81.($;SBG:).<3T!:#-! MQ)=] 8)7S]D)XI/!*_OX0I%X6#)K3-UN].@UM5H+.$DMX-Y,B';R .<+%6?@ M:9'< F)+D78!R640S6 XA5I0K:4P]Y@ TJ"G6G@<@9,XBH*KJ4M]+WQ&17%V MV4,.M!8LV,7R-C^J2W3M\5.Q99T>\C^V5NXHF_3VJT&K%!T8EJ^1IKRBJP/ MBNY[P0.,C#[%R2PS:$2%*#(^OVE[RUQJ[AN0/UQ^P"Y*>ET[^+JD_(34/L^+ MK!ZD#,XBRI[^HKO^N(ZD2&?WXD@&]8C3G(9O*,;7+,ZG-I?E1AM-CJ0OT:@R M'!'S%[%!:D]A6Z[(CQ+J*$]=8"Z6?/M#+/DP91'VD6OR92R:BA6(_H@&7TJN M$=>XE:P,8\JVC*7:URR*#5[1\-]#WM'!^9%,Q#ST7)ITN_QD@0#_1*EU'-RG M2*L^2DG'J[,:_4ODL0D"\^=U\B8$-.)B3H!1PO,V*'3L18A/16I2&!\#NRYY M:]1,(36Y3^J72EJ.IVP)@TX-UCJ4@(@*TLAK\(5J)29&JF^GYFDOY'P*ICK2 MMH1-#R:_;X\KEKK7^PQ@P94\;NBN'!:,'%.K"#PB)@4JH48"3+#W8.A0K9@V MT=69FO4)MLX817R39V6U2Q"[Y5'U/8_Q(FG3L4XV&S,6DK7%OU^+WYT9X^_H MF=Y@]9<:&P@8].@;LS%WA4D?G"[26OBD4+;D<36?1NA;OZ>6+1(FK. #&JD] M36O:1,[XYNO]M[>"2S?"N17>3Y39APW1:TL.3MKP*+U\96\:JM32X/U22'CQ M2/H5;1.9.6X3@*%D]W ^+KM2^+D^?@9>8!O!=?W!"%ZF+O^)EVL/".\$DGWI M^PBDU:U'!D0&^YJIHZ.BG3M#K_?"K?[!N%<\#&KE_2+"+[XP*$<7D^/(Z8&G M%K@QL4@,RWX?.HE?$!4&G_E$3A@2F"L,U8QYBU/LNV;9MO5"3>!(ZJO.IQ1G M MCY>T!=0'8)!FQC+^@FDG,\+=GF) B AHA0,WML<'DN6M':1 ZX7>S!1*YZ MF\G6\+P]KS]FU$7OD&P@Q7?3"+T( P5P50).+U"I;?&.0K4?@I1)R'G9F<%FITF64CRZR&"[8!A/-F.R MCL2=R4_A#%@?P?_F]:QUM#>L]=3"V2"+!99/P%'4R5]^5BF9<&^5FP@,>14: M&E*I;/H[7ZOS32>\%'K.[4,!<>_$<%H/OV/HFL9628R"H_(R$\Z1IN%29_IO MIQOX:RUI7ZVDY5H\K\/WQHH*,\9O<('B*I.S;4/J5YD^-[]-&XT0_LH)"$&4 M9 1TCL3S($ZD*4Z_&^WI^$CGOH-S?Q7GSC'OQS"!X1IN M)!W2!XP:E_54C& @650%<4W0"RGK8U>69\H*H%:,?QJVM71YP1W(?F B(6_ M:G[B*4C4PTFI!&UD8CJC8\_:'(7!B331S @:1#A\C+Y^ MC60*E15XD7)9R$1=^!V1#V[PV4"B8BC<4E<,W98RA\M@"5L>) =)[15VJ;$O MW(YMC%:\F7Q04O-2B TG=N!/#MW):.V=D8)N,MY/O?-%DY[0894;TZY$1 0D MXIP[/H(]V["8:TF2$8 "HF%"'3K#"=4"#'Q":?Q/1#V(XUA8OR%+0:R5.\*D M7,Q (F6=M+& Y-=A(ZOY%/:W\)V^LM-,(*M;-"(6PU(?<7B3+,"5*0O^X7A? MX@66CM&Q_4EHZ+A>N9B7[.GA0C<6B\A+%\HXY>5P/6JJJ(HMO^8Q5+ V\;). M1'\]7MQ&NB.PM_626NIQ'6/M*2)98R@B-Y_WFKDU?T<5*]IO\SW#-)D/*S\5 M_[S?BTW%G^CKLW>=03LLM?@^-3F,4IFSW8IGM?MADC%^F>/ASADTRZ2=U)IE M!;,V5G8"3Q=%Q,#!P,#QF3MV3=.6EL&#T=X$'.+A2&' 0L0T'&["T0/H_[:_ M:[(2#WFA)Y%XR(T:M]%*0BHXO@P)"X&8+<3(*O4DG+51QP2U?4)0:U#KG7EI MHSSTKXH-2(^*W@M_SADG&I=JBP@IADDR-3SY M$80C'0?LU\ (\Y@=Q^:N!2HT:H97,[QJ,+S$^0.G4_!V41>\%53P]G,\$]OL M T'6M3TB=SR,D$LQPWRVYN207D.6<)>H-TEP(CLVC8;T618!JUGJ"K#7) M96*8U)1(5+8L&"I*UM-:-.V5P6^ID* [ F VG_L9'Q@=P&X,#3&+D&M38Q[G MT$T1N$"UCR*+J.?\SIT5A'(<<3%"LP5O>>F"XE7!=)!G8X()%?$:JA(!,*9! MA\U8QSX2)IL:KA]QB_%]H.\$HV,O!!VNAY*B!R@*"BGIP:C>\= ;GR[E)S#' MN8D27D0*K;)?,;R(3ZC"#?+7"J^5UVY?"=86[4O3OL&M80X/=1-*X"6BG$() M&>-!? Z#8SR!2!HRTX]2N*>D\,NE$Q'*NTBOBRP?'A4:D(+]BL8\RBOF[7D# MP#?L&I,&1?];K[Q&F2N#3=& 1R#@ C-FJ'Z)-X](>$+&XB9@/HS1-K-&> [> MX4T$.ETY!&LY7SE"&/EU1QCLDR5%&S9R36XM9>"D1P0^;*.3KI0AT+%&Q:^* MOU&BJ2!<0[2S*J,Y\Q?^JM^]-Z%@^6C# WX H7,1ZV7"#@]G[SHE=&1.L:GA M94R2N;>I7F13U(Y">^,PWLQ,NWR;X/+*&,=)JYCF21+2N%==*R8!*G9&<^%E M3'&[B#!EIX@4AU;* MRG3?KZ >I.'Y18R@-\<+[ONG$>P ZU-^Y54_O,PDWC'ANY96KC&GGJV4]6$N M5W)TO!\ZPO5I8@RR,]D92K*JV!U0)@C"DO>/>^:"UD(WO)>/*6[.RQWGSA69 M%8&91+!%(%0N1GH?L(V]J4H=7 &S7+G>X36I&E&9M",&M0I%@WI/R>JIM)?R M&+F04E D;C-2.0@I!F#-$.TL'*LI[$9X<_0QTAH".L36HD(M+PK.<)"0CQ;4 MDW4!6J*H9?=N3=Q62<@9VD44[\3K.>)1"WI[:8U?Y8+Z!%I"E&'L/>@/ MT^9&+8UH)>'4)%7D M04_5'G\I9<#^*#AEDBA/[*?D5GX$3%&>6^+6O'SIE>D'CI-\)7B=GL8A\K=, MQ?21"O>);J U"1=??*OE>-*_QEZP29*V5?0 M+22S]'EB)4^S"30-\F=.>BG(Z"-\8>) #=XQ5Q" 5_C0\$O/!+9+GQ/1R M3 ML\>\7<9DC^E!IR#].J!R+3$KAA]#C^:?R<;\85#G'>F[CU114&YA;?.:JCW& MZT<$%*^R=Z[,"?U5= -/2B&]0&?+,>20BJ-J\JR:K$1"DH7N#Q+VD4=X4"9VVC$\0Q,8_Q!KP>X9.UZF! M<^R(F)H,AW(_),B$8!/_Z)MT;O&(%\%/O5+E31B8]]-D"0;^9NT[=6FDK/0R7+M)$D7[&70A><+(XL]U,S:<-#6[Q2\ 8ENPIOGJ=GA=0LE/**_V*Z:2NR8?,T2[_L M=W\)YL1FZT&3++FPC33VHWE/'J='_4=2HYQ^J"\-ZB)_.VMN&9G9Z33 H(HV MI3',E&2()TJ";O1^4\/T+WF["Q4 R8OD#C]1 '8OD@"HJ4UN4F!0UL8>FXIX M"M' (GI=KNH=!Z3/>/:!/;.Y11$,4,6N02-> 3D_6%/W!0@]>6[(\#C4,7E, M,=S).VLE&'.,>R6PWXF_7^W-U_^C+Y:_?GC++>9&3*S6$9>F_JXA*A)$ 63 MG&]I7S;\4IG)X0T6 JUBI*R&I0MS;A%1RB\WD&0;'O*/34'S,T0!)37XP:$ MINC(IDPT4E,C=#LPL^U7Z:) F?*"=3M^(S,&C,JIY#H MJ5"#>DB/(K!M7CHI&W2U[:A_;$.K&[Z_!!VCETG%&'1W5-)*U$(0%!RPP!U" MSLQ2%;W4L!ZTLP"[=[&K1EPNL-N%ZHH9^79Q"DB,VSL'&W_ W#7=G@33J-;A MEG07$2;^5QDY*^0P\KV"\WK Y>_8@P0LYA3,ZY_B.;?]UN&BCC6:L-<0C3(H M$.]G"":G\:F;C9LNU0]-ETHFJ%R!Q2(3]M8\L\M/(&S')Q!Z#6'=F+(ZC.G4UONH4&U]!@>;00$R:!]/ &G!\JS&C>/)4L\;"Q\Z"3>RG MQA3X*V@(R(O>\D9P2L,2S5^8NL&(%!%*174-GJ)(9".K8P+ E6V6L7<:'S6$ M&8-\O JZBY"07-[@)+X+/SF@_.'N5 ;-?NC>]&9L<$(;GL,UHTL*% ;,:!$M M.M9X'LJ%"-SX5,3F8'F:?C!=BRHC2JD)')]FU"*[XDUN** &',[!2G;%TX[K MRR(CWTW&QP-1P,3P0G6&*10U\DXM&.,:0NSY':%7TXPB[IISL(0*:XN S3[- M@":>+%?,O,7, -BU: 3CE\>'8$*+"4@N#3LP'9QFV+N\PQY.8I)1FP^LJ4*% MDBQ4F(KF<[I#H4_#2Q[U\E01^YPP[F#@V)LMY37\B\4DS(T6J=P(,B<99C[" MPBY'C/*\)0+Q/H$8IDJ\O3=GWQ[?G[T5_3"]-I0BV(5/8BM"^YD1@%-TH-P8 M%BC+$,G+ANG?88DQ59Q.,E\+)[*MHAZ W>N?H/9:'F&;1V,BP"T:RBB&"27% M8,^%$)7*7J->1[_0@ XUNR#T/H_*\)W62F0!\2Q[RD#"KM"BBR$]NZ*#B&X1 M/ DA'66]E82-F)M\:FZLO9,Y0/+H\H?!HXN#M[1;@B7US2>%@W>NQEPZQ:#T MPKGDKF>@C//&1HZ*\IYOT.3$,K;9Q.!>002H++^@Z'#X1]NKGO8:-/8)1 '.DB MNAW?X]5OLKG0>?&'TFE47"B;BWI>_V:)E%H/K)78]]/<&I'5Y?5[ MGULO302%!YAN*D8C':*/^-K$S:P1S1 ?]4%2-1&]#GL=:@J[#>9,_ MS[&Q=1X2;YXCV;9-H0(!S;A3T2F\KOP8P$,)_+L<,R4T-Q[8\R*#R*Z2P,T; MJLG6;\K /N_<2CG/7":T/8M6M.Q)I >+65-IPV4Y.)4?NX\."E$=PEK4;YQS M4,B-;F,6K?.%V0^S#9'\3@EQM/(,SCO0U 0QP\$T.EEU>_07)*'>ZP[<.L^E MHJ,#.Z%:KC&HE!3-IC1Y3-R@#H_4&@&9C/(381=Q<*):(%(539I!S+.HL?LR M7Q&5!)=LC5#&(F=D+>TNN)F),:>7%[\=7F9&?\0D!*!P5+G2;?(ZZ7?*Z*'@ MJ;F>93C.RKL)\"&,=R4_PE^FFZ)#I)Q^ MS?N1\2]Y6S3D?6RQG%MKQL3*_JAL,"H:I-[)0: 39.M3V4J!*Q=H+X%NTJ2G@,W&VCTIYBB5PQZO5;').:#:J.'"A1_9&7M//Y"GXU_K7JT0@FR = +<6SW,2& MWSTH*>;_K=WPA'#L@[M5Q94BQB+=;IJ0-1F%#FR MAT\3EFU2HR*9KH8#']@(F":#-_E&V8U^=N^QI)3BL;$0OPW2&&#SV>RTF:C3-3=!7L*19M MDMV0[5?%2"'O$6'!-S!YC7=E50KL%MYZ-NIZ7M*:,L=.]3,@(?_@;9FXDB-C MTOXT8$=U]SDS,(JYHWB!=9L\I, MNJ39\]+AZ7GT>)D0]\S+RER+_%32@G8,N%O=#A0(4,FB^ +[#1ONBF>>>&WA M\02^PRO@[PI/Z:-,5<_7F/K8QD(FSK8*ZD546#U\]7+(O?2+Z0'5$ 8U3-;YCV99S0>5\<$4"'G.;[U1:=B?3]CC M@1*,)\Q*B>Y) M@8<%_"Z?%^KH^_-Q_&8%-@4U%KPN;(,TBOA5Y>C"'>8@T9MWB+15L:'E/!?[$G&"B-) MC%HG8IXLZ 1FC,$"DW0O_GO40/@KO/<&WL6S]C*6QQW X^I)T(NB$QBWWD<\ MQF0> #;,$9>(RYH\C?3(RSH]LJ#TR$)P+3:Y,NO$HJ^D"[JF;LD,Q3T! M:32R0%D!S08C2EQ98:)G-?L!)@Z%?@$;]+&L30WT+Y>J%5^%,CJPJ;-E.[)S ME6(C"VDO1:,8U#7&-I!$4",TR+%'#Z6;*?TW>(\K+F/$3%0Z2I:*N%QU1UB< MIZ6KI?OC:CH%O1%Q\H;2](+5%Z%QD!_A2A32A+,D5']UT-^7H?QK&%_/+V#$ M <9K^SMTFRGKU\HY7"_;X?KM@_4J$)BF_K8>3ON:AM/&S1V&H\; =*L?5MC0A0K.0J"429H.+C?A?HS" ML!GOB\X02)'SLA7YI=5VMGQE/^LC/A(MG*-8VN",K27S!EW=6<]< M=,(1AHV8)]@G)8,6PI#Q\T$HJ!N8..R M/L:+!O@]>?D#;VSFSVGU>OOSN+#W;'!-\IN_Y2>%3ZO=:XXM-K\/H!1A%N?<)#$NB%X"._>10A%,I!V*P#=^I%1JA=@^A9 M'>RXV92]1_UFFU2J(>H9F@5NE*M/T03=:UKE!4YBP@5Q/O$4HQ^2@Y4JK\LP M63$:Y,PZY+'(%^>)XMQ9 K'Q/M02GX#$]GJ3R0(Q<5=JI^O>(Z].$JC>C'@8PMCF?\P/NZ _>-:FR]?DP' M@;T<,+Z2->;15)F_,>U<[^X?;Z09V]6:VO7]/VX_@+#5OES=?;CY?'L=Y3;1 MQ)2RSI^4"),_O6@SE,[>W7BE?-?8(@@!<;]R*2:$A/]>>)ZU>R^ F]0TI:A4 MJ.(6E"<247:0B:* 7DS(Y-G)GA<#M*Y+3T'[3%TTT;CCZN?OECV?:']G^ASD M_+W]I)MR=@4.D'S">!^EV @8DM@& $W8PAASM<+[3GY,PI7K%BB=E1GUH*4X M*U*=Z(_^5#&L-+-YEJ&71X+,^UGG67(3]F0S/CR5JXLX&)72#CDO=]2+5G4H M7C^-43M53D^U[R;.+Z52$YXE*-RJ\ HA%F1LHA'?X1WKHD'GF2@-/*E$T_&* MC:9..L1O\2E;9/F-]C MRAF&(OMCQG#P'+"WYG*NXUP0%..@8+\7K51I"**?%.(O/&&@36"2I\.1D6;H MD?M-SL7]SMB2?N^?:[7D,P967-,%178NTI3"^Q [%!X]KYF_-YS5(\X70 *& M^,N+6)=@W%!A,YE,H=TC9HBZU/#V1266K)-.#RI.PR^,%A\%30=GMG*;$R08 M#H)UN",Z@3,0!#5P\MV"EV0XP%D 56;&5.2=^,!45R*K#<>NRIPOO[K.9SXB M]0=^[24[H^FVUIX,;-2+N-D \G %*@E[3UPXS6:1)$9]!931BR*TVD*\',ND M,]UVO7:_XJ8:"$JOU!>THZ8\BK]+>AOP'5/T1M'_19U+Q%*&&'D'5_X=T<=F M"PM'*0/?YLRBL067^'P+_!&M$9S,2._F[$F,-%99D\(H$4J>J>17%\LY-"$^ M-J8,;,YSY8SJ,/+**7O$LD2*D3)56UA^" 3DMW_]>6Z@MK.:'YYU\-T\L__'X;O$1,6\'L:&.X- M+/>7%(2E3-49X\@>,G]%2GY@P)$MBVL @_"N/">*G",$D*62=ZIUU[FOF?<+ M^2R:+:JRWC/Z?6Y&& /XQ&UZ0!%3+4^-ZA&1]M2""8EVVR%6I/"@1(Q6I*-H M[>#:L*FY5X;JS=/ZR'A]VQ,>$B4R)*,CITJ7;QY_- M[I+B8:VX:N!LA$>+$I Y4FMXG9PCE-P N/'2#A$[/XQ1X1VB3/,>7ZCR.O@ M0L!3SOBL4IL)"FNY'I8;T1MP@RA@?[?4)L$P:,;\2_EV% M9E'A5"I'O3OCC6-EBW[@28L12M@O0?ASVJ#;&5G6=^ENEZC#=._R>*:R0#;O M@OWN]C3'WI ^7<.,4F_P&&M1SN^5O-IBWT%!:XI*364Y:KGFL0*@!#B#(P8P MT"YHUAK.YT5R%^P_T$]75T2QP\CJ@8=-=\:W06W*0 ]*PLJP*\\S4F3P OF, MP_B49Z&)2H-&7#9+5"'$#+_L&L329U"Q92/%N#,"7U_-L;W6TPS59ISNC#VP M1+&8S,*6S=YC7!XE3G6+_"B"KVMTT?BR: M;QWS6'*7/AVQM65.-LZ0W!]4HVFCIYSLW6_7R=Y%)WM'<36E(S0QVSOWTMG: M)&P.G(=K[:3_1/L?:^00NT;A]L6VGFQ]D9:*L_N]M_7?CW>I1ZOKMF0')#*4 MK)M,"ERAG/9A^)MOIJB^"UW[%P+7$_;2@6+9NB YI\6.IKPF)G M)F98T\!%1IY/WJ7&]QI$>@+1UR!$+!207OM?;%K+]1#1EBC&(OE&5@1^&;=] M[E^(/?O8:DY7=! ]W."2MXTE/0'4@A=2G:G'HVN)$9E*K:%,;\#\@(GJO_)' MKN#V4Z:X/?SV!^*X0'&!X3R#ZX^O_!TWXMUBAH<3G]]U+SS/?>+[-[JM3+R+V<#_G4$W;4VI6N5$S$I9+V<'MP0VRQZ4F? MS093W,\H3*GU-/(.@53X>O./F[MO-_#_Z_O?[FX?;^_OO#DD?_T97^+]+6W4 M.N>\AK-R3[X1\E(3C3UW,""Y2WJAO_-W7Q3/W[T_VCPX*SNPG\HTA.+Q'^%( MBBG32'O=2=/=>9LG.:W.GP9/K;;Y)#V#!P"$H;,P4(!+SY:#+>86?!G_Q[Q4 MG'[C<%\Z<5@2VL4U_CU@Z5H.!OO!-"?-/OM_JAY>U M6&#.F_!@R(M,P(]?DN;@).FD!63V#I-4X+PIT@)R/-"/ $X)O9 E+-'HLH^: MM["++X>MRXO+X4_>^X'=S?6E ^>0?Y(H)W;;;G6V6S Q%#DE"A2@_SX/$S<*+*P[Q0/J -,@!8L]<*-+N&T'C+BQ#,<$F#-UEG&IV MI-_ K!.EV)"D:M1G,#F?]M@P21\4QYCB M%U/@_V5E,Z5Y4L!_[\._V=UV :U^\> GY/XIF7&G9 \;;C'U4E'7=P78L+ U]CO9BBF$>G7:W3.:1 M]=JV$*:S7H 1$$>&/Z4TS(?)AODP(;I>D$(2==VGXAPIF>!6A3<+E1>L\,U/8#J(M MVD3VVQ%QZ-*()J^8* !=(M)C=V*[O,Q):^?#1K_=W1>M'0G0BY+;%:/18N1F M6C'>S^69V/JK_%9C?P/F;OA]"+#=UG#I:A-KA?%-+SDU]))\CH-^S#W&ORY* M6BF%5$:V,@PV!\PBP[N-BXN"3-><%W<(N!;%.7HY.0?PG%9D MY[2_5Q+(D>>Y(9Z7_=:+BR+S.AXMVH].Y MR" -"\&X8[Z28GC0>5[E)24+VB>%%^BOB!;"_!S*DXHITMA+BM[&_+R-'0M% MHK##YE1"E[4Z-F%M;PA(I[=YN,>3;O,RU4">GU(%O&&F1V[@[ +?@1B_Y.=. M;QB_5&"OR+2%)&H"KTQ)CV0-%S7M):ETVL?JTX,-F/ M,6,3WJ923 P4;Y5S>+R*_8BKLZ5YKFH79F33^*HZX2LZ(N+@T]O">=4 M\W1J>*E@"*+'8H!^9/^6\'7^LJG,;Z=[R=V-,?BC%",; \T8NQ_Z?[^\;I\/ MKMLQ_XPB&=6!VN)@DK1BML5E5$LXG)_C@^*G8KNY2D8W)UQK8S:?BR)E^COM M_&]GN/,MV=C1!,U@L7,PSVBK_TO&K\[/6Y>=\Y\VIVD6WMX4D]AM./;.._&[".TQ1-6(-;2SP5 ME5QOR"C==%%RE$?K\O)BT Y'! M3VJ^7B\G;57K5B6]16::J/>;%_T[@/Z#=B>"_87]O(C[9 QS 3H%,EN;$59EP>E .(*.\X-(;\I:2#]G:_:S7^G/OP MVT&0:IY7:KONCKF)P__.\[K3HTTAM@VH.I3&LF?"*!Q=#L<9$G2+FD/6'/)P M*"^'%*68!%@$AVSG#3A&DZ&TFC56@S5NU,O3N(J.2L]6W==-SP'N>? ]-WE* ML__U:-2G*!J.20KL44_VXAZ)BG+NRK?AY981F-41!Z?/^;.=M?KZ;QDH4O/& M(^"-NW#%U+KQ-J[8S3@@L;%DCHCR_2]!7)W)P MZ@M-@W'7,N$BY86EW8BBO29D=NZV?D(C@)R+)A>M$X?*IAA1HN=&^O\@+N%W M<0!/NUS\&>;$GUX_1:E(P?B3F,\; MVS.V@*FM@B6=1\.[J3U!F4C]Y3>K[: M_'UCW9G%YCPB;$2G[FC^8DOS$JTO*<]Z'#WN2I\'-F"SN2YFI22*Z9860)KP M-(8$G/EF^N=*.CYN,O&UE*CYQ$R:?+D.C'49)65P\KN>,>Y\T$Q@>+$N6U T MQTWC1W-F3";,_ 7+9B]Z9^^ .M6GWVFN^*NE;4C3]*3Q'U?>C.D',?W;^;;$ MX4? ;?OM2]$6_K/^PUBL9)/X#\84 , -.^9^\*8*3CK;V+P^*W)!].^ITD5 M5^;D:@J6Z*.U-,;G[?.-)<)?:7 :[":VWN-& /211FW=3Q_HNCC+_4)-_CN^ MF3 X#_!MA-\O0)TOP-V EL_>N3,;<&_-=-L)[M8JD;-O*G3Y:36'D]W-":GR &TLZ#6+I. NDPJ@P< MV@42PT$[ R1,*T;B1^85>.\%X4"#*Z96-$M82B/+YM,-4KKI-E8OY.!]P3E! M<9G)AW">;#K)ACUGR$\G-?)A/&,X8_)^>L5E_E=/>K()SD9X+R6GQ*M/OMQ\ MM#;W]!X"FT[.7J\>5),2W96Z#$=1+Z3"D5JY^"7NQ@+YY%_;GS[\3_^?__LI M3SYYFNSQ[N$2PZ/]@>(M ]&I(IT9D?UA/VWRXNS=-L],-^6>Q8-I;9_L3V?* M![W8VF>S%-I+ZKD93.;\=J 4G;!8!E[W#H+@T MSN#QNX7%)?<-DES-IS:&'CQOEO3X)6;XY&TSV;N,=K:N%%Y7X%Y+)?<"T+UF M@S4;K!"Y;,]QW]1#JQ!^..SG+0WJ7$1[[E8*P2MPP7FRL-2<' M[7(D9)7MN^HF^JX$ZAS$;9Q'39))&!X'"#&"3E*6WV"0-_?Y/&[F1[XK3M68 MMD:9W"B3)$SR8DVGG1=K.C'Z]!ZP)L. ORSRJET)9OQHN?J\."'@K$L$ M;Z;? P8D3+1.9S:'/V@ M[)3E< ?&C=DIF9-. LDD_*9$Q^/EDVF=1;71< -PX63>-M*F^S(5Y%'H\GR"L[,;)%, MI!SGO^KHVLY$^_^OQ_OKL'>5\ M86XU4C[F@O_U9_U=(/U>3;;??/L;NJCG:[FJ.S/\]^;/E?$,W )V!RSHLVY_ M9W1[#VR\LGD*6R1I;7 YS-]RM8!^JS$P2*K.#@W CDT*C,MGK/(A[NX?;[1^ M8@YHZ.E@EL?VIX> +ZD?W]IA*0Q_>NSSU=?_>_-X]?[3C?9P<_WMZ^WC[SJ0-NBF:V.6CKZEDWYDA$'RW[0=],2^<7[>+:%]._ X\Y;>C=GAM' M[U>V9IC/S'%Y=0L(R87'-$#HR9-2M8/B9M7A$PF6)G#6)O8'EUV097]L5\TN MC>N$O'L[X@^]A_[P2V?X__IQZ:.1[-$-":.AWL1*O1H)FYE/NBO_%W.C5PH*C83T@EBG5%WKT%_K-!+N2ZL\"JFY) M;_M--TRG1IH::;*\[1-5(M98<^Q8HWW4#5O[ASZ/3V#),)]^0_>)*JK=,=#@ MD)_@3"=P5H(HG'@OY?IW=4BC-(? M_K3UW$6=_EOKH:4]8;+29[JQLS!O[S<-;T3Z+;%HT:6_]0&U\ M4ZSD2+7G?D;O222]1KL=[:N:BKZRXF)P+EU-7:_E##6'*)M#C,>K MQ8K:;?YF6X[CNZHQ]L!;\SWJ/Q)XQV"8NQAG4VU[S3AJQG%JC&/G(U6?8V#@ M:1O'Z%^DS'.?&C_8I/EO9ELBG['[:][JO4U7',G_3<;92(>FHR.*FK!KC6 K M?2<0;J^7MVX-S(3.<#_2_D@\+*E]B#F=+^6#X=JREQB*98 2(S>0,8S)P+A) M:DL/'UA3>&9I.<:6]*?7ZEC-PJIV=)/NEU5Y./(!4$31'\S)M8(?]],/'#OV M[/;H7N8>)M/H7&P?4UV*![F*UDS!&'Z*9ZJIMGQ71*^;UXV94S>I:;FFY?U[ M =X<+Q6G<0_T>NW"QJ*7BQ5;' =1;\';FMIJR5D.S2414R]_JY M(X/=G#D%J>[^:%7SX]4(3IHD*T*1NYG.G;R]IZ(-F6M"K0FU8B9SU4DTC5W< MO4PI3G<.FZ?"@JCQFX0)07S98B+7M'0<0J\B>FBBZIE;G'6C'5;WK'I6TOR] M+"B"W4EG3E[N!0Z?8QM>B=9IFD,5Q>Y>*XKW<^X=O7@A5._22 O1\3,W:]O/ MR5-WRJW H:O"P_?F+\ VN[F8]D6CURX^')_NQE/=<16-E.+<]#73JIG623*M M';,1Y^+@V1A%WOR&G(W+O>=LU,RF M9C:GJ#@E>N7R)J. @=>MM(%W)#Z[*OJCLK?Z^V293RDZ_57QL.4$$"\K$&)+ M=:ZC-3 J*=YJ3*HQJ=H;KS&I8A=RM!L_&4RJI*9XBO7)65O!U07)52TZR6_& M%WF",=EX[(;31RM:RZ/A"!/\4PUDSD D]DQ MP)JW'4W>ZI*:]1R<3$_Q3%5G/?N*=AZ:Z:2)AU[V\F86#Z(!C+H\O>8.1\\= M3E$Q22#^\U[>AE&7C>'Y95U-?_S5]"5TO3MB3]*IER_EZ^>Q5Q_,H)>[P4=N MEG2TUDXE!?Q)$]I1T-EN;HA!7C=$E/IJXJN)KT#B*[537#7L\5XOK_R+:4B= M:2Q4V;9W32ZU4IBE-WO>XDG4 ]LEZH%'8G\>?\)#KD9O=8;#B7&G31TW]FJ8 M=G,7#C4&G3HYX&C]U:^5/BM$GKO9LQ?]O=JS-GK":)N7VR4=JZ$R6P&G[9 MAS6)SW,/8\C;$:ANLUP3Y"LER!V#NKFUZII2:TH]$DJM.*&FB_^F3,G,U!6] M+$+=-FH\2+IU<_0CI:MJ2,#$+DRY(\5YYX'5K=%/K#7Z'#LPU9W1*] VK@)E M)J^W5]X^G0?#;EY_9>>BT- MGZ")7!(]G1W$<7G>;I>4P\TGB3F"-F;SN2";OYVUS_@;_W:&;R3'H]A_CMR< MG=N"8$_VIO/@1CLX@'6,< RMB=BS M."2& IRN#2PL#U@!BA_8F)B=UNLT-&",;87'B'4S^-3;$;S-%C%*"]%R[3.$ M:\QX X#6FUM3WK=ZV;Q^& $12L-17HX/-J=&K1J]R7HW^#E;CUVGCE_91-VSM'_I\ MQ3: J(PJ^FIH_]EG3]%XM!3#IXX,$(4%$?9F_%1W#,@Q%_G4"%PC<(W 1WVJ M&H%K!#[J4]4(?-0(O.\Z81E_Z0]_VL.YBY@JEHMZO3#3/DY94DW77L^P)8Z] MR_;;&_9?)NO8%HQNIVB17\1\[W3%SGES^_J-86?3L._\37%]]*MBAE[5">H4 MSG!Z3*$R/&&W3.!AWM8(O0V9_L51W-@ M,^-L*?7<-6&_>L*NC%V02+([F *#396+IR7@7U6W\A(&:;U6A^D>&V3LBU?E MF[&P+]]&-[>QTNATLO*SNC]R3:=5-18.2*8[N1L&O=S#"8IKFEQ3;TV]-?7F M< %<=,KH^;835N3T#J1P"=3$5G5BJ[Q*FQBARSNX$M38WJ8&'*TL/N,CK$^ST,EO0=6_EF@JKIGR73H0[&?F M%D%UW^:UV(4>[\1J3*G8A1[OQ8\"DG8/5\7;#L5[9T6[\ M&'#MR+C6JZH^+J*-6UUN7(4SY;?[BSS.X2WZS=T=]CFINM=/V:$EX@"X: RZ MEZ^VKN1X:? 4SU3SE;WRE=VZQYWGY3CGT>YQ-;NI.FF>XIFJSFXJU(.N(K.> MS\O(PJ]KT6M&<=R,XK3TD@3B[W?R=H "$^=R\&IUCM,KG<_5QNY4Z^I/MX@I M7_..?7I=+KLI]9&8;AZ7%UE9TI'QG1.H(CQ"VCH*TMK-\7"1-]?I/&.=?$UP MQ[#Q Q/ _WMO+*XV^CULXYX.QTOV/$ZGU\?25:((G>R5/MIPU51 M[2&J.M1T6M-IL73ZBJ@U725NROA2'5RN:>PUJJ>)J:>YYWHT>I?=5ZN1GEY< M]N;/E>&NI76\KEN9GR:OX==\6"OX,F_+GWYFAG."C29/P!%>41H\+4K<,4Z; M!3):9J2+PD M1VX[;V/S7KM6-^N^YDI?\SFV5L*VYAQ<=6_SNA7>*VR%M]\D[?Q3SQK#R[TW M. ^V*DFZZ)MS>!J!G=*#&Z__"W13YY[M&&_T1[4"IA/R]O\ MA#^[(VNRIC_@#>$?)L:S\C\.R;O5@MG&V/\<_BNWB'W,F]Y1N^V?XK83^(6 M1!-9N\KQ#7,"6"0^"2QKXJ7/:9W A@+X^0'PLX/XF1X!K^'GAKFR5B'1^@6K MG@!S/NJ&_0]]O@(I"S]_A#>]GUOC[QZF#K \E@%R+N%UKKUBY&#E[L@T%QC3 M/UZ@'&#B7%\Z\+'\4YQ8?#$F[@Q_B5#G:"2AVNH@%"4 N^T+'G=@\[D _]_. MP,:A!?YVA@O0U@4VQ+B/SR/NXZW>DJZZ [Z '_CH7 "JC^R?WVWQ6W=W?;&W M@(*!"M2'B1R5;T[00Z_/^?X>W_Z!;U_:>_*]81[)_X[/>C8(_^Q9MPT=_D^=]%L[:PJKPG^1/[NJZP%U[_LL2!B(UZ@*L65[41-L=Z\! C5E%=37O'J3GWG1W;G&U291"_+!3G3$@-@ M.SG\4ZP=[WGQ./4.EO@'-J9@I-;K-#0,#&UV0^WID"4)J&(#IYMZ7 )-RT2LR%$K M3(R?Q;4FA[6R?[E5< B.F'V$ZQN,+FS\S MGI#A)34F%N#G;5-QV>@.HC7XX6XRN_!6'SFC^;1'HQ-D(;J:?[PV_K&UQN@@ M#*33YDUI9^*IJ!J"/=4 MW,/L;9I"+ZVFD*>+8FY& ?!)DPIQV%0DUTM0PNQUG.WU1UL&)"V M5RE3T],1TM-QB+&626-*4+30G8FO*;,/AW)Y,T#U7O MU/J#;F9[@X(V+=LI9Z=$==%&]R).'2VMZBZO&;DS MXM1$5#81I123>Z6BC#9=.W?3W$YJ(LIKQ:6XLYSF6DT:KTB^Y(N2IK2\TL57 M2KX>M2=;30DU)11L, TZY=-".ALI(RULG"!;3FRQ&S3Q4[QH'^&%V)$[Q<8. MLYVTFGZ:$'KUX#XW-P6NVCWGS=,XQ,$/Y@<^M.6:.XHR:%QTS@MVZZ:X^;1W M?3*1TYJ5U:SLX*PLG6_AX/Z#3MX(U3 O)\LS)"R*I1O86!BS%D#6T2FX8=!<_)(D*. M]*NXJ80ULM7(5O.M&I5>&RHEA]ICSG.RU9Q[Z6U5UW*64!)0.=N^\%-M-MR+ M]@"VJ]X+JW>9VS_8V] )JRXWK>MT:GYSJ+C#0;A.MECH>7_OG77V7Q];LXF: M3=1J29ZPY64O9:E%)O90%_'65%]3?:5;=0U3UAM7E^X+C@]N4I&6/)D<'8.\:0O]V.K-(AP=Y==%5\C?41-L*02[ M-6FH4A2;MVHT@I/;1JVGJ]PC!?Q79*PCJ4FIVB=+4FFYIL M#E#>77'[-#7AG&RY=QE%WW7M]^$S[O?J =SQ@(EP.Q(GX6%-]8N\1=\7_7 ]Y6-!"MY\,4XRH;;X&0.""-1K]> ?W#;_%%?\13,1L'/QV;-N&SK\GU(_ M5S9S$KX?Z\OP5R\"6'W$L MY_H:OYX;)M/^TUB :>8"<'\E!Y5 WUKLU&+G:,7.GJ5.+J]<6L6W .?"8?3> MFH?4/*3F(>6Z*+N7*;M]'SL7X1[,G]V1-5G3'Q#(^ =^AKO5@MG&&#\0F^?_ M@V_9C_%\-<%GE_(D7*$6B#>>,]T.4$U*K39@K"\Y6B+ N%^1O\D;Y=C^*<_B ML)HXL)Q=,)[K#EST\LFTSK:',\>@T#([E@+4]WBK8@46($B_&U0#DX _L^4O M9Y9M_!N6U>>?0*?\RA; CB=GL9C3#%L2XEO76D:^BCP:11O%U3VS!6]0CO,> M:.V[ JDGUASA1\T1 _( ".CS%WT=4\L7M1+@%;HVLY$$_^OQ_OKLW2/=M#75 MD+8!TLY??];?A1#PY[UBX#+IBC54]9L>;781'?T];'VMPA4W(5*^56(MRRK9 MB(ZKV]4R$C,:@&?O[E>V-@>Y F^P%_#Y,W/.H[D QY BR_\7$)\!'>=#N ?1>#UB MOWS6?QB+U>(S?]$:([9J0%](&'O4?B:.Q MT\V]NR2'L-P-RH@EV(\-1T5POW=NIP ML%-RMAE_,4^Z80;!G [:J>R<4%I'(JQ_@TULA77[(@NLN]W+/0.[S9GMB#%3 MLY'&)@!>'=@PP XHQ\1^!@!GW8>"9KDS^#U^;;,9,QT#?H\T B0'6[3&WV?6 M')1@ATRSBU\U1MC;TGX'_=*!&20 M*9@015L"1%H"^ Q<%OBR;MCX=$O["&ANV0Z2JP-KVX0-WO6 ) &QPPCK=(%I M#L?")NH"3?4\9)W033.\)UX[WRK/]"TP1. &!O/M"GL "-%*T0(AQ.! MIV+0(F/+P:EWCN$TZ.\1)!W#9@U7^W,%B.*N\6T(OK@Z$_Q<'QGT&/[=,.5F MD%["JR-^Z=H2% IKXIW!64VGQM@0/P--R7KA#YJXI M?+8F4D)"?&;]??I/\ ME.*6QPQ(=@)H;HT9FP@^NH%S1K0GR3F_B!4^ H4AY[R?)ON,$AED-QN#',0R M2&T*6R 8.CJW8Q=Q>5$($#Q,2WN$1Y&H"59/)A&Y9?HKO.CXL ,J$B7T(99N M Q'/#AP,MT'IRISX*J>?OK455(-D0)%&"L!"[PT5)$X%9(FRI&ZWA@3+NS0$"<D2M" 5/<';_TX.I&+<4$7YEVX3#QZ6,N0J!';% M-;BQ[LQ(]P(PTH^WL?F(.2*,Y"B#NO9>=.5/-]H@44R'G@Y>^_:GP6SO9'@<%[]__/O-UVSO MN;[__.7KS=]O[AYN_W&CW=[!WV^T-Y_N'Q[>BH4"Y;S5%NS9;SGX%L,$!FS@ MVIP3_T?Q0G%GW:#_'T,GURK9!MGTARW.;>^LR.#2R#+:] MCV/T@ID'17!W6V!L:/>@_?YKI6ASDF,3DT[EY3K+%.>04'P8S]AD11;ZPEK! MR[]Z9N^MF01#E(<4%X[RS5Z_$^*;M _#7(&:!' ;7XPN^I.)WFL.V]-.LS_6 M^\W+\^FP.1V-+O7IL#T:CT; \ T>^)FN>=N),4DSL=HT*:T-R@DWY(ZX^H_ MX,<) @D^,RT^+ M>@;/PHD7XA&P[>9@! ,BR#^I?.F'IJ]# MPCB?BY0,H@M:_6]GF ,2S.B(K<8+EMQYJ1V=UF"9IC)=+A&3:;!3T5RTX;/& M)8X6)VT2"^X+.<:&%)=$/B":5 ?WJNA>.3<<*<%TPUT]@D?R*W0[G3+.M\N\ MD'W&8+-ZG@04JN1Z*L^M]$^FV]J-B5$E@:E)(0YEE,N^B?!@O"1$"<%J?:>\(I+%!W?,Y2"TIOS_R!A0_^>V_5'C1GG:TVG.;RN:$JZ+?_JET_!,^=>TC<%78 MK#:FN,%XK9$;9AYUVI?FG4@!D,[>X)%>1L'ICKZ+$*&%2(% PQVO!&Q\14_BZ5^;DT6>45QZ?]"*N7^!&\!O7 MM8W1BL):C]87'6.S"<'8SF5R%;A#/7V:VS*H+J,95 =F9=%FRXK0Y^EP]M(9>YB5YV+BO\/0TUHIKPQGS^%'3>,B/59H_*72@-C$>&(8VW[5R*2L\DJX"$#, MYNUQ?+EA]GL%<>0T%=!M9T3*AF,0Y8:>^NE<+MV+;HGL)=JF/3-2;!\IFP,;CY2BMGLR"R&R"@>CD@DJ MIY-@P\3+= 0TN-B?>-YZNX6H]C5QY"..XQ W^778WN7.#OYN9["-6G:-]KPJ M 5.ZX;M_I2T7&(HV#4O7VW+[IOM1 CK@[>\)R\MD$36E[I-2M\J[XB@UGY_F M/.]DS-Z&T9A%NWFWTV4MQ(Z.- XAPW90!H?]O"*LTZ^@Q53-*J=]4>#]ME98 MAZAHVG;XHBW0_$@7F10WW#0HKJ!CUPF/)Y?P6$*FXUY1LY(YD(%Q-WD$W0:- M,)W7HW^^U>M1'>93=L)CS=5KKEYS]5?(U0MGZIO9>2X@!FK'=O*_ M'-&ADUW>E7-V[VCD]SMYO=F]W@;;OCHW7'.,FF,<-\,:M93LYYC9CUE<)Y=(N\;TC W1#"=6!2QN(P3?9<\U9VFV4UO8Q9!M&: U[[>CH07[^7$63YL2JA,W2:1+MZI_5.ZYW6.ZUW6N^T MWNFI[30IG;=[D=R;(&7:*BT1S2S^D;$V9K?#QP_[2!KW5D2VK@>Y@^->61>V MX^2.$BY4="@)F" EO4IV0=G'NY3>*OMXG5_NX-04<>04X16U-/>!.=CDY4&? MLWV\ZR':1Z9&TB-%4M_+M _,(;_B7F2$ZBO;QPO1,WIT$ZD&@^V]X'8/S;S7 MY[HYAL=U-SP@N7-9+"$6V -O/\$X=6S;WMO\E1YU*_%TW5SM_78_\<;8_BUB M-$78%+X:VY[O,U%!.!:3,@(C W*)A>$[M]KJ-/H7F[HWG" JI[5!C_-T-2^J M'"_:0\0_EA\!]_ ;1]Z:SXQSI-]TPT3F4B9GZK,2^])8RB'X7G_WZ8>-?ON\5D5RM3 NLG/O[L?:T+D#,$"#;[4UTVV- MF1,V"5N*W?;^FQ57G*%F<#?EZ16TIUS$?)926=59&]A5_M;G^[WUPK22FCRJ M11ZY%/>2"*63M_?X_F'?8ZM3$4Q//8?/<^^V4$W=VSW,O7VY4,V1Q MT#!%M[W?,,61,X]D*^J J4B'<%>0\N"_ >=(<5"&14 ._W M'M^HF5C-Q ZH!<:RL /&/GJ7N4VFX891T]6Y_IJEU"SE^%E*2KVHK/CHAM&+ M:16>3CLZ)NV([K8XA2=[R<6^8BD%'3$NH$)EP2G"*9V#C8#<^=A9^BP6[R5Y MC8<[_*R53O5B13N/X^M<;M#K#G/_&]KU5G#59 )5"HBMOM\V^T3 M!VM^<%0D<]*'JP@_V!=Y[VR9[=RWMSSR3K2'+DL-^:58/359Y9EHN[W_.7U7 MMS#?>PMS-18KB"/1@$W1Y?P0"%D2G\_8YRX]SS@T,?[EN(Y]J/:QMSL:PP4% M,X8[3R;!$K,- O$HD*"P_K/E*'B'/M:IL+,\9Z_967YV=L@*MX/36@UDSF:8Q^#_ M FVN-WR^1\:C6*&X&;7S6@AR+:K7MP<1[M MUGWPEMM)WL-0KYV[^\<;[5Q"?MO3P7O:_O00X)KZ<2WDP=OV/#_AQZO;K]H_ MKCY]N]$^WUP]?/MZ\_GF[O$A@$L:D;$\VU-.[N8O"E]X:U]H;],%R^WEO- MX*^!OYEC8ZG/\=<+RW$U??*LFZ[^Q*R5@P#Z#BO+A GO/?ZBL YL@#CC?,W? M*T3,B+DOC)ERC:6.[!=>10W<^=L73$<"1.U5FX"8:6E(FF2H@S ;:E_#'<&2]B,:7/VS.;4C)[_M(%_?)D9XQF_=\,&<+HOEJ;# MGH$Y.08 "6_8?R=N#)^=Z_"HX:A/J7MKQ)^^I3T&\?\/CY9@!( MY^1;?@(3^&]TGX9"$=$KY3W_@2Q,C6^D([\!A)ZO4/:'CHF'<@ %YKJ=<*0H M(."!Z"(^9-*L.&>.$[,LWW_T7+N M1L$Z]QZ"0,4T<)$#(C!_)U>W?-?O9-4 MOB(P?N:H/KDWOV(O1>!13^]UQX@1U/U^/R2H-3%*A$VN0)T<7T[[TWY_V&ZR M=KO?[.N=;E.?CKO-"S;HCLY[YYW+=OOL'=$1C8E O%G:UC-<,EX?5TN1']GL M2;<)K53VXS,PCAO(WODM\RD17BM('$0!["'BIB<6$*VGTL=CB[\-N?F,<9;3 M))832_&ML'H7D(I< 80'0*P <; J",J@"/=WR?\;F+(ANTNT<2^;7QBO*/J3 M,+B1, :&"[;(\LFTSB(6@Q_,V=YF,CB.0ZP*PA/6?=?OI5/B9[;\Y0P(]=^P MK#[_!'?PE2TL$/)GL09K,QR0$]^ZUC+R5>31J(VCI*G/;'X)ZG'>VTS_KD#J MB35'^%%S1),:?]'T^8N^CKGF !R1B^ K= V0&=C!?SW>7P/MT4T#;5PCIZ#6 MOOJ[9,O&QV#Q8041.330B)A52DX4B__>&2ZZ2N@Z;NB,-V+FI_A"\,S$DS1C M!MZP9<1,>_=D8;G$_CK!YBIT*.0XAQQRUVY=H.\KF/\@75]^B@0_IOR8XU7H M0V _&>'A5\IW!OOO^ANW2+AU.TI;4DZTSZJXU]V\5G"9C7:C"L8W!RXF0Y;_ MX#)"N%G0)?7U>^\YI=D*)1^J+!K/>+[J->H6&3$'H; :@4X @?Z7F_E?R,S? M!QH9IG9%7H%]O.RS[]C9Q^MNI8=D+T-!R&50\)M2Z 7<75*.FWTWKUH9M6LU M7SH,7WJ UQA3V+GI[H.8>,WDO>\;O"7?8$U=OG.UIJZ:NG*^[IOJ=:\I*QP[ M2*:LQ J,Z!# #0DX#IZ6':4X5;KTGHL@ M"SI(7\9=CYSJD$' G.0UGN*9:M0\B6L\Q3/5J'D2UWB*9ZI1IM9!93R[/]S'8)%OK8>6]F3!SDQ*2<34',SE&*\U:T3US(9E.@4'A=5C M5F^*47I*K.28HAS;;Q]R6IF6KACLV\.C3:'H]94Y^950J-6%+RS'<.NAY8!_I?G4:#T<^ (H\>!@";.Q:P8_[Z0>.'85R MK;Q3ZBX;[7ZT5W4J=>9T7,-UU.)XHA8EDF+Y7HC!AL[RA7HA:MJL:?,4I67Y MGH'^AF;OM22MJ?74J'7?Q%JHL3Y(J?869:R?#J'N.QNB_+-2+17UAV 3U3XO M/N6A&LSH:#E.2OV [O,]7:?/< J- >2UF;N-\]ZFRON.%]N.=N-'8>)N MH(\]&+(5#J6F7%1DW%- MQD93RCA_<=Z0FG_4_*/F'P?C'\+Y\D>O(/Z1 M.]^AWQBR=Q$/L> M)ZHK$S,#LP(K.1PPCY_HZ ?_55)@['74WX&'^\7VUM\^SJ_ 40RN;9E/D8EA M;7@3_V;K0(70]+Y$=W/N*S\<$N]U0-_QT6(&VCK -!4?N?W)>P*E]S!')8Z@ M:A2I&(K$WEP]9J_ U]5C]DYES%[->TYOV%<]2F^?H_1J"CH]"JK'Y>TX+B]S MCN%!:2S>&#S,*+R*L),=TT(/G=9O10]_U M'2:RU5*ZINK71M5E$76QP]3V->_DF.AYMPA7:@?"*YV)5@V>=_2NNG3LY8 3 MSSJ7.?6%BT;G_#*CNG#,3LG:"UXMTBJ1LO;0][V,Z:@UQ=44=ZS"; ^&<2WH M:K([1K+;-]45:[FF; /[J@5=D?'NXQX05@V.<11L(:4T+GW\5S__^*]!][P@ M?W-E2#DK$AW15H]"#!YTFE>_C+ZJ-1E4:ZM'S_;W,)TK;[>[6B34M'!PD5#L M9.5]V3^5)X.3"=?M>5Q6-?C!7CKY'YJ?I)2M90[#ZN1-LNVUBW-1[M24OS(, MYQ7Y,6L2W(^%-\C;AK6FSIHZ3X Z"R?.8F=4I8SP579&54V<-7%6B#B+-(1[ MW92*;4VYAHG7<.7';COR;\FO!KPM^!\(O-'$Y9?1VP]K/;P#Z7@475_K-S MPV1-;_A4M^V-22IV3Q]6-ER7AO._J,@7$;JAO3#->C'91#,MC5!9ZX6K@;&A M.(,'X3_PD&OKIC-EMJ.]&.[,P)$I#/ZU&=/F]/N9P6S='L_6+>U*<_S6S=XO M-A^TL-,?V;:B,'3XYEN/M%/ MC?%,6S#X&A[TUA\Q]X6)16E/5,2,?\,U"0&47?*FSO2?2MW7(^QWBE.#."" M\C5K9:=L]]8 YI6GPIM62TBVUVUEX40!*#ZB.MK2M9V."7ZXU MX)RP1WT.]RJY(,#)A+TB[LPLV*ZK<_Q9:%, !USALVX;#*X:=F28DY7CVFN M(VQ*MR?:1'=U^0;;:6D) &*A7!G -F^KNO8GGP3"G86PFC%F8B/P*=\%/$:C M.\1#_$5CW;;72#_ZPEKAX";8XM0P=7-LT!%AJRL^T)0(?MN/(J")TM MAZDO;FD!O)..Z![]LVW*6BP>]EKX4V]$&RV,_M[ZPI6E+0 M]].YI7L=TR>&LYSK %C#1.Z@_:>Q .(#Q(VP WDM0KJ>O7L QGD'.*GU"8-1 MJ"(M$5)Q:8_LRF9/0 *(?XCB/D4ANL5[O@4S:\6.73TX_]ADUR39':E)T;G M#.3$S)H#ZUZ@G.$C^AH@;:W)BS&?TT.&"0L_&4AL8C'\E R1IC5M@O8B/R>! MM&1X J!;6IP+46UW!IK1A+ W,F-Y@T'SP3-H!L.PW4+IR[?T!MS ]0S(C3D)]LKE12#UOATP M4IK D-!)@2CB,'.SC?5!SJ;=:3_]_C##?DPKQF8*?U!SAE/D#$&2L5DS0'.@ M8IEQK .(5B%3PXPG/!5C4L\G NR/^WV-<:>)<99=*.ZT:]PY9=QI!690%:4Y M\\4JH7_'F/-P@Q-T.J&3 K0D9O"97*I%#S ;HT&.%O0*<8_;W #7%W0EH5:% MVA6J> :.*0.[2;/)Z^'.=!>N? 7JWH@!NY_"EQ-N@VF. ?O7;>Y2$IH*,'[O MB_D:_N2NR' ?KQS76C";^PDF!BUDCEG #15R'Y#."%LA1\ D_;&-!?X B&G> MTFZG4DF<:'"2@%"B=_JB"^C$E%!XWQ'*2=,35P:?'_^.O_S]Z[-K=M9 G#W_=78#3)ODD5 M11, KYZ,JF19SFK7L?S8RF1GM[92$-D4,88 !@!UR:]_3W<#(.X$&@V@02(U MD]@DT>@^?>[7R%F*Z:M['__M^LIZW") (HQ#7ZBOY\IR7.:E2\>SBZW]H\/!@"BZ#[\O4>O07"N$?V[?JK"YA+\#F,\9\- M8* A0PWDFQF@]VP^*V&ID1A#5H!+ MX1$"!.G&Q",QL0<9'Y_Z =9K?8ELX+\6F<^*O">(H]YT=@:6\H[G8%@AV [6 M9@CX\4GAI0!#4/N\D,>S]_X'D$]8@%A;ZG\GK@B0*\"I\,<.V0X&/K%;_$V0 MGR7V\<-]VED^[X"] U3I4<)[(! G=A)V20+,'RW3>^.C]HJEB+;\8Z=[< Y> MA&552&@3#SR\'6_IAR7L0,(.FV 3/LS]W>!-D+OTX@#4RZ+M0 +#]2TI0,BF MPF#(WJGG@O%W!SL+[O@3$$O.DQB9=,?9P?J[;? IO0@)O2![J3OX8-A32_RV MZXR;&9!E\#![\B+OE;"Q>X)XCR2R[*%&R@_IE6!$S;NY80T:(PVM CVB%Q+Q M"#[R7-'T%4&O;;Q6/E-*E[]^3-?//B>Z"7"2!],Z2\_W*#B<-OR>8%4<2K/. M+L;C &"Y\>6-[3^YL6S]3UA6,SX"#+^@1^L)K*/SN\1T Y 0#.>M=>TP:AI^H(F M 1L&1O[7N]LKT-G)30,R7F$Y8>)!N=I%$'2G_^&#;&\B>'98\L7D>"Z'CEI6 MU7?-0:M-/43-01,6[>&2L*+W8*1@+B6I\H D& R\I &J5&!66< C'>@7O_NW M12[KEK!4KV:(?!+<'KZ\],R;O78=%NZ7MHT3!["V_>XUH8!?/@._#=09PETO MGS0P]P#'/UCVSUBTA%09^HN],C.-I.WX:U<5L,$OK(+37':I>D+7??O26 M2!@+*[A#Z=)P-];N84-N+D.A!6T JTI84KFO>&&BO_C*XR"AGR0_\346%-2TGE!7D*\-[C8B"YC;S ME]@F,'V=C>:";/UCX-B@9OAI&%Z^"/5ZI*F#%KU->H U?0-5_B2DV7$7#X8;+$7]6B]; M'7-\_N>]/WS>^_AYK_%NJ"U*MABB] .'== 3X H^K9,XKK9V/1R+W/A0^I*. MMZ418;\. )4O7W]M$AEP'+4Z,@"%NP9)=I)P:!V;,D!3A<+ Q8! O!!I MO[RSK@B%DD^^8)#DL/WY)(_M)YP1EIET17A\(XT[8-:.-J6R-8 T5"F&C MSGBE^3YQYC_P4LS(MP<-_\'>]P&[6".=,#XL[WW=)MN$3'%D>,H"Q?84#Y<0 MH82?<*3&?+@XY$J _=,?"G&00CIYGG\R-=C71_%$BN*E!'>]/>S1YR5>(G%O MO>!K)!\$CH07IF N1/)G+A'U[<_]@;&0=5]66%^)^,03_H6#M_4##31L;?2D6SL'K$+/>L5E(W@[! $\YWK4 M*LSTZ_\XC(6+T_[3B^$C%\._!AHOKJP(RH.VQ ]!%/54[/&R,4@-C8F] UDL MR5H?9C/O&=A,-.)*:/9GZLL ^96RC//K%F<=7!N(O#]/N$W+,1,EE9GD!036 M)SL>XPT?9*]1UD*\:[H90@GN=D>$\_Z_'5P%=M#1M>W6T)?$K^2G/N W^+ZB M7.U+.)]+/.8J[CYO]]+5\<*NGA#V=AVO+CBT(,AF^KM5:(513&([I(#<2X.I MP:(]7"\T&DWD,8NA1D*/9..T,)ZZOZE:E&[%96M/B^ALU6<<9T-(1(W^Q16#B$M(\[?I<"J33:K9W&*F&C9Y^$ MT9'T04D/Z/UL6TY68=]L/,H6F&F=D,9E_6\I^/?#7DB&$]_AMN+74Q<063U* MM.ONS3Z]_Q9[=^] M_1\3>1F0&VAE_(;$5AH=?F$;.T!D2_?PZF#QC716X&' MR&OWMZ-&+$CET.W,AHMDTL0A84S5'1RC]Z!.B/+'H93IT>9M@5>.1WO Q\HA MBCFC\\SS63E>G([ZGI_#"9@9X8Y/9"M>^PA2AA/C7 '*$Y95)I%+)'2'O3R% M@)X-[/&T%)_)X#(457?>.WV WWO@\\N72&V089$Z):\92;KK)(':TC.(LN^$ MNX:D'_O&!-EK.OHRA8N$DC%RBK:3,)?GZ;&5/$E]N,HR7%(I)2LO4^,F)1_B M996D;.1PC>AA9W=+$3RZ@(I7%U2ZHMM%)RD>ESDE6B.G@I43#%6] M7Y<;M-H9R%/7$W0;RF%U?&B1 IFTPEZ58V$OKV(.4H%O&8;UC$E'Q]Y=9_<( M;R(-^33O2-AK$@VVXUP #+2W23"'2K"+ZDOT(0PH]_>U^_OM+Q\^_?;/F?KQ MZRCEG[-XN9FW(N"TH6T= ('_)Q]DWLL(8"K5IDG!A4QD7 )1*9!)9 M_>]G>/5H'9N_UV"!F==!-7NTZJ.^6ADH]$[_D?8;&/=;[;?:;[7?JL!;]<=7 MQ1FOJNQ5+5\N#&6B8V5.](KRZ=C$:%A/4G*ZFDO1-^>]Q9.EN1.K>+ZOKMN9 M,[?"/S 7CS<$2H_2RRDM+PVA5*TUJ%P+>=/*##0[:?08T;-S1PY5$.3P;7K) M,^JE:Z_G1,3,K>GEGXFK^C/8Y\04*L%R4W3=@E/X*H@3%F,H3'2#A#]BQ&6P MH#@2LN3HE((;;WU03YOI^>-QJ2B2O!C(:2&[4II7ZO5T=D#/L9-'4V-Y>I(N M1M(Q-[DO4(FP.^0ACS;!/N0AER=#13EN6L]5 !CMJX+(F[.Z[_*;3K]O #I> MP*L&7:' $>4F3E@3RRQRO$G.^;*Y5!.\*CN"4)%71:-Z.;I'R?AH1K906MHS M&U?*N)?#);SIP,!.C6Y@:$9[MR+ 4K*T@Q<:312DI-AM.DD[OPA*+ M']+&Q4T8C3(%P+RZR3@O*]SXQZUESG9DZ2/5ID['T$,9*C@[9&7M<')P:GI( MU>.U&0JK1::5B6[/U3(239W(@[F2E&D\KK30)8JC83++R5,FM:8BY2(QD6-A M)944C%)U9_)\*,ML9O)1LII,7691JS%;8/5Z-2 /Q7!94/T:$,_3=HMCLY[\ M2%E>".L.=I@HU\AF,AN,6/U_G!C;@;L6A^K5=;^[T+YKQWZD ME^[0EJ1TYOK]J]<3,#30*^BYA#\+3=V)M%]"+TN$5G0MNO+_YP0C7ND20^D# M;H'JU6M%9O:X_GTF-%$^4"!3.Z1GOQQ(\\J!;/2HZ28]"QTB3'J\(/N1P @W MTPCMTM\Y;BH5;7K2]ORN@P;E%_^@5_MSWL$QE5 ZI)(ZR0JWPSV[4(=C.4XY MG P1,CN,S&:"*]+M4&.>.-K29EY<9F2VWLIK$4F%/X>_.<"#84?30_)@-,QH MTI-U%0!CN 4#?C>4+H4DM& @!1["1;K1H+VHC9!;DKT633 2BU*S58DL2MW/ MG)OCF2:9E*H,IPE"+=OZOVCO-:]1-:'@2,]J$:B9S^U$J5G.(F=UQ$C.\V'2 M&<>)L09$'^U6F:(,1#O5H""=\F#WQ"9G7%X$4PLT2Q4;.!.E%' F MZ2V7)0J7DM -W MMV\J'FWPNW/\$4#O#&WY[?SK"/K1G^")TY:]Q8.= MX$N"D$0 :HZS>PSS#CRD::4[N*7Y?KX&;=!XCPSKF;[+UIUOYVL;$8T=X>D< MDDWT=T>Z#W=&QV.\X6]?7?+:.QMI#MB"TJN.C)6TW.$Y<%[O5PS5_7&?=7WL='A"FSL02:_MW6$IUW" M"CZXHTOAMPS@K5L\-I,.IL3?&\A\@/W@=^!=ZMY,>6\P]]ZIZ!#H[5>S &1A M)]U0NO:_>[(,N!T#=^/$M[\$?K'#GP?0"^U\;>RPI4W?H/O8 >B9W7!^*!9E MU-:]-U.%WQ.LJCT@6!T_26:UPK*:\1$P MY0MZM)ZPCI46PPE"+RD5)_&O$C]-!G#VO8S?;&QZ">'CO -6\BT$J0=T?H\_ M.K]'( 0! IKQK+VF=1<.PQ'K;?@5FK2Q,>[]]>[V"O@XN6F@*NSEPCG9/[W1 M+F*!&CZ-I]]$\*QUF8HC(.DBRY<#S]8Y&4&W)1J*A$P\<"ZEU?[QRS3_P#(B'? M;[WYKXIAOOEK[ )84"#9]WX2YF\T@KY'$0ZSX_F"$\E)-%H]]+ MYUZ4H1A,M!<18;*H )-Y$B9-D8?0TH8/[Q-"P!3M=302F>YG,B..CX;CY !! MH/NBX!"2Y!?1"=FEP#%)!EZ_K]F^$T(=N(Z$Z?S0&1]CKQL2/S^K]S#ALR04 MI&&Z?Q/1A-T9;F26F; [&,:N=.Z/ "UTOH.47//YYM/<\TW'\?.E)T < MNZ'7=?F:A85%Q6O-6"CG$YF2)#(O8[;8\=HFLNDD]WR32>)\V?1U0K9R6CK( MB9O)I0S#QI1F_Z+^$=Q3KMH\9M43)_/A*%E06T1O;MI4+@F1N<(.D31+HK>6 M>VM9/#2?3U16-%\,QVHG#.:2A#]C9H6+X3Q9?G82-O-[_4E?(7/EYD*W< M4 O@/+SV@9^+U=&^J:4<02D9^/G2[)A$UI'+)=SM3A045?BBZ(E'-8-AO7[3 M@'!&J^EEK)+\U1.WWXH5G-4[5RW6M8!\^1[N)J"I0T.;IJ7:8BO*4$F:*+V% MOCN;#.<$1FGF#=X#.:+)XXL>+X;3@+V?CIE?% MD/GI+_\+@EM?_]_Y^47Y;F!UYIS&PAX"U(VEIF=]08X+P"!5A:0G)ZD3"7]* M*DIPX:&3=Z0.0I"EI"<$&,<#EXV"LA[2+XV4XWRRS'._SAGL3QOT3,OV8/G9 MT,QA&,2T: >SEZSE@J7H"C_4G6@IJ-<*KEQ] M$=F%C6A+IV+>U3T(*.I=@@J^_PB_B: =9R?,]1\[W7V],>%%.S(BY!;.8M]M M-+/L4-EQQ#MU\^G#X;&RJ1/M2UU6J(2,-;/2S[J5?DCT[@HIWE&$*MCXH!-7 M6EG6JZ6ZL*NSX2*ISTI(6VY^+$4UH^Z .(=JIO-R5*..!C,1J&;$0#6A'G87 MW\5"M,=SV=5UYTDI^W ^5).^_1 ]97=U"37X+(4^D28,N)<#7H$\EMTS0-)( M1XADN_UGBH%>];6##.*$.KO0'"\1*)?7WK3,:UF;8,[4&OJQ1;MGW7G_S<& M]%L/7W6HX\^ [=Z]G^,U\,\Q6QB4:1Y4_5Z;ZYDS9>UL.DQ*Q$BW-J^+CBR5 M:"S4)<#-%J4Z:,WQR(.\9D,-6&71C)(:NH^$ 9]V<03U'9K-D M^Y'6S<:[2+L%L+2=,@[TCX,DN))4 90B1O#]W^R]^ >R'-]EIT ME.EQ$+7%^?1R6-S]]V?Y'S]??AJ+VLMAH59KY: LDB$;GJ5_B?=DDKQK6^9# M)AK/RV Q\6IXS? R,'*OXWKOY3)3Z/ I.90*-U^_&3U>Z5'B]9=N>AY!KO.A M3NPN54'N,@BX>D::1*PT"9MID6Z$-;T>ZT,248@Z-&.\[K%L(78*-D?<4!QQ MGLO&\[BBS*AB/5.;DVI'7 /V!UTU@&04QPY.L)V5&L(VG0_&DQ2W9JGV,&4O M5)SY0XVC;'\F]H%I/5>IC:M4CZ64FI"FR,-QV:G9Q\-TXP1O[IB/RBCO-R$V8S(O5% MJIC+8J0X[(4/?AX+C97VQYP>O546_O-2PC\CD>*XB;(.YPBK.M"FBD_C:[U/ MI."9XGT[71**2>TF3UZ3EOV2^@T.M42_B,9@AK*H@Z29$G]^$(P!1\/,V0K/ M7!V7FM"D#E0E62F?/K:& 4O]/L"=P5*<,@([QXB"-W=V\2-/NJR#?GJ>5.&V M>UWO$*NIKNN5*P(#$3YET_7*8EVVXZ=FA,PB&^%T3RZJ9'2ZC:]JDQ-^L.PU MPI.M^/0ICRZ>/@JC& ,[W/X\C2F(IC,$X"W@)UFH9=0&>:"J*3.-\X%=A!1\ M?>'@!; +YHHHL_45EDI@8A5OC5Y4+XW*%DXHZ'"63OPO;^X=O M+<9\PZB0:8JKM>8I%%B]S3P%F;--SO.X3?7Q5X8*EG\K:X?3%M-QJ;Z3MQEW M;)CQ%,]FF):R?R>SP6*4E&0\D*#JM8NC#C*;?SU)BYH9(=2AV[6PV^1FU3NL M*"4KZ)0\9E5DC78LVEF H.*EI*#BG?A&4'&/]"#[O M[.4&L)^T(X@.-^?4O($#4 KKNWR0ZC(PV M$)6.__SK\.MP/]%\*/U*6D'@>=J./YM["T\/]D_LQY\_:J_ "QP@3U+_"#L- M,+M0_:&_7;);6BR7WB%T^7J/W@+#LRW#>(]6.[(HF(:1!?S3XL,"W\*)[L#A M,MNL3:ZD.O[1^HG7 ;S)BA5\RW847 "G"ZJ1,-I"? MWCAW/)E^@[MRNAL0!0\;8/T$'G (#R#.0-IM\:\UP&P"1=J/HN*51"[!NQX\ MH-K6[W=X)8 U!OD_<,VMB#; @R9A/GB#P8>!S'"\ID#N M1G?H99?HMU/T EO-U)N/1N7Z@\P&ZCPE5<^KGO7*R*F&IYFK8OWP1]V!UR(: MZ#\,+WDQF"]26BI$ .8W.^%#$4/I,KT7QJ (![II!(&I0\DK1W0'*8C"6Z])7_'NTT:.FA]5++ _6.^RSEW3'V6DF\*$8,\GH(G!T M1@RYP7." E(83:0;D]X<_)D>@:L1P\4;_QEV[FHO])K/:8.2B%Z%7O"?Z7U7 M[A"FFTMC!\9$T=XEA#(]#I;1?N.+LRO5DR9+^RJ7X+18J.D--#"8O+XM=-LY M#1<&1<' S*BR#CN?EPK+JJ/LP^)^-;ZQZ!TN4!&I35FHY4KHO@F#Q,HR,,M/ MEND?WF][R..VQ]-2NK:BC+,!D&RQ@?DA_ U;)!:( NF1;!C,[D:(;52>V$8- M$]MX,BW5K68V;838*JII6<0VD4L1FRS73FRC1HEM-BF7!++@0FPUZ!XE^A(1 M-\!7VI/G=@UT?Z>]4!T] ;5K2O,9#8BF(R79@*CM=C;3>;5V-BD%AH4R?(7H M\]'OM-]I8J=925Z=/UB_TR/>:8D"\%JZ&S5P_O1.5#_<8(^IM7- 77)^K*$* MK(U#\9CP5+#4(I$VVVJWL:"?8'@I/P? QTWZC)]##_JGX7WVI-DZZ,#GL"^- MI*!F? \J6/RKR U(!G)=7(RSU98$Q/Y/+7N[T4QX5DD% ?U,-U?P5R\EAGSB M@F;N8$W9-_B>-[J+R/*A(X#.93W3M9_AEO9O)PO!#N^_Z; 67A#WT/N&_-3D M_8M \[9LHHKZ\-%!C=?QZO'O/: &WZ\-2PL,TI7N@ WRBK_&6K7T%_T1SQ8! MV$6]0%P0M$ F]X&T:W'(61C:%:6[7'7?1T5A5WW^4VHE^&S<1#>#PEZFNF=@ MB=W0H=,'/)2'6?UL*:4EZ<<='3ZO>%-(LUQ5TTBT^%P-XO_JX=*E<3(*6D3B MU7-7861,%X2=QO^*!+ZOQ#Q@RNSE)H6$_S$51K$/R7+"@HR=952&%CM@\IA+ M6W4JY:<(9CK&I\S<1DZ9OEWC!8N'SC6TM6O=&/#/=F."OH8DK,3=(Q.M<2MT M&QF:2P,=F8I=E_P8/.=2M[3UHFU"*VI:(FM70; 4V4_Z$J6SOSOMY1U%XP^P MBY385Z8V)C/RQWG*1">>WH=4R9/O;E# \/;_7[S+R8%EZU5/1*$@;FI%IU2) M6DEK/E<826LF)_LZ<6B8V[["D%*5%:_#PN59'CW22JW6T_C!AZ9BNL+0<-ZQ4F/NJ_$S]0MOGO3J'1Y!E5D 6PNR@F)&DTSIW M^#CA[Z]@_Y\L]Y\(7N:?,+.R8L8\+&Z1.2R.I-I@2/M 3,QQI-GVD@5_Q<[[ MY49R=O O GD\)!CDO;KR?5DH+)FS2TD?#H->2()=\!'] M=R0YAT^^S=YR*912XXV"W#Z8UEE"#]G'?6)AJ+C>D0>]L^ =@.?PEHOQ- !1 M+DO=V/Z3&\O6_X1E->,C7.07] ADL@JV&^VF$X_EA1IIQ;]*_#1I]>X#1&\V M-KVV\''>V4C[%H+; [!"_-'Y/0+T!@AHQK/VFI8;'H8J&8P&K]"DC8W)]:]W MMU=G%R3)"YJ-=Q*M_8Z(E,QWM300%LVJ'R>?A(6O,$I1I,-^U M9IN =XY?8Y[,<)O-QC6/V&,JTCV4]/_I]NY:FF?6M1QZ/,KO&!Z? [S9GY>8 MG_QT?2?=?+JZ_>5:^GS]1?KZ'Y=?KE.*&^JJ<:AZEW Y.+4:.Q@ 0&-9[(" M+M,AK"!QL;ZSPT+Y_E4"HM')<%]S_PA\C&5^0M:;I-XG7!1)TU/#,X)!&N+_ MD"I*KQ OMIF5;NP"#8SK=K"RXOT1_;'3GT#],=V"F[S*>@XX@*/CDL/XJ:E& MXZ7F[K8DYHCLI4[+1B,IVX-@LFULGFXX=3OC)_N)EJ0L?1M4->*7T"]I21+. MF\XKFQ_@ZD;L!D!S.-"G'8-6A"O]@R5QG MFLH8[ZYLE@H@ANVVFJ12/,DD&U,Q.7FRTD,6,H+9NW&LS0/*F+G$Z%>=H_4: MU'8R==5T]7/R*_T)#>/]3G(Y:U(7J33T-BYEWV&F=FFNWM,C9.26C_&(KHCD M)>_53:#:2]#BE^KB7EW/EO?GZ_E\=#Y65Y-S;312SM7U8BZ/9NJ]=C^BTV@Q MGX+[P79A$I"4Q6(RC8*4U!IK>.XL'F7KO(TK+VG"!'[A[9%>&SY*P7T6SYOW ML&^Q&$Z^3V31OU10Y!59X9XY']7L4P,RX_EP-!Z1J3M\C*+8T.;<=E[I(:*A M/)5I<)KIZ?%$5N?,CZO#V7Q>X>TC>;*8L3]>Z>CCX7PTYK%W_PY/[?+B;\\* M%RK3@T4JC&U I<@K4HCTWQ+V6CA9D,OP97^2/@* 96B,1X6KGS<<$ M>3I4)I/Q]XF4S! XTCPW!3"$(2?5QQ!LHM" =->0H,*A V2H=& ^6#$9SI7D M *E6<2(Q_MD;[7V[-R1[9&F)A4P7HX5@+ 3,$HHATB61)_F@*I&_DPG+@KT@ M#ZK+F8 C_MT2HJADT,&##VX7)EV;V&B5E3>J_ :;@F\K8UHEZ+1'==XJU01U MQ;,'VF,F9G@I/+PI2H##[S7O$SS\WG#BP!.8\K,B_O6>XALZ^][>[I'^Q Y_ MPE@_&2KJ(F5L[>DAP6&!SZ0*YO%S#@IP]&AQO3:96-**1"-1"B[F88QD<\_7 M$0+..*"'CH+7N)"[S\]AC)Y7@$V49O@)[!%05FVL2[;$;\CT2P9+=8G<\8ZTK MF0U4):7I>B6ZRT!+GPKYW)J(B'GTE-<+ZVZPE=3LF4-S)J=JF1%)\G VKDM> M^UA6M[QNSGH1R7W/@H7OO9PP/U=LGQ^9R$SK71LU!,K:=GYPAM5X!>$K@*F,(=6,;LF M/2VTB)P:\JX&ZX"5IE M&\X?BY.=IN:OT7XKT@-[3P:UZ]TZAV%$V=%J@BT13.K$09*1Z8X>))D#TM6# MI!%%!\^13*7JZ$%ZS!+M'#WS%>P@@M](IKJE)M2M>D;WJ5F>]59G^65WL.#< M85[-L(1;Q^MRMUVL$WGDL%E-*D28&[;O55'PNAG.?U*7G=Y[0H2K+M""HL)T=N6IN/53CJ\9P 6']9Q,*NEL=D3 M9=A'-@A*7FQJW=A1W_,IX'(X8-GC[W'=[2G@[VGRXM2:H/9G[-0WE*]I30L. M2\K$ZAC9+21Y5N(SH4BC" /%F X1#G5W9HA8D6PZ56%-QID,9N-:IH%U0B@? MC>3MG'I8E2JX]1&8,6>Q*7(R;[\GG!,BG%XFMD7]3.7^LU+E_B/@BO62=Y<5 M_*Y[60$.)2K\>S]KD=GS7,,78CD ,NKXZX#3\>@()^[QJITJCD=OKU24/Q^Q M%N6K*9.!>]KN:5L VA9%XATLI(_3.:=:^NF4M99>S:[4$.V2*U71EU8M,^OH M&U*S^7K9L\K8!& ;4;11A@I&F_SJGI+'%<7O4/]1.^F=*%3_/F5U/+)X[(M= M5$DL%%@]J41=I\5,CL>*8*MBGS+[_\>39#_0G@Q[,NQE^A'*=,9"\]FD7,QA MEFR,T0)+$30R\<8?JOV&3 ''?XC-$H>/<%E[:*.)]&H\Y^#68MLR=K9TO7CUK!>$9*^DI4^>S^6/AN: M.93R]H=>EL8.)YZOX="2BR?%:\9R9Q" I\V*CTZ(7^V0Y%KX.=V&?;KZ^2H6 M>(G/D(\V!\.=%/"ARD(D_#7'G_ 72#>2K ^"OP:-B4! M\IG?B07P*+7U3+5+R.*IM=_#HM0]S(K>PZC&>QC&^XJ$>2'=&FB[",B_;G8< M;25&WH^;A23FFK.L_6\_18Y2D&Q!&.$KT8P/NJF92V!7-R:]4OCTO>XL#@.5GIG )<+,&$R 3&,0+'?PG*NO4-GC8N(U.8YWG3NV[OK_3S8Q-*Q4B"* MCXM,%$S]>?%?SP'VA7\N%?WA[=U_7'^1/MQ\NOQT=7/Y4?IZ=WEW_7=)<6T"+J%L(X!4[XN-VBU,]#M^L9\ L%FV:]7.]N&/]UAQ2&)( M%%A!! M_,WK42T!BV J*[%NEB33$($6Y3J@46+ Q!Y;PDNTK0,;\O_DG]-;D0##UQI' M& SY9TVI=@N@.)*QCBDMD6%X:B=AV63UOY_AU+ MD:*(8G&6VOMHN%B,^ZW7UE B/7PS&HZ4\:*+6V\*Z#%=LC/[[B[$^>]\,>SH MQN7A:#8;35K=>E,E4X>%5RU%_4R^8);SB27@*AU%F8#8&&&'_<$N_:'DCUGS MW1KV!LI[M$0XP"*I\F!OJ%3+'ZZEH5'#^ES!AD:\^Q:)2QCUWZJL#$>RJHK9 MR02;HYV^ZQ*BF,,M*B5YH$CW/"HE[4F0+#O3K*(B<&#U%@S<+]JS]*C!+>B: M$0U.P)\TVSU04%$7!,1BEB5#J,*=D6]-6L'C'3:ZLX/'3820;[)+E%S\B@6T1:6$[_H1+8,E0S?D MH0 VK^7]9MG?<$1\:UM+Y-2BTQT-$_41$Z=K+N3*=3UBJ#(8 6[,S_3Z,SC( M1)%9.(BM*+*"]92UL%X4K:8M=@U M1*^NN=!*18EZ2MZ6#[JI.QNTDAXL:]6[5NKS/1R5\/:QYF>,-)G"FW7@_70P MSV5(QVNC]IZ&>MU_1Z$-%"*^"6N%Z'B@C.9-F]X=513J,;TIGW^/'BW3<6V2 MGPR6 MN6K\2_\U <(?970IB&@W#3;1#=1/R,WBX#)K!%R9#::CO.8I/='TYF[/4;O- M4;UXO3C\M&UO0PXG59B;9XX&RBRI#+?J9.@LF3 TOL"EV"D5X?!WKU]#>-,, M!:S4MO"KSOFLF0!68NQA@4X;F4X5"7>;<%P-MY[07" 1QY4,G)>@+9>[1]RO M G_Q: $*_DD>'D@/R$0V:7IQ3W)384%-*E-P3+I=1G84$-VO#EKOC(_Z&H6H M;1RAJG,'+=^N=C8\[F[.+M1I_#XE\HVT(TL!@-=H*%UFG 8O#*2 M/V!)N+2%YN_C;.7OBIUWQ.^\$W7,?-YDRZ "!QT-I? .)?2R1::#)!M1U'*M M'&1ZUAR 49G6*Q0ZH1=>T_=]H:^[LU*)* =>TTF9WAZST2*UN8??6,6[=99> MMSP/I2BE#C5+[QSC=RD91N2)8!V1>+9[^&Q;6] L7G$O(_?27%W_L=.WN,MP MLM&#/)NWW>CA["+87V;[#'9+#".R@4":;2QC)>F/6]MZ0OA=.2TD/!M.J$82 M/M 78ZSIE6TK4:6/1++5\L&R8_^1]NW0?JMME)WW.^UWVN_TB'9:>\I JJ=" MSCMT]QHX,!ZT:X&)+X?/'OY O]Z:W-:ZM+0!>ROZR[%K-GGW9NA MK1LN,XW^I"ZX?%.&^H9:1A(#QUFQB6980>!O:&Z.920^T^[IFQUG)M#!#S7Z MK^?,(Z9#"Y*,\GM *K\0O:FPI_%G.WO4ST0>LR8<3@>C25Z0E>UZ2R-Q%!]Z M6NX/WC,Q$3- ZF%?$X65?4T&HUG9(>HGQK<$]#1Q._7']#A4HU:8]$0>Q*80 M_DX03EW<+"O.O+I4E?I[@!HW(O4 SZITK0RE(6)@+%.FIHC\ M5FPB;$I/J)O\)F/6L8J8_"I.-^T^W64J!=-:?5;3+E!M?UY& ^? :3ND/?!A M40IK>;V\&,A*"UZ9:;)LM$?>4SQM)W0,3FH\ZZN*T,]F7@I?L9E#C#8J0PGR'%7(N>(=:YH+[^,RP(EUHF?Q&K>X^4LI@8)6P09SNRKY3-BUMHFO$C]-LO)]%]0W&YM>0O@X[VRD?0M! MZ@&=W^./SN\18"= 0#.>M=>4"X[ $3"O=[=79Q=WY*:MM72% MZ0G8Q4]OM(N S^[9+>]&3 R=,;XN-VBU,]#M&G<<=]%''>[G!N[+?-#A$)>. M@UR'G"?9*D.9R6VWRD@AC?WF)8WL/KNMA5@-+Z_.=$:= MZ1&^RPC?99R1Y^I8[>C>>WSO%9K.XWMF!E+2[U0T(:>\'ZHSW?&Z0/NQ\.AH M.,/AT?04N7T6'3VW_S%U@\8^=*UM40"IT^%$G2<18)\_*E7#C;,L=^_,E:2^"[@_7]"/:GWO+Y' M@"JT'K>D1$6 AGC]B=W_*&$AB7K_&;P^;O_D9'9S=CZ5>5.]IL)GS>77/"]! M">*+#([4C& MZR)#L=N:;C(TT[4:1?5LXPC8AI_%)C[;*-;?@YEM9 QMS6(D,^:61(.IG*RF MY?0]2L6&27M,XGK-Q G23G5!=2*KBCI8A% M]+U":L',GDW*6 MS'C!.HJW$<+)XNKUQ6>Z3A*+X6P*Y"TF212,2O FB1Q->U2P$_!:?T&K\S^1 M;>%.-7-%5O[6'O:WH-,4Z,YSHC)H,5P UB9%>]MS#8H9KXTJ:5.>2AHO;[V@ MQNO)TQ7H=NHDK]Q5Y'$A+6MUDYG*3&EE'4B,WNFC<$%WG<;J41:[*KMRU$25 M57)QEEL9]"..V&*I3&"?LU>V,J$9Z/RBV=^0"_OW&_+BWN/+G0-;1C;MO Z( MX&ST;9O5"VUC2B.A,88)$MR=MC7MLP6SW$/A+W1V0)Q]\K45%-80V#R/Y;94 MFM >&IX&3PCBY?;S'=[)7R*)2V)[2Z%; M)-:2:,LV)<9SYJ15M@FX8FE7@CNCCYJ"?3]U0Q3JQD_F,D71SB]T;3MAN<;!V3[,"J<==%:XY/O8I M:TV%DK0S&\QY%DNPENB,*G#3TV;[3(MSEF)C>/=S(M\>:HC%F&4DQK3I-H"1 MDFO=!=\\+Z_[F%5'4@;*--G*HY#CO95[3DL $L%+WS.EGBGEM"82A"D5"US4 M9\K)%0K_YVQ1":&HH('T]Y[_]/PG9S[0D2E%.6;IG+5 1IU-VE6(V%!<'%NV M5Z9Z9B:RA=>0#XY;B2QK8S9E(*ME76P-\; L,ZYG8CT3.VXFQL-[T63TKT9C MD#DD/YBGM)\5\+93LOZ[' ?L.5K/T6JT,<53R_*"G@7KSY/6I9)G7;9J5J8R MJX8U,DKTF8F"-$SZQKVW5J_D#QH ?]AI3_A_U# ?MH](EM?AO<:?Y-DZ"8Z M#TZJC.#M8<_SHYXHGFP%>& M83T[;Y.]FP E8B1$1[3"5:* 7FP*+?(9";/CFX@]MH17:%L'7N[_R0>LMR*! M?I %AN&>?Z[D@?8TIWJ%G,@P/,K[^QE@ 5G][V=X=;)-CP *-4G+FL0M8!5L MO]5^J_U6^ZWV6SW&K1:H_Q!CH\TV)V5H$L5S@B'G?+V&;JKNG4LQLTO>OL0, MJE F\*R-6_O)<6W+?+CX)])LZ=I[=:@$]PG2_J M'TX=$]W;!GNB3()WSK6FW1<#B #1?R-[Q.-DGQZ&TA?TJ(&%:3Y('_4U.L M!D:,YG*#^ =(;OG'3K?1*B>T[SMI+@%>V@/ZU4'KG8$]-*&N;*,(J9T[:/EV MM;-?D68#F0VG\1P&H7S0@@[%$B8X4%9B=6W4Q_MJHSZ8A-:">4048T/18N$! MD652"9SK[,9%;L/ROEJKDU"*^],G5+^6)J+ ML7DLQJQY]O,ZE;^.^BKX8.HQGJDCVF1C=#=>L#;UJT>9["C!=47@M_ E1:Z1*%EOTATV#.B[IV]?7-C,N?DF6;MQ"8ORL[>Z-F/ MD)I0'?9%@QL7K!U!ZQT KAWX"AM%DO;P8*,'^*.DI74%N-<<^!%F,#O;!E-. MT@.6X3N5@0%([@;!BU]<^(.-D/1*JEETARRSQ*]Q+>D>/^%7^U-][*WTG7\G MO-O:)ELT?(+U[IZ1\81^@<4WF2K7-))B-3K(X4:#4U>-W171TY& M?Q9U/.77GX7\?Q(H?KJY H;)N7,+/9C/GAT,&$=W7,E:$QY,N2N6PAXH0P*O MS6XJ>Y@1IV+^^5,.7J&;"KN;S#O!3!F.YY-(?ZSB:C_O),AFYK*(8],6/4NB MUCMA$/B)KM/A0E'EQ&D%*04O6O]=PBO,M>B0D28Z5@/,7#]N#>L5(2_<'S+^ MKJCO*G/."&M-G3)83#F7*&0W*#YP6T*[LAF[5+=.@#4TL63P%$6HX3)(W0J?:9TKD8]$Y4USVZVX-U70W2Z M:4(,YZ@CT4C34,:P"2,C_B)!FWR .P:DRKRP&SYB3R:2B4Z'9!AS_[BIPJ6>A-? ;+%T MXF.T)1N@0BJWNVEP,M'?9,1*?].R9N9)T%VFK%\TFP%0X'7M$W1U%:$3QRQ6 M050Q-Z!U2'"IAZN:0< *!4%5JK+#X_ M7:MU(FZ)G96__6/D9RFY"OSY64O*:6F]=,P:/E0'\](1D--@84)6GC*451%# MYY-E>A6@AXNJ)K.%@$.OR3'"17"<+MC8PT.P:BR"YY*V,)HYJ4.E7()]Z?2O!3[;6&8SH5&+CSV61V;,<*12./ZE0] M877E5/BNQ@M5U%/5W5Q0'+F=7EE66T.>SM%JI5,J4X+F\5.^%7CF-O4VQLJM M/>=;#57724"4G_.:2E#%8$B2XCI6A-UM>JKY_F5EJ,SF\O>BUNOR'N$LC%;' M7K5= PK,IY.)L"C08,EV0LN(+ELFB37'?5@>VVK@P3X/>H_6R+;12GKV2XAL M](3,'>(; BY=+28X6ZZY6K/-X[=;QUF5.L2) E^_N,A$9X9%&8= MXR6KDUHJL4+.G>JW>8QQ8(&)NN=IQ\+36HH$5^1F$X4U,#ROH7*=>M*.B8EU MP0%7HQ9;5_U[MWT'/)*J<\[8X:('1BXF,[?@&#-6/92ZM"+1-W%8%A\\[4ID M3FA:;$FG8+6,1JR6T3BORU9E\BL0HQ.'^O(K'M(\7;7-MUVDZQ=M)9$V&.%; MI&L51Y%)S'U&CGC $G.64!A.H62(HZFN( F8H>S1P[8GL[R09S/!AY\M,M0_ M49*7Z]"-%NGZ7\\U>ZXI--=L2%#.'JT.W*T3W"T+][1''C_.GHT%9BSJ@:E 61A7(4 &&1XGSUIM@ZVWSG< MFN;N;.1D?+_4MO&O? U]C'=G(-<%#($#+,FE^;^T[.U&,^%1)4J8CJO9R0$[ M?C,?%^Q1!V.Z7T?QO-%=1%8/'0"PR7JF2S\#@NY?3A:"_=U_TV$MO"!.!?N& M?$MP_R*@',LFTZ!\Z.#943I>/?Z]=Q_!]VO#TH(ZCY7N; WM%7^-;UGZB_ZX MM6P7(!>H;*G3EKA.D>LQYE@PYBM"TB?+19**^;V$.2%>43/@UU0 8.ECTP;& M>"8?%D28X4NA*J9A+4C&TZCWU+;, CL1]^P[RSA6H.7 9FDYKO-6>* (?I%P M:TC:VM:3OD*2/^82!:,S,9!QJ=^6ND/]3"P@H0%F(\L-_ +T&_][.BES"\S3 M6CF2C><+F@_2&O; -MLO\M"Y@Y;G^LOY1E\!BWN+O:VSZ=D%_#(J.3#15W]; MX8<*E)O^_HOVHC_N'G\AB=B^$KQ\O4=Q/_-G KJ].UE1(FHM!L';U<[&'-I! MYME%:!9I7-V* F4@:2ZY6XP'?AX='E]J U-^, $A5D/IMXT.JNTS((#YH#T@ M/)(1X=BZHS^A 7^V&DDB E_?["U1SJ3!?ZR1(Z#T4(WE\8.JZ<2UK*?D/$J M/5K YRV;? 8_1D^:L0,^#7_%._(7!#1;6L#I39!?CH^3*^G^57)VVZVA(QLC MG1]-M>Z)E 5F[X!.+H%D==!0NML@!T6^TVPD:>LU'=%Z_QH<8ZWI!HAH0%(7 M[QIOA' 4O V,^R"I#4?:X=&P.K9FP"I9DBW'%J#G!WWA25\B,$T,.++]NI]> MJ%.+AHBB1^T;PF]R4+ @;'$HW:PQK ,Z;LC;_#W!$I \FUTYRL=SFE3\;OWQI[0P\>"?8Q5"ZI.B$X%N M&-* %=@(BVD"(X+& XQ*Y,THLI_4=P93>"E\U@ 0RW;(C0:#>K_OO9]L&TSM)]; 63N*/%VMZJP+1@W8OQ M/-JY,\M.W=C^DQO@3G_"LIKQ$:#_!3V"5%N=I7H"SN.VQ-X#D/@J\=.D3>_7 M#,%>-S:]A/!QWME(^Q:"U ,ZO\DMP'&VRLLM(#I_O1&NPB,][T-SP=I.B- XS#"!%>UGC3?=?2'"%V*#<<.-;&=*1[HO"%%- MT^^TWVF_TWZG_4ZK[+3N?.,V2KKKJV\7 J78:89F+A$./]PC6-[$_F$<42(NX@-\ MC]O)$PT3!$F\*YCC(^#Q#J7*\3K9J/#1A,MN2Z\AR.JYD+6#E2*9P9%TYG$;\$]WSC.#D>Q,\9!,X_)&XR4O%SZRC6K MPC"$:IC5V8V+7+#]WE>V?Y_,N=*#S-S3:J[64[HM#!G4X:L05F3^%NHU2%+F M:G=1%#[@/H.&N^(LH$S\@:-,_&PC]*([.#?QQES:2'/0>T3_F\$.E$6..>[ MH>&S WQADIP95%&UCMYEE%MDW.R9]$0^P$$$_,'9Q8]U8X\0WW%;FN@1Y),OVCMD+2:F?[*?=%G.\= MM@/K&NO<9<'XU=7,E69G-$G\K+T23,ELDFRVJ:U;2 D,=XIK;E?1,)&',1$C Z*M$% M3,?G=K:K9/EQ7F7>L5K5QVDPEQ315[@T5U_K:)4_;7X\9TWG6HS9+.;>&!8/ M@6NV(8&G3>.$Y!V0\9W51YLX!Z= -"V3[U&&.]XRO;=CT MC$_$T2OCQ:RIT2N-WS"#7BP:*VRR5_0^44[$CJ"98XWY-3,5!@!G%SG]^U99 M@#C4QF_U1&)IRYT#2(V[CWI1VP/]_%C?EVSKYY7U,C0R\R__"WWSN]=+O)4' MDJ?S7G>6AN7L[)0^9K-IK(T9>9T.2ZPN@:\META;+^49.K]?R_?G8^!&Y_76^FLY6T[&JS:>R6KCO6"Z@DDW',OJ.>JW>O'W2]^'3%-QKK!F9CZFC4/DW M0V>R?#P^\E9D992[?JO]5ONM]EOMM]J%(&C5D<==Z5;6QBA5H=K[=+F/&9>& M94GHB)8*UV*WLI,GCV-O8B;X!==%J]UM;]8T]SK)]F8%223^91SJ&%BP==XQ%$H'.6R^:=L8;!U7'I0:'EFR$5O;#H M]?>TVA^\9U+M=V3*;-O&QJHFK*G"RFS26/NV+G.LIHO[V[#2?"AX@44OAH=G MV!V'%5ISHG?.D82H86#K$)?/CPIVQAHO%$;^-&'E3UR9T#'BY!$>J>U*"]:& M EQH;#*:,'?8*6NN' UQ"=27CIU4N;5Z?<3)3G\&:3U!#H^?NL.K]]@Q*0K% M$SGS'+='50^9T"7(F.HP=MVN8TELF3R-56\8SY(\K2+ZUG2=33?7ZPFJ2_69 M:6H#.SE-6*LRU6F>&B[$-=:.O%4[#G5._-U9KF;D9/+V7H'C-5]Y/5@ MFZ!W]++ED?E?E_\UW, ?^&?2T5_ M>//IZO:7:^GN\K^OOZ;Y#5+( ZAH:2#-]OMIY8,_I1XR7/3'@'!?EQNTVAGH M=DU1[QT"=H/V: C_<8 37)JK#_ Y\(([3%U)G!S+2MLX"? GVY;NR1EP)R7\ M-U=[@9\#,!S=<1V_TQ!M'8295^2&0H3O,4K:LP? B@+;TZ;;)I^=>0]A,+B_ MK]W?U:O;?_S/+U?CSU]'*?\DV@GE=!"*-0UR8SV%?.C-9]N&^PDEK=.#?2\6 M#?J0>/7JZ/?<[[G?<[_G?L\-[EG 5*B^05%[9SKL[<\*RW2B01'CT ;^O3P: M2*9HH171Z"0)810EA!9:$>T) 9N=>5A_W)=;%Z&*V6=J)-@LFC9S%KY:.WN) MB+=!SW1*O&UV2DV'<&^]-B'RJZGCR71?7=30/_U_U]\ M8) @)SV0 \$P"2G<8*JJ6ZJ.S&VF3B\T!/?1.5-M6O1N69"S1F\(JZ+4(BEYJ22]^53VO(4UJ++NXG(\ M9C_6C7O54;T;[Z!VY-%*!GN4Y06KG41\2]].O/G_M1O>]9E6C<,$$';$S-(@.L7U]8 !KJIV:\W M+GIT<)$//&E;A@&/WN" .QBV67J;PFK6RN/!>,'8SKBS&)*MT_&<0"^\(ZRS M[*OSH#@2O;4BUYJJ4T:N-1VH*=8F6Z>H/&]<5RGDD,K[E_-SZ7_UM?079[?% MG9=^T1T"%;2ZLHS=H^G\WT52+8:U88-[@%)PJ./I4-W# U\(\AR4B=_.A@KW M7\+KYRV^ON&-XNO[Z2__B\R5OOZ_\_.+M#K54.5I2HEJE2*ZO=RL5!IX93UN MX4RFZ_AE@L!-KE^VR'30.V2BM>YFE 4NQM-D62#L!;TLC=T*GYZ>.E(3%RES M*UW8=A&N7:,,96EH#O"K[8-IG:4+G8+)DM$".F]5[0'!NA?C14"]N67)&]M_ M.JTR&8YD%5]S7Z_+7@98LUI9K.ZOQ?K=CM .>Q ^/=%0 =J9 MJ-]'JT"+MFH\YI)?0?&A9NI/QX?&[_\(JH(;Y*>Q80K"% (W24)BEE+NO5## MQ6PV_;Y86EOEM$/.FZ_'>.C.[74/?]LJC67#]^.ME16*A!HOGA5)-GY L!7- M.%J3HI5DH;8.R24#*,ETRAZYL&NPS2(13RGT\#\1:<\LDV6=X3:69XW5R);@ MN_54RI:ABF.8?W"DK( [W;=>+Y:5YV"B;IE5H-#7O K<:U;[^B=/^TX?XIT"#D1M:66I@J"ZBB5'";^ M@**")M*4V41:)&OT&W&8I%YKIJUT1#X#SG%VEA9=@DCZJFZ$JJ5718N.!"Y-)EJ0O+3KA#>NLOIX WF/>79 JI6(<[9V(+MP% M0,2VYU.$R^3H9S@&7:] (NN) MJ'-';NK]4$F!B22LE>,E\T5.%,4A*K/Q-R!J3WO,CFC8@V* X456%UL+TW>*%^2X1 MBFHE62#S& ^EI=EKE;-+>\](5Q(RA-'U*[L,6$ASOF M3TD.UQ'S>FMR''0[ M<77EX4SO0BAL '4A![6F]B''G&+J<\]R;),YX1^00>2BF+Z;2/-%,P)QB#[M MDP][F$Y98\#JM&SBI[#*4_T%06UI3\&,&BD^8J99#XR@^A1O/PL93.>-H.N. MMM5 K4\)P'1"%RN97*^P*F'R8#9NR;'$?H,M^I:ZHJ45=C&D@[U N<,>!%F@ M$YGO\()"P$Q* T% #:]D<2'K9%=9J2G!A@-'R;Y&KYBB'[':CUCUYTU&!AW> M7?TV^2@K']Z-1RG_W <(%%FXTI#5Z_4: ?D\[>D9EY>2'=FK/XO2<35WYUKVJV3CU"[7(I\B_[0A*X/^0'._NM_KF:WOX[_WVW:M=8POU)15,R8\H$HQOQ*W^A4AB-%Q#Z7(ZD:KCWR1 M'X>"$)]W-@K5%$42ZO=AB'/E4$*]/$PV&>!:'Y8J5OG>:P2OL&N1WTU_7R,L M CG+&<>Y-;QJ@"1%G.Y0)Z'.IJ=,J/629>,= -IR_6=W CGG@W@21>'D]:> M0G-/(]EUY/B+8$LWJZZ,TGGC$>HDZ;7.R,GBIMN<2; MK,<7P99OZHP5B*^KVD=9DIQ.6=6.T3"9I\2_T60W2#)7OV#TG?!3/6K0TRZD MGPWK'C2'&]/5S <=IWA\M)[/,:ZM)(IWT@\_WWR\N_GQC=]TX#VR 7E7X6?\ M7WYX?W/S8R/:AY!*:ZN*B8@0*=?,:/EZCPIQ1XJT>_P#E(7?T0>RE999-H: RH)8"%.Z:=YMKT7Y B](&SM$8MPMD\63MO9P<^ K7FE(02W MWF'4N@IAUI7EN)F\3LDQQ(JI&>HP9XQF&SZ2NG2)8Z"=+GDL#M).%8\%'_)9 MC')4A6+D,QOF5'JVX<_@29JXD!'AJPT]!G24$ M\<.7?]<>MW][_Z.TM-$J'$GI71K'X=(07@V!#Z\([CD^IF;Q2EEFMJJ::TG4 MNS-$UDZZXLZH57,I3G'3"6L6EEHZRM(BL=6-WS^6\F%,N?DP$GI*Y!T'5;@+ M/P""2W*I?A#5R80BRRK:$-&L$>0Y@RJ$>1B61AP]?/X0_%?S3:4T^6L*?.C+_&4S" M3E4">!R=Y/^O=$ J&YG+OA2@+P5HP-*+M^_&OWCOX:"K WO)U$)STN^*^24R+;H%'C28>9_:,:..HDU MW(%)XZ\F]!%F(2+,M4FZ 8N7(^QCC5R!<@'Z/=&'"V-_7 Z_..=OVRU6W8#8G.[DS< M.?'!!'Q;[0?88.^KYKJV?K]SD>,WS^#N@*UPB,9\LU7V6$MBMG]]E^;JU]#E MA>DWN+DLBHU.SU0R15RQZ9F%BF60MD. MO,U>?B&"_3ZB:90> MR+?+1\"HS)&^HXC<&Q4-%TU'DP% -FD 6&L)D0T0>'F]^@!. %L)/6X-ZQ4A MRQU9RCEWN,HYQX/7EVE[E?5 M;T^-QOT*W]YX,:OK]O+(\, @K%1!I((FK^ZG:)&%\7PO.)WA??:DV;H&_P5> MJ[D@1)R,[Y?:-OZ5WV]\C'=G(-<%+@\'6!)6[O_2LK<;S81'E:BL=5S-]L6O M;J[ RO;8/_G$M>$9? O^A++GC>XBLGKH " #\* SO/0S")G]R\E"L+_[;SJL MA1?$+?._(5_9V;\(;M6BTO3C+;R9U@UQ,J%L -:9(3UH0!CN4 M+@T#HZP%]&VC1PWV;#X$;R)M0ZFB 9\:%B#U4K/M5_RJ9\U>.=(SLI&TWAE M]3L7R!)'8#VF,(Q)I[WN6$5$[5>I-"PP',O9B# MF&4M:D=[LP;O$6S-]./J>"(D_B/AGQA+0+,"%(B$VR-,[@<<7U5&?_OU[AWY MD_RW'^L=1SC__/6_)W?RKS?SAL81RG,Y8*0=&4#'I#'@R[G@TD>6.SP@<#1?*?#SI_%6,9^/N M4%OJ&?:CR#M\B-!4>1%.T=@(N@HRJ^AXI?C<)%[W6['JCZ^<:_N0AW,#O),I M4S!29XO("*U9&W?F*I M1BRR,EQ,9DJ$6-0VB87_M,;4"^>N7-5UXS63-]S_>*+4??^,Y,\T;S#&';.C MEJVI%=SR%GXF/I1?[]Y)]YI!J@,U-^1WL=;2*Q8]^?A5$X :-[-9$SN* " : M(/0-\4+,-WK@[]A?GU5<[5GK#)L1*X)]XP=PXI[6#/]J5@AM%@FAG>]CU>JA MU)'!;)YLML\)>4K23L/NB]IIIUW9W+'S-^TR23O]=VT+@Z6/E?[#3)OH+=U)+.PE5 MK,I% HN>+N3*Y"EB<5*MY#I9**SJBEISM=*1JB)'[<[::RF .S$%Q5I+6\!* MFZ@D3N_2JMJ]T+QOW[QM:)&E*)RI#^= MC!E)?UJR;K%WVQR]V^8+'6Y672,Z#;6G;MTF,5> O/]1==XXGZN,O%'-&8+=DG.G$C+P;3#>'4VE3G6D=NH42JS%BM MF&G9.'HU[#^@L50C5;$F4U68J\*N ;77?R0]Q0F9*S^YJ1&UI\7S\^.JL41" M93C?NHG6"HD6K1F=^UTJ M6V QKV9D+3=N.^L_L-^0FZ.?W1^CW"_M;>29CQKKRF8EZ:"_:1)&QO3]U_O;J_.+DB+,:SW MXK:NN,/\3V^TBQCV\4&V-Q$\R[W+B[M-9,3U/7*?$3))B0'M_X5;@^'.<%Y[ M,*S*XX_<[.>69#Z;@SO#)9?!SZ]V9)@7_I+8 )J-XN4--OICI^.Y7O",ZU7* MAJP(6.]!TTW'#47;W0V8%AOM"4P,4T(.QCK=V21FA.%)<0/)V2TWN%,9[H3G M][_#6X3'7)36@Z?ML+; M?7C"N9,OU#/>AYL[6CM\.R"]' S'6KKO1N_$T0,L 'OG?X[<&,WR;#,AW/X M[I$\_>BU!D4.L@'JS[J[\3:&5\:1&_).'S)P%PB?Y#!:.BZEIY>.T=F]A/".M\FCFAV887IH':9(8@RZ%Y1Y;4F\,OQ(K$0-) M7^]!M!I(S];.6"4ZKA)()[NT!HT8*3_@R5>:;GP8>8CR?4]J[1=_B6L@]]8+ MWAKY() DV'D">+?6#11%77=GFP&G^A44,KCCKY@2*'KXQ$*)(]QV\U_ PYR5 M3G-_:,=@&XF+0][/TK MV=8-QDD3MP)%3\C<(>DKT)N^1(24\"*F12@3U@TMM-^R82VCNPJ]([PUFJL$ MC^+=#?T1BDG]L=MH<+B5=N05&>M$SL72IG?_G!?J[COTDN^C*#0E;L]L!,BZ MG>JHE;MR0H.Z,0U,:3Z!7NYF,5"+,,6)@\ M1!J]8E&W RT";@9XC6GY6A+I?:VOP:@SW4"F4 &^!O9@+K%:X.M7@#)8TN\, MER@X5C"0()U1I B-"+$N#6 Y?KRZO*7CO[-R9^#$#.%+<_51U^YU0\>"/Z,M ML*R,VV\+_#ZAUE*99>RW3Q0QW7$EK^$O[^SWW>^[WW.^YWW._YW[/_9X%:H5>7^?S M4FZI.4.61LWG%/%,)8:@SZ-%V#R[G.\[,C/Z#V(!B+T+)]K:.7L,Z#'B0.%N MSON?T,/['U/71>Q#,@FS#)3$Q)E$U"K4_%GD5OGU8E9*!^U&.N.+34CU,U.> M7="K$@;U'A>AAO[6V[YUAK/[R!&*#9SN'=?%I%N]XW0F'B?K_HJ/[HI#)"U: MG7=. R$/8<8M-_^Z_F.G;Q_AC@:2@5/3-@!4&H;435+3CMGR1> M/" 99770TT%8Y3?*JAU4I:2G @0W@O\K]/]' X0#503Q\W,\]ZB;/>M32I82 M.0L?]!>T(G^\-%K3S9[[)E;K[;E';U>C[#XH"K&!+.@5 M >&M] M]?/%9 TI;WV/>2+ ;,II(D#'\+KG?CWWZ[E?^]R/FU8X9>URJTSR)KB=) O, M](_.JJ?&S XXRB.'BU=_EZD-4(-#AU8R&2&'%X5X1"J'K^Z(#.[O([Z^$+O.8,0+A=7W.)TEFV,6253B M \D#5];(2\1#Q#S752%.?O'O?YTKLO*W@[3>"( ;82CU*Y(.RRF"/LMU$V2/703V8G(0.>D &<47BN.V48P9R,*N*KG[J MV'Y*%M<7#*=S:WV^V17"^YH%K-SF%I2[ M,9_ .+'L5]Q]U'JFC7&/HU2E2G)IE>3*S),V/QR6;3Y9PA,:($D6N8]81Y1- M)E53),MF^1\+'A[IL4Z+O$*2U?_TFK:BOM*VN@MP^!.M NJ[LIR<*8&L$E=I M,DFY(VAZA**M[M2Z2F0I3+H8NPBNUC(DS>MT[, H8/J/E4EX \QMO:%CK_! MC>,)S@&S\G"O2/[CB+46IW)Y(K\*^Z/!]=,[<>O4S99*TLY$%?_#[F5/L6<_ M-5#AW!5B.BW5H+UJOF/W1O!5(:83UEHV6:G)=]%UU.])_>1)O8@8/$[L..9X M^6^:#KI.S#^:QBV8?B_RO,M-H6 >Y*_*XCZOWQVJ:%'M3_$1, M\8Z0Q1&*W8[&%CME.1<5SU-6\2S/DZT'^IA_IP]UJG3)TS)B;LN;ZRT\G=-=3<$_!?2#[% +9'Q"\63/(G#7' MU5PDN=J+M 06JQ_-L,(NA]*$F*'CS8J@J')IKKYB1('/KRB:9(EAF34E71DL M%DW;Z<>"ED=ZK#YPW9O5O,WJCM#&$8K74XV2<1G95%8,3UFG-*F#Q32O-NS( M8GP]Z1TSZ?4!ZM,*4!/F2":$AWH06XXC+37;?L6,[UFS5WTQ=U[>!N_CW<=RJ%,-NM56KZ4.=*I&>:F1\5&MD_,#J M;<+JUMT@>T!BXWR)7> S-Z>=EP(".;[D6(:^"K3O[EK6!+$R).UDP1KPEM7F M;./JE]TQ3"T.4YLRV-ZT\FB&--;ZR]H=?XGLJV0/I8U M_Y1?@/[8V!TG146H4]5GEC3#!\5W+^12\)AUIJDLY^7I,1E9/;GVY-IA9N3ST5C.96/U[7-GR!)T=9-47&>.@FU]28C="(JT)SLW5Q9-INPDMQ@MJ@IY[RGKYZ^Q*>O,H)MRMH::3:OJ4.A MR#36%[?'8?4/S=C1[';-,*QGS5SV#=AK4\&[%1NKI(^QB1=B%Z(@NFB)3GSP6ZE2"U)P*:6(< M%,_%;/C"XGFR&+.+Y]+MT \@@.U=8ZL84#NE_-B3?D_Z(I2=BR;^,NWX1?7R M\T4CIN<="1*O_-EGN%>Z1O@Q::!N[!T_G%E ,Z?C:QK$4%$9SK>NM+)V]P;: MJ^<-G_ [ 0^7S7*$B-<%*L47A$P4"'RIKJDS-$7T1D; 6/X(X6T^ 7)FDP+QVNT((AL(%%OR. M+6R,M8@R,F551B8#=9Y7:LA^<8(@8<]0>H;2,Q0&K67,&N(LGZ[1089RR.'S MQKVW5J_D#QJ< O]AI3^%_D,!]&GWB&Q]&=YT(BJ'XTSGP2&5T?=_DV('VP>: MME&0>@K@O?6"5R0L+H#U2W09R?>JJ>0?,8.(8XP'92.(CJO9[480HSXDK4&<.%0IV:_ M2BM]#;]&YA)V<(_<9X1,R=V0,8H8V26=9(5)P)>LG4U6M!'$1BMT&H'+!)##0[@0PYO:+NSMY:#G '= MPN&I'DMK9ZSPWK7MUM#AO=J#IIN.&SIEZ'8&0"_>X;*A#D_M7) 3?\)JR=L< M2H!)&+JP%WS]-@**^Y,*EE>,,?CW67YC_("),'1@'YKTE)+<1?N:6A2W'G8 M3?SIUK:>]!4%]7('2P/V[B&L+0$,)H$1 -M<$8P(L^P(QV9EER\9[%),/M@. MTUL:2 , 8=WR$.\ZD,^"PTCX2#>-FU%N&KP8"PC@8C:P=^W1@E=; MY$'0JEWR(6&/!'D&TAH_!2+GE8I!!(JPMS7-? UX(/YNN7O<&?!B$.Y80F#A M 1>.EIH#7!=^[TD"8*$@ZKPCTG>M=C;=,/P*2ZF=:X$DB,@#":2/;JU@30P1 M](+_B@4AH(R[295(IN7BW^DVANW.W&%V3G@_%F^&9A*8:P: 9YBM@/IU=N%N;(2D5Q 33MP>BCFY.< , MDSK2EANBR5)=%5B"K3LKG9BH#OX!<$3XQ;-_R8BB^EZ[@$_)@3#6P\^QD@B4 M]\<.V"ZAV@.4*N0 ^#[1"L#.$C&+L;LAD3P'6..1:-OEO898'_MM^D MM7,-R_H&>O :O@D6H:\##>E)TPVB""*L1^&C_$!6!Z35"8;CA4WT0';UH[^1 MI;'#2I>[T5Q\;@L8J\\O4KD=)@IG=X^5,%C=^N<=.B0F 7_,5=J6!ZNPK M>VG:XK-&.4G .V$'[P'RC_=P.E4>2!A_L38;_W TE&YW6A+I=VY M"P3_S00)CA-Z=8RHR=]X$,S\WKNSX/OB^<(A6P>3E+T*&6V9ME,:XF(2 0D$ MJ@LFHOM7Z;L\!V&"X?L.PB2SC\<@KN!>']"->?F(K:S,.7\1U^'HD+]P,0!< M3[@,!S[AI0F!2G324T33%)'.G@K3"9$EF4R7B"004BO+5SC1TL5\&O1-[KC3 M\U@Q,*HP[@QIMD@B;2)3ORR(#@E;DT]62H]9)3"K/JR):&BVVWMO4"R.@B Y-1 M%MZ5ZL17>)#6%=E69)3E%^2 6;[<9"K$T=8'DR"6/CTT>1&Z8E%/;>=1&)_Z!WO:+N0O,( MDMA 4Q8 #=$+<0,%'Y'R@2MF%E)2P.$Z=_/ MM@^F=9:>V1J^'NR*0W8J1,+O"5;5'A"L>S&1@Z/FIF]L;/_)C67K?\*RFO$1 M[N,+>K2>T.HL2C!^CXBXK>%]ZUK;Q%>)GR8+GO;W]69CTTL('^<=V/_?0I!Z M0.?W^*/S>X2C &]!CWG67M-H+0Q'$K"#5VC2QL:,[*]WMU>@$)&;!MY[A=FF MZ3H_O=$N8CDMS"DL!7E$)-/E300=\UG_;RB(\I"L!)S5\+ S-!M['74:O-:( MIH1/"!#7@?CT^QT.W@-?QYY:)\)@X7G=?$).*.(/1'].I*3G^[-,XNC3G7"( M"/[F![5I2).ZE[$PD*S[?X'=BAW!07P<6,0W[$0$3J;C&BS/ TH3"+!8]AW: M9!FX8KA XG355SHP0>2Y&D%F25<[SSWYG]:](UV"@>S%T1TO .]1 5#O 6!^ M#VH#<1ROG',_2^+<2V, V.+5O*V<.[ O4)J#W^^S*M9PL[#@]UA1>,3N7^O9 MI#$:<@907[96 ,5+SR>.OB@O\[^ZGUG!%:H M'$ N$B/;6,:*A*2TEZ'T@2[HD("C X_L=2'J["8N=IQXH44-#+_@[C78T\X$ MG-#="+9ZP<%+.?TF/'3Q+:CT[]]%NBJ"P)P[A'2PV4 M#']Q/*/60"^T6M#[;/.ZQ;%/DMH'F&XL233),@.]A-)\"RRF@9=Q$]Z5\QJO M-&?#R8#S2W\Q<6ZUUSV[V@=)<=B5!$K6@.GK79@W#*@9$6CU+([LH"T9*O-TRS>+9?:V+*?&*I31!V&Z2$(0LQ^E.)K,QF709)(>T0B? M8C2,I@['TX$IN\,*7E2OI*GZ%&3>1[;?8 =_%LE12]SM/I,JFHR,_Q-^&3/1 M,VSYC)H619,3_+O[B&-=SNWZ(^A6"+T''O/U\_>7R[N;3S]+'Z\NOUU]S?1HB7-]9MK4MV#[!>#(PK4E:,3]; MH4LLZ([[_6>X7F3^ S1_]/H+\1W^_LNG."NX! WZ=OT%:<8UB1)^MK$B[KZ& MF/E7G*.#/EB6N^?I<[64Z)<'RBAE_JU#5H9G0?-]Q!.M0*=9ZTN:1?,,7VTL MK "O03!2)=F4Z*$D>JJ!](MNFLBQ7(W:'A38&Y)\3S)[K'4=@$]CMB7A3EGO MK9_K0CCR'>SX=HV=!!A"(6"/4W/!'N&'F[.+A1R7@!+YAIJLU(\)!H-9$!#_ MN3->?1_SM-@S8=ACD.#H#O$3@"V$A0>U2;"W!6YST!@EO"]V(R1C[PL"ZM:, MVRVQ0 &0]Y%Q,3;]^G>+?!_RBB MR207"OR4M6*P!T:,R &0QNG8FY+)6""1,1Z+]BY&HA=#'14F]F:2I,""J :[ MQAXB1$>%#_ *QF[E)\"B]1HM:0HP1?']"P8T'SKP-A#W&"CK&KZ+1DGJS#HIGQG@>[ZK@3J&M'N M@9R7P-$UW0RR/8@G#KT@>ZD[]&WT+;0H!3@RH+.USQET+0E,4=@"Z(@X8#K M_B\B):@Y2L!.<[#WR7L>-!TO]X^L$FQW%?#T@9Y,:4/Z-[>X,[PF12Z,:C1O77?(Y193 M0+[^S$?;F$\79;0->3&8CU(F"S!H&T&*K8^F#K*)DQG+-T)>?5<=$CIC7L M'_:\J_M+65F($KHG0BE4WMG8G^\;>T>-E38PWVIF/(/Y?5D MI]$W[WWK?4$A7U"Q*@;*U(F3/)1B33P!-.'\$2>9>^B)?:_JR9M,KE M5Z!0H)G_@L=6%LV@O]H KGN4L0^8_^<.Y!Y&*E#/-8I>Y->?0 J2# ;X1!G@ M"I M#=H8KT/IFDA9G$'_GYKI\R1E[]?7S/BNO=A+9-N$:'\!A?/5T:,;(\<) M=,@T*UB*D'%E5M%G-/ B^SLO M= 2[,*D62VNL'2^ND. %1/_#W^'\..=M#I5@1R#&2_?WM?O[XC]N?OLP_WIW M?^+"/C8;$8SA;3[P.3!9#+@)L"(/E_VC>IF(^"8$"9[ AO::(X+)%A M>&D0Y.]D%W\_PWD7T2P*?YM[XLEN.3H:SDC+D\AO)>^ T_EP)(\6W^]90V:_ ML;QEY.%(G8P5L@SC"I/OPRUM5>:%1L/%?+10IL7V$NQ?F:AC?-$QB%8"BCJ< MJ(0=/5UU%JFM80BRO+=GTP")1&6D..?K9,!70D0O6?2+.E:SC_ M:L^9R7VSHBDOJAXQ4?4HE:H3.!W2==*0@NHVOBMLI)O!1]031CX)8[223#C( MHH2 H Y>#0T$Y5U0@0[727ZU3W_+BV%FNQ#!.'X(HV"B\[?K=?Z^-[3EMZ"I M5W'^F-8\"I1N\O\A\!QYK\?5"/TK7]>1?B >+[#IP?AP?DS<0J;2ZBU4L$EH M*G R81NPWP+"@?>%<]LSB)[4[-&H9>0I<.='Y_[?W[:[VO*0D:?_LH]:8O'[IF>V^PY"0X]/'Q/MV3M./_:F1@4EAC6 M9Q5VQ<-AHKC"G !&B?]UG^BC+SH@L#-ZD=MB/E(7SVW!)\X'VGJ'?ZEB_TT\ MU/M\^&R=$^U?L4QMQ8L=6WK$>.'0;%6-W%&^DO?K#KNIXG"L.L)GW'#0P1Y6 M1=B;XWF;>]\H")N+N1:#RQ%E)5_VMD?9K#O*KI9\,T=D!+",=.*P4VP,N]K5 M2M3>G/F*WY;[IFVJW@1T2%;_[ZB-*K]\LJ3CU:1# M>'0V:6NW-R"F7(+QK&N1.&H7F<)Z(#X*/3CRY#M-VY)@[U.CWJ/>LMV-S MT9FYL,;)%]P];,=MP]+HZS3Z>CGZVL>>B*?*O M53Z, 9)B]S+EB1_L27;VQ\J4;#/-B0^:93CBW$(.?"DGQ.Y&6G$$@?FEA+CJ M9;IC?*/EB$1/#*EZW"G+S5:G\FBD./)8Z"WF%*K%;$&LE8*\*C$*0JB>R!N- M7?6O'ZW AI)O<'#.H(ST:R M39MX7]P[*,7_%4J4H],L.GG,+2T*>38Z?HW&J5&:""PIU3=4E;V757FZF#[P M^JAM? JHAG 5P^)["L5!CM1J=-^36/:IX!2+'!VA',2B&NP&D9,+NX4-'.][ M E4@6K$FNA2#_"G"Q/6"M%2.$YB=V7_1 B BLGNZ6O$ZIT,!1#3Q3ZR,IPK9 MYLA0W VY9+/@53=PE"M^VI4S:%< M*6X:!AI59W!&5:2[>,R[>#FY^KTW!/O[LA6:[NF6D,O/05MZ/JH#H9C;JW6P MW7HG<=.OQ;_IUP[C/F"1R^P,UFKS-R(%@1@M:C) M!IER?KV:$@G!8N2^Y2#?%6P7 8,J,2E&A=HJ:]O]NHTTHSL:5,Y;T>EDIA.# ML(KQ6(8:?IOO'ULJ&YN<*Y,TMP$"'Q/'?YBA#E,VDE[:::+%%^%!T_&.SGA) ME@-DMB!&3B\3@^)E-Q#/[19PI3!ML*%'%IBSRPYT MWAV#[=.?]F"'I;[+M"(*?='V.]455R*4Y[M^GU;),;Y/C7!^7&'#S;> M7^Y;?2X$Q,DR$F+O$Y >Z0E[\$PE&7L"6WU[L':ZIV+ZBV0(8?HJK=;BO_"W MU]G+N^:[K=9@HL/-6/;MJ81-E,XNB]E*)L/.L;@Z7,E#)32&;"EO,LXX^V0:+>'L-L((AI@Q3/IX"D ML "T-]D*FY3;]5PP&YYSVR>5Y;=:L6.Y K0K<0_;^B&M M+[3Q!;8PQ.:#@ 8OA#9D&^H\:QB AE"Q8$@?' ]=?#JVVPWY:^WQ%\K8=&C MLG-/-N.LENJ&QCN;-6\TO8N+U!D_&J1.N3(P>UG*N\,1@\X()KIYYT33Y?]JV&']#LC6)5/MF8S. M?,\[ENN .13J*F4YTM@C.Z5S![O7-0:DGU'_N=QMDE;=^*)E<#MU&P$WY[+UWN*A&]VN$0W? M3.9VI]]OA4[_ M0[,K7#=O6NWFM=#HM/O=UM5CO]5I"P]W]7:/H?1:-UP2N.OL\HO9^5K0R5SF M3AQ#>@8X-P38B51AMM"-!>P_Z(_O\1;R2(UOYX@\Z/^AP2;8CKY+GHFZ( !' M(R*\PW_/,Z"( [B:7;(!S63$+,+%TX IT@)5+-#Y+\Q8R I_N*P+1-+Q M*,+("-B''D9!O@\)GAZH*M:>,KU2$M:2@8_9^W!<.( LC$[ [0F?21M]XPMI MD_*I](W8KV:MZ^?T1CR/0')8HQ"N-$D?X2_70*/A7-,-[&4OS'3M649/&-@0 MPPG:S>[GX6"MFLO >Y4 M,FHXQH'W<3S4KZVI2?JK\Z(Z)6.@W53=Q&XJY NK["8QC!1B*WEU%$I@U]B5 MMKLM212MY3:B:"Z0HB&)&>ZRJ D)N>7SJS6O.3*(I'CA0"F0ZQ'C"I? !V&H M@:7R!F0B*6/S'->&!>Y$?P0N@<=]@IM&VI3R?E^27R25 LU4&BUC%8P![L/( M;OH&$UW"^G#W:OU%[<.U?P02-?6#/VNCU4-@&S4F[E[L X& 1@ M(TB)=Z=()I5K&VT9M>/:,5:Z3?<=\D>-YT,:LRIZ3ABF=&7CV\KRCGGQT$9L MD/=Y76M69LI&2X,4EXN3TC3[?YN=E^;*(1V6B"'5E' M*[*7$7JMVW;KIM6HM_M"X['7[]PWN_ Q6I^WS^<*5& M%8$%>\,)&2T4TAD_Z-IH,9RW5 8WP)'4[^3#B.+!O2D^C-C'VJ2TT"C:7L9B M"B^![PVJANG<8AV\HBV'TZ3#^H7SBHN>R:@SZQF2 Z3"B@Z["5=M_G4\__IX M_Z&<;_[U5[>8\_DS""Z@FJN=?@'5@+Y7=EA[I9"MUJKE71>%C+7"Y]I)Y;*U M6J64.^)9^68BFZU#BG1ZKG(2E?U7J32W)-C_P/! <(KM4"^7+9?+E1V8=9M: M<&;7]D-6&/>>V8SIG[T<[YU=8J*_T(2ICYS!8TY%P=60WMZ_*5/X9;Q&+XKK M(Q-;U7O=$_A%K><:E/$7=I;'AI-A9[F>*P)*?QZZL"\^A(D%]R,'RLA;6_H= M"_KAE]X? ]"3L&W=\,#\XH@D2X+*:#IQ/L# P+0A0]E ;U?AFGJ6\]>"051# MT]>4 ]D_:?8A59L4!0E#@3S(FODW%RI]/!PMQ'T085V=Z>TY8%4MA)"$R*VG M1$Q=]58FE=E>>!2K!U.J"M=U=92_[C&)\O<(\Z/QH,#4BABU@F.^E*D5O;F& MX0I&)V)Q0ZQM;*)Z*+"*%VSV##(Q@$1\5>BW XO#5EJRSY=BQX]T!>Z@,.S^5<5+H:4:,QZ?A3K>E(!MI&A/KX+Q:LS)-%SEMU/7 MYTY#:8O3%W"*ZIDM"H"L]Z8@])@<1%30HI;D*>8SM:A5MA.EA6V_>'&R[2GA M4*SXLWV/C7TI03N0TEQ4,ZH :E"QLD)*HU?,3?J6<1JNLDNA1Z8R,!H>XFMZ MZM]*_5NQ$B&I6M1.\)EI42Z!VLXZ+4?U;A4RU4KIM+U;1\/C;P3JWJ@V%INT MUPI1*W^+I4RNN,I42IU09(-&!>[-;DV$(0X8M@LWT)\X6NN&((3J4FQ84#:1BE)SN#R4"(9 M@1$W: ?FQ[-K)".IVO7&_L>HI?EK^4S%I^U7)/]C3#"SP8J'7-W$ ?BI[E#A M*L=[]>GHA$@0!X3KR1Z.-F%.Q'=.M&A'Y?NR2+S5,=> 9+E6B0B2E5Q&%#=U M_X9;[Y/@_'76B4_[!E<5HN"$SDT3J4*?-NTJWVI/(^?CYY6D#**0X=Q1T6J[ MO$S/8R_-TBUC>(!@@,P86*E@LBYZ=$!K?F*=E(6.7]\OE+E\ 8*I\$B$WF*& MO:'P]O_YL5JL@LK[[K[;XS^? \@,)RH+4V!5@4-Y)N]UXPK?O)53,FI5X(I/ M_7;!K@4%^_B8@Z*JSH7AP@ 5E>A"79"& MM&4*+_T=\F01G\F1H4WF##F^-OA#/=4OEK[OJ,0?:SPW\AXNTA,1 WO\N/:] M?/@V+C[FPD]F=2=:C,DL+F#0&G2LT\]&Q/1+%PUWE),<\E9J4;72 M9^B&2,I.J7I\DN>?&RD(##!NB?:D2S/0V#=3$=J:^AA@04=2NW*YB,I!U:=] M<,K=I\?=*\KBG($Z**LNYJ=NHI4.Z90O3H,OSFP_(.> 4(910G"O5HR,>UXU MW98"6J]4\"@+H$=*L0+,@M4J]-?@0=0S\1/S,J"LB$8$WDV(Z.LT%L, M#*0WK(V"]>@5JS"TSTM4\J3!E?"2# SI69.'M/S]B+5FE%7A,=O+"B,LNZ>; M-INPLC=5'.=9.Z@4NN;0*\684\&859V,'+P9H6XI1Y@;X('F=]:7PK3%C*M7 M&Z;JV%4NH)!IK9A/8"%3\R0%BY4^6?- @) HM)B534=HQ;"*I\8O2R@03\%0 ML5"XN?VKUGZLABL8NKY":*V6+?F6"#7)FF?A$ZN)%V_%T-SF%4-S[LRU6B5? M_FE%@'DR0KHVFI68S14QJ2&=5-(G53M%]LME:]5R(7=J:Y5.ZYBFE4I6DK*@ MXBK%$\.VO<.RISNLG9& 33 Y)6ZQ-'A!3$!I<+/.K5T]VG7R&JD\M%>CW4'5 M6%\=^.3*0R=%?3RLY+BHY+1"=GYXRU1+0SXR"7K92\20?;"8J8 MK15+!^>3[2I)K\@WCT$G"?OT&+T,EV;OP=YZA[0@I$#NH M)8,&X6!MFUK5>X2WP^?G;HQUE5SDRD#%C%A85<1@D_*,Q\F\Q^T:BXT,;3*? M$%U!F_XT?6'[K&9]K-/=MFS?D2J7[;L- ;>:BUHU)I^I^#6/WFO1ZB.!WY@P MY^BF&:0GL>B-K1M]6#5*LK52M;:2*L=18'%CZO(^ MN^V)UT$U2F@N=&U&4I=?ZO+;L?YUZGX_*DY,FB*6R(X*]K5,N5A+W8"I&S#Q M^MW&L'@RJM^VZ% M16WO5LGD-JYK]U8X_HC\9I="8R*KTHF&?Z4NK]3E%:!7 M-=H;%THN1FT!EPV,-(RE55@D+JSCL*=%8,FIRWF$^&3AL4O4J=8ZA1[ M4TZQ3]V-3Q>KT0-OJ[G]'R\>)0"G3K'4*19&7=I8?*NUJ+93.5.H^-103IUB MJ5/,(MY'"1^3.L12AUCJ$-M&*_OXL+$5'#4ZOY01BZ4TYBOUB25>E3M!GUA( M+6]C.*B(4;6\0D:L^/1"2[UB;\TKQH+ZZX:<.L52I]@;7'G64K)MZRT*J6*FW+('> MLE]\2AHFC"(1G"[KBS9&]*LE4'VSVW/<:4/:8R3B%A"UJ%HADZNM*C-T+&ML M;S3')0"GYGV(4&DY.2ZX8U(78T*.BA@U,"V?J516Q4E$XXGXY21)ZJ4UU-KV MOKB:GZ*X^\GVW9>0Q= MXBBPL0_PF6F#..>+]M(@[E_NWM.[5;@V8,9$*L\;1P-&W>1JN,L=7#_>8+F2 ML>_%M 4D;3*>9:[317A:,AS>$V\5-T0B4JYJ,GZ ME5Q&W+BP2;@%3"Q[KE.L?[BX$/XMCX4?C,4,=])[V:!3(*.&IBRFJO%_EU[E M&YX- [1IQ.95*):SA9D%O4AC I?AVSS75K+YV*^$UU:/GV9.JG7FV2%OC7-\#QMWRE3]5>B+PW,M2 MP9(8A[!X23S1S3LGFB[_%QXK*7= O2Z9:L^.+M1N1].RM6&WT/%\Y;G4:\1; M7NO?WD]TM@C.Z5SI1/KFH-03N1C@1Q<# F@)%)"4%^G5SYAQTA$]2?@*29CH MB,@_]CN-LTO:"QF[D#<0V]6Y\=M[Z7*)[^)AL_A7,C">^B3C M:N"O&CUPX@\SV\W3M9IK I&&D^5FT/_S8S4O5GXU!&U&F!UF9(4HK;21,'=CNV16QNM0]F[Y.!CU@5(?]?#@J/8&)M#GF1K MV$2PWP[7+)G].\5T)4]D)4-U8EVAR:XX'X\4>[Q[YY['W/EE#4LTVF/K@(2];$NFDECIEX)2!$[?4D?,)7?_60B^H%=-4#!%TL(M.WOXQ@DDY M@XYPNKSW>>R^[6Q '&>DP^)]'!FW5O3+;FOJ<*'KH&4RMW-@C'?47K+Y3"F_ MJB9.7,D^R9.15-)32=];6$AK19_HD#)>$:-6@\]GJF)<[:*3*!:[,(4C*BB[ M)T.8)H6I-9% :V*_JL2J_EJAE8JH\6CBJM83)VH*I=*72I^UR</4P&M[F3;+G%8\ M4;Y[,S3V,\TM#8V=YM@=W"$:U\1C2[9+NAH45>?)1^^W5"I&;/^Q]>(FA(?W M[0 YBEFEN)1T7-J3?AC9UQ/U: <0J;RQ.IA@*.K3%6G#BG0#,R>YM*[3%'W2 M1I>2G"YWECM*,P1ION*V?/?_HN2J-;3I5)[3)#HP5AITRD]$'PM4<'FX^0O/A^L5P$[>";M M%T(3,&<@MMH(X5)Y%21 ^3%11Y(Z%V15F((P$D615*(M#$&17HR%/#G7\"M-M" ;,7GFGGZ\*<8=C&! LFO1A9MN*N94_$>K?8 M K':4C[+@QG*8VDH*S+&(PH&[.]LHD"+F:Z-%D.>\FP0_5D>$N"#%X)IOFP, M6.-JJLKC5WXB,)-@$\:+6$HU +PP7!BP#\,29-B2 C5G2'!X,5]=4OV!IV:/GKS-&#L;[6:%/1T>'PK+! MI](K+"7L:W1 2!0Z2YC4RT0>3H!T%HUD5O20/0M9'OE]*HU(AA)84J8:#)J5 M!V#/9&PM34$KFG..9G<#I4!4#&S'/-1P3H.,5*77CI5/HN3Q=3N *+ M!2!/VX\BWV=TOP75;X03Y51WC]0QS]&"O@ ?2X<&*S&186%!YN%I,T 3W7^B MC'OP/E R_X&G +=QEAK*^G QY0L-=S]K"CJ9@'8T9YZNZW"A2+H]D*SP@;Z5 M(5<&KGDUUP'I*(_AP?"Q.X8*?\4&%9?%W MZ7N!ZMLN)-R]V=,!)+XNB+O\1Q!&GEV6;%4HK0L24UV07?"@=^.S; U.B4"[ MV*Z2R/C,<;%OE:Y2VUU5SK.L)@!G9_ MU;B C5X>^W-=!%ZQ1YK+P4A]><<:N:%=#.21?.%:+4Z\U15$SRZ[!.MIH1"T M8'5FA"Z1T"5/L%\04"J%A\5 5.U/ASB'HCP?B/K4XMI!\'F5BRS7#GX)0SW M4R"/;EE73K@'RAJMK8.J.>H"5YJDCW#UKF4==#---T)1XZB)T'@=$+TS R7' M .369[PD:_B)N\'H^$@Q4 #2X+M[656)--,4&70M^HNAS:4-Q(']]=E18B#( MDJ66%7=$(O=[9!7L#SDV? QZ>& MN S@SW0Y(BR'6X]ZNS2.0+HOIIM@,:+6*;6<8:\'TTY]I7X()V\/) 6M3L&8 M$,(\.P%@S'P?BX$!"PV:)6<8IG--+:%/#<@NBJ\;A&J0E N=&C&OPV^ R M@X" 5P-!T-* E68.-6-8P'NK>'0[);,X<*_@F=P(RC*=. M_112-MUP=X_P5Y(A,V[@6V^*]NF.FLP=E?FZU\,OGB=Q/)S!Q?( #Q->ET#5 MJGAJ'^-DA0Y@_=)=,CV1(-\1TQ%(S;W UE#=CUL_O(%DP%?I!P'' M0T@484M^@W@?CY)&(( 6_S*F%/H3S7!^RR4.+@%5[P5T+S &*".#$H:J%9,1 M?!4*G3:@AY183EE3J MDK$>R$_=0+'&(TD=;H-1T5-(&P;8*: 31- .RN"V"7.#=\$$B?H$H$N_Y%-$ M-99/D>NO>"ZJJ_206)WKFB)H@&J.&>C4P0IPEQ7J!CV<,\^)^:*\$ ^<<=+! MJ^B)'%T!>A0[#O\Z80 4QBFBTD0UY0589^P4F^\3>)5WJV '^V"=T'/N@.UH MDUE3CH,?T<9 HO)-2M7 0$3-GKW>@X'[].:& P)/^$IXD%SG3W+**"VJ;@D5 MLT^T(1GAJ0TS$PT:@8"Z@VQ\,P(%PCK[7B=;:R0GXQ3RY?$@%C!E9,2V6N0Q M.JZLT,/U=5QLS8U\!\JI\*@,- 1R9YE@&SAR@13Q)E',=QOA5' MP^/>+#MP[1R9VL2)+"F&YAC-LZ0LV-&UZ?[P&H8+5(>H5P/8AA[6 X%AV/*4 MVH-XD"X,7AUZ6@;M^1<"%C7\O_0*E!:TM;D)+CG-Z1 SV>,^PB.%V#H[4 LK M^\,ZP=HY 'Y@66D.=T0$P4[-Y(@+UD"M^ZV,((XTP[5=2<$&HIOD*-'QUPK:I M#H90'N;2-Z+B+B>!'J$I/#"/Z[7PG@QNC([!\4W0GWLHPV3X_H*7&@249@RR MY ,SK)'YWH^;C^K8HN/ "9A;?[ MV;X4FJ@3;TRC=ZE(T%XQ] R8J4?A&;&W _ILOHP.0RMQL MG3'=JF2-"22+F]R,<&0\QL ZIQ8BC48ZM]SM# MGS#]UOUC/X<,!L0*C\YNL M**Q5&+SKFZJ]*&3T! ,@!$@>TG]\?)%.84+]MDO,*V0+\,=J4+:\_[''8TK= M_.MX_K7VQX<_*W\^7I=Z.9\_ T_[M",-'R^%"Q_G(=)I%/F&W2572)N_>+JY M4G (-/N;A;F+0:,-%%:?UR])Z2H+DJ5XNWFZKY/!8C@A<^&^][/_D^V%5I_[9E^#S339FO,+M>,C=?I0%-\ELY/+ Z:5^3K&=AG6A']?$2&/.#U A!K M^ V/3)&U94P;]5[#"1CX/5\;Z_NQHDE6T0-,TU:D5_P:!4GX09[B&2L0EVV6 MU<*O;K5M#=.)5;&:K989ZX7FD!BTZL0QSD6^^(99IT\,,_";F>AS=O)/XZR& M8%=+0RLJC7HH%!H7/I+F$CL4Q>@('9VT+)[-=BG8SH&LGT&1XF6*E\G RQ", ME()F"IH._OEBQLY)AB&S4@R(D9:/F<='<<^T Q+)=RR

IS< \F.K*]SF > M:VKZ-W6BP.5.!R? +@9B,/^HZ?MVN4GM:*Z@,& _K%YV2'I"AVV?K>'TO/+C MVZ6YJ@8;"QAL"^Y@!Y)I0UFRB]6L<=WBZ:%.GF7"_,FJ*V#'AW*.$;C&2C_QPY'YB=FN,18'VWYK)(> MT[*C5V>V!LL.)(YT%-SS^-'@D.>;$GO?\T7JP).+0[CE_[,PYO+X-;%)%V^& M%.^-]\(F]3A'1/ZESLZ"V_"!56@3._FYZVQ>77>$QUX](]S=/2Q7M=H?[>T8 M^8V)OWV@NYU8C@7P: E\IUS_;%C'ZJ", ?CD>,[^/?5?9*DOB2YAM:V2HNK M!I>;+8K("<$[B7,Q10]2W4JZ--7444:(-XYEU?E8,)+:S+;R_GM)!_U'9,4+ M\@%'8@[9= <9Q%.A^F"+8'3'_GKO83B, /J]S.\_4!Q M.5O&ZY?*FP;U'"AL)Z8@G1VF/H0+ .+$7A$'M/>ZQB%CD_VBZIP*UOJQ2B9/ MLRK&5YKV#:ZP(["6-@5SY_)PT$(W\(,1&4L+!=ZL+>;XK5;[O-YGVSW>\)7UK]#T*]T>@\MOMU_*#3-G]MM6_I#3>M=KW= M:-7O\-;&7:?WV&U:2V='GOFR6LCE.U3-^- ,VX:%7F4N1&WU<.QC?/[0[32:U\#I=LYD9 M0TS3QQS65Q:/RIS9F;"4HE5$K"6@]?E5N($=/DK8,X1U@T+Z+R6K\J>S=R^L M%"8V #/G%6ORH>*I8\H3ME*PB>^B.!TYUN @HPP;GV'@C\9B"H)%TTO8B2L^ MG!_*\A?2Q@R,&@;+1Z&)1)@QZE<*">=C6%FTK+R'89?9P,8IWY!YJ;0L M79_9;/CQ,O9);OGAU=A["[I^-@2SKKXJM,S%X H8+7OGP*JNN1CI6D2$'9OP M3%!X9426X8NIMR ULC$QHX>FV!E+HN6'!&D$:(\GR*%%AJH, 0I0H(AGZ$A6 MU4K&8VUWO61GF>",\_#LG)4R"H]1-&V:;_Q<_3/#=ED1']\:;>[R2SI19,DN M4>GW&C/DC 4#6WJE;_4+NC#?^01X93+?^G0T),&G**]_D:9WM_7ZPWF*:E$E M:4.^8JJTP8M^X>GBT*QYN5PB##.^9[QO&0\%H7)(5#/XA.FH!M?+W94#1P1N M5#(\'GV.NQ_5-VGE:JRAK9C)^O0T3!K:$7^.[G:6JL_[L;MKV_W*TLI7R@2= MBOL5M'0?TZX1&52"4H99;JQH(.KE803"A_61ES.V-@UO(?*,9X#3T,J13$\A M/76X=2S;Q8(C82*:JOA6/9460O$<_'74LA$$*(#. M*MX S%*^YV1H$F6AFN.AP@TJN-E&<&&PHC=+;0II+3*VCI0\ ?*:$670G<- M([,)]6:&N&!HU MK?]#AI8TH2BZ:U2XW3'XI@6-U38-;!1<9_427N#1Y&_N94 Z#0B-KH.!FOK+ MP%X,IG902,$JL#)?"8U;P,P'],0KJ7I"GB<.(-=T)X[CBRFU91ITE]W&JA-2 MJ=M:V8W%0;+&8;B9,1S0QX,VJ)A*WY@N*1LN1Y[;#\HSRGAU+\1PIBHZO&AA M!P.*"3QC8#=PR.?$0BP\&\V-03V=R\8@C9?-TX^?=-8^2)>FY$73OW%'Z,%& M#*"[,)V?O'0Y+9('*]Q# TNCOIZ._B2I3B4"+^X#SHZPGIQ=\-STYM*=6#9X M(@9C8\?RN]VS&[(?5@&T.26(&9,#6R=U]/CP]>JV^/??CW>UVA^=(SMZO *+ MNO^AV15:[9M.][[>;W7:P8>.!W;\[O%D?;\A)['+T59)+6G\9[3XSYTDMJP& MQ%H6L^"\D+@W[+M"&/E::V2_%CX_7GTH%?[Z=.L+@0$H[2-I+O0R<:J1=<3\ M"-WF;;U[C6%! %K-UFU;^/C8;?6N6PW$KY[0_U#O"P_=YN=FNP_(UGMHLB]6 M09I+^XTA*2R9V81O7J#<\E-VYJ,&5R1-V>%-L<-.E8RY(X!@%X%\.VS;OF$0 M[=I ]O['N_ZG]I_7OE&J:2"[-Y"]D@:RIX'L^PAD#V#UP]O:?WR]^KO8$6_+ MM5*K&I^MO84=_5#O@H[9:F7#*I?'Q >)6//NUZO'5KE4^J/1RL>XYOOPKX@Y MM%NZ8'YTNKV,T/RSV7CLMSXWA<[-3:O1[+)X[T:G^]#IUOM-X;;SN=G%)(?F MADZ8I*EUNS82O2.2O08S Y!F1 )-V[#C+-]T+699DB*T*)^9_'7 MIF*?P%Z;Q[T9[GD6+)^U_98Z;=R';EG6LM-YGQ7'8OF*V4<=VEFL815KN$4' M+COV9PV*S$[6].HS^P #SYN):C"=U3D*UCX0@Q4\IQW&65#+.AJS(]-K9[KV M_=5QND!HZ>*6%,/C,1ZR2T1B/28?Q!Y4>F"$#2TL<._+VOE[UN_==\5/O MXT??JK,)1EXQZX#;1N?^H=GN17%OOV5D]>+IX4\1]X'(L#\X$1B?W'(T6?;L M%P>C"DSIT"OBOVD=FC!F.U_W]G20S>ET#CK[7Z^N'CY\Z5Y7[HO^7O[D;@?Y MK-"#W:#;ZO\E=+ZT0?7^T'H -5P +;Q?;[6%JV:["3HY9A?#]Q;O!>4E!JZ= M_6*'#A_F*>%GQ,V&^WJ[?DNSI^FOW>8=F!#70J_?:7SZT+F[;G;ADGX?IIIN M>;$8$X>&VBNB@B:/H1\'&TGG184]>PYBR,SF#%HA<5A MYJ*&;]"&W^Q&H-*S)"L\P-0W_H@:F[.%/IQ(!B^HCIN/U?:-/N^"E3N47D"C M8Z&;&&]*"ZE16]4P%E1;8[=[;Z%=,*F2I^,4>8@TBQP5GG1)G=MA<2P(-6,- M11

Y"HCQ4X^I/$<*2T]:_(H>AVIG_MT!=JP M ET. JR@5&27A>6:7MT7NADD$7B,J6.7,P17@Z6\OPK<8>3I!KU@WM:L_,*\ICR:FQ1S(=Z(/99:LX-SZM!E/58 ]#/[F!A9:F4+>=+X20ITGH=W=J84A:.?#6+?JF0)6PAWPV8D'VA7Y#1A02D M !K;XC33Y6$J5,D3*K%4S);$8BI5"5S)=\,56Y=.IF:= ,NL0_N+Y^TMF6&! M9I/PCGRW.ZI@JC3/6&9&&!@DBZG*6 IVTO, M@KJ.I(/BB U5-H[!%V M=W=<)-*T-?7"4GS,J VN :'>$XICP_HH$T.3'6@T:R?^IA65:@;&$]^&D!Q. MVH$NDA!.2@+AUO\':%SS1?:4L;SJQ'K.>@-: II-Y2 XBMF/$DI5.'[M=LES M\F &,%B.DWSJ.(G5<9(@'W$R[.&$JCWM]_74"H['-Y.R? (7Z8&#@!J[7NH,YWBTK9>/?Z M5TQ\_ :4+%BR?"F?J8G5C0[Q*AYURH_DYD+G19@=C7IR/P!CL/"=OY]5K*R4 MU>^MAGJO^W+W6R*D.H5E_G?BN7"!1;=Q2#0.;:[Q1"4K'-1.9FJP1";FV.,Y M0K39!$]K(-SU9V#:$D:\S>W'8?H#&A0@LQI9FD&..V^/7J\K??W]JW=QKM79]5F,[S+-2O_)+3:U\V')OR35G=*:Y"LKD&R[2!9_1+SG3"FCCE M_FU] ;NC/:XTF?L$L?;SUZM>]?XO@)Y&P[H*QMI@5'KJM=J/U4+\3ZHU& MY['=K[?[PDVSR?"VU^Q^;C56-4A/@70=D-I5[NS21G767-#*EGJ07JDH@H3> M )8XR]4=H"+3QH@F[ I9#E[0IEK#,Z(?65:O/%-.;%I9OQBIRO7Z]SZJS]1H?FM>/=ZFV MNLJ3)YV_$\\/:-H[L35]0O0GV)TV+74;I+U/RU*K- *'-7OTN4R0S1:(LBJT MX$.ARKK!@KI^ T8&O/CB$U;H,V1CSE7[PT[6JICF6Q_,I8_GJK5>MW33\DU3IGG(PPZAC,'(_[TJ_^)V\XUI5!'H&N&7ZTE MCX+QL6JT\;UT(%W:^'6Y+'67/ $N M$AWP\V$Q4.2AZ5E4B8<]K(R/#5(V?P M55#CVI.O)(7ZW7H30M#_1QUMKK>'# D)>)FG(BBG&O4#^KW')\S$]>J ]\"C M<_S1V>/ T#?#8@YE#YVX,Z+S_ME87 @]M:]$T@T!$6WD4T$6&057-UW6@R^K ML&)=L1. 3B8$%/5G@K6&M"D)M\*,*-8R'XD*=,KKO&J9)6,BW( !E(IO8I8U M3I_,BJ6GL5&\V"_O,W4PWPTO41R5!5-.//!&TM;FK%CN/(R3:,6>L)/@NP,= M/1W\6&GM ;/XY>^/W;\:W:N0I>K?_ %S+3U@3LX!LV-$Y7T @?6 MO'VN%;L?OOS9+W?"R9OYGD*NZLBV".%/7NXCL4-_\O)816^.Z+J=B]?K%3R/ M2);C=E<3\DE3V?$EB=O9 M'_EP;!NX8T0@BR=:@88](K&"2=;\/I$'\ES@E;!/AQ?BL@SV.YLH2WA-6U71 M#*\=,[SO EL;9A+/#+=9:UL36#&SP% RIJ1-YO/9+^_?O[R\9 TRS#YIS^_K M^G B/Q/C/1D]2?I[L/:D]Y5RM2B*[U&9J=8J8DZ\J%4OX)="OI"=?Y_OF'P1 MCA_.+@M9ZPC#%=,3&W";6>S\*=1QU@J+3V]9<>6\@;"C,7L&C]:D M*7-1O0N,0$>7B+DU;EG?%W1F>MWW7^7FRZ@BS<;K3_+QI8JU6.<\BOQ\" M<$]+&O:-K+EJ+B=6JZ7WPU=8SERU4,V)7\GWPH68GOBO1B+.'I?C%TN-!U#+=9 LTJ8"8_*2&S.?;)VISQ94[M2,-)K03C*N%%%?CP=7C91T'J#*R.9%U;8.O'8(HZ*?YK?33(*;>^6&5 M7YW,DY*$C6:X*["MP(^U?.5]\\\+V&^_)EE]+>[X%"MEN&-2<_T9-U"[K7/E M]9!8[%5HN6OX9T/X9R'I(-/*J\\QUQ_6,1>_BI]T?5RH1"@PH*XQ$4\45K,,N_KP MGX5LR"Q'^>ZN05UTSJ-GTZZ#B0GY"CWO+>_8ZEP7U!-%X6$38#B>*Z<.ON,$ M=?10YZKYHNFASA?+N>2#>GIX\@9 ?2UK,O!FUB0%=4 WAO-D/,:&#<^$5R1A M6"46J74&B 7XBJAL;@(?8 :&T&VV^LX"-XXM(6,!>9!)>]SX+8HI?A\G?M/P M-[$D,B'1*&."T.0K>28JA<3Z$(&MT[.:-P#C(3E4Z!&@ 2TF]2"].C3U%WD^ M$3X"HNL$/LX*5T IHAADUYA;B')2(];2^,VCAM,:&I*E/#1HL?8O'PM11/CQ-/15B\7+&4XS9P^S-WH])P]3:&K_ 5H=SJ5/@:%$7FZ 41:XI MP&^ULID#DMS036#G<@J[;P!VUS(GCWZGR"JY,;:W&&BCB?!IH7R3=%7FFN)' M"6!.!VVQ0'&KN&M-=CF(,Z9H"+%PG'%#A\6Z*OQ8$6OOD87R>XF9C,HWE5W# MV\[7<$\U^N+E!:$_D?61WS'1.]Z0TOJ*]X \]SE G2IL%P6S_'1;>?NNMD6 M/K3N[GK"0[W[26@)#]W.0[/;_TOH?&DWN_3\R"I4S8/2_[IJPD7]5J,G-#K= MATZ7-HC><_QY?$&/J<_SZ+1%]B.-WH4MF6[(7S'/ 'MU7* ,?=^'E1Z5E:NI MMGC*VF)HYA3Z!&L^OSIT11.9NU<-H:7".VA<.=&?Y2',IZ\OC+G0 P)* '1$ MN).G\ISG4CK/]^TK'G3Y&3L-FU>HC?T($5R%XM;PS1^QHZ!U M\^E;1V+CCV*A2/6*VE<_&SK".L82MKX] ?=#K+AD%$2,M@0?2C-IB#7\03^; MX[6$EG-N]KH7&,=SOBS,#%772?0-&>C4DLR76'BZ6Z390_8DUUM;D[7S-+3^ M6%2P$MWE"M8N5]RO"A;98R?F4B7L#2AAZ]F301,@L$&S]S26H62C_<( A$+0 MXM\\Z1+VA0'((SP!<*<93#N$V6)J]YX>Z *_)!EUTZ2F-XZZ)G]:L(LU@'1Y MB,#)$%AZD?21'P#3+_:*O+:2D$+OD8G(&N@EW_-FMK_9$>E.5K^1$6<9JS'2 M!7 ^<.Y#-P:6R/;A4 M=EK%H>+V\0#Y"B)WT<0@P*%ES"Z1'$_MAJV)MCL"87="W'\W[;R>^F[VOI<5 M1/%KX:0VLX*8UC\XKNUL6QX4&CA)*V85.QQ.9#(&'9X,%S2@H3.&;T&'?ECH MQD(R4QR/B8_YKZ;3@,07'XP+'[1@PO.Y(@RMV MC9NU7#G%S1-@_P#Z;2' ^?9%5HJ7@O MP,ZFO%@:6:#*$+CTH0A_9G:0^+:0G>-T[^9Q[;55#4V06R74E*31/ MLS3UW%Z";6R00'"=B([3NG!&]]7G^G M9$R$&T5[P5>MOYQ61)YH"L"8\;/0_&CZF*.U6FWCK%8/W3MF*LQ\V9G0CTR] MAJ=EZT-NYL[W6$\%0L!S+\LY:UXK67"BFW=.-%W^+PJ! AHMZ9(I MR-/H;(GYF11?##5%TW\1?J3!$SE+#D L/5]Y+I6&WYYT;:&.EB^%*;Z?Z&P1 MG-.YTHGTS4&I)W(QP(\N!@0D&B@@*2_2:V#+>DY'%%NG)O]CO],XN^S3E:;[ M#) 94)M97XP-?/ZC8]N.C<_X#'U6,A]"E@(M9$ZQX<* %;K2M&]PETTV>M>( M#'DM11/ /*L%A@5^,")C::' V[3%' =D7C_39'SC!7E&8IF0)\BCW\_^^GK5 M^_Q'L5.J=(JW.9\_VZ- WLI_?.'T&<"&#=/OM6[;]?YCM]ES&='!\+H-J=F. ME0! /+MTVH&HE.@$]!;=H=1PVU L(/2)I7>C<\O.LZO:-[\/)XB)IK$GU@K% M#'\>GJ!B&*DP@3USM%!>A:%$PYSF$]DP8XK@[0/ 2Z 3?*&QY($!F4C*&..< M\$$@[J!7T0OHDW6R4.$N^D!I,:?80T99%Q:[4)@C#/"K(LT,H(#YTW*3#Z3^ M=I -2ZTH')!_/\OY03@?U+):,I5'(P7E 0:'$_G]++]C"\!WGW8KF6%&;%*L M5/IIUS;+BA&''F;QH,/T)6P8C75W0ZZ&)>QAA\DI&Y"5G9)Z?\,\9L*&4D7Y MM_267P1JJ2]_Q\$DEZW0V29 -/@';,PR:.+R$)[\WG@O]!ZO.M=&+(-):,>N.;G4#"_W!Q(?Q;'@L_&(L9ZD3W MLD$'3T8-35E,5>/_+KT.'W@QC-ZF ^/(?*F2+2(9&+O^@CKV&;/CO-=B1:> M:W%@O_WP;Z*.Y/'_75Q<^EA_B5=@0VJJMBJ*:NH 4UZY-CH@BO9B:J%CT!FU M%_1LSD ;Q=XAH*QR196_S*'QXI++*JNCR3)A<0CXJ<8^1=^? 9>,\#0G(=JK MY14KU@KH%ENIS(;P/P9I8NY;;(6W='B];(M9<=(7"C]YW(N)5XIK1SCF?/4( M!WV4A!:3,^@83S_\S@'VKJ'Y>*0$C[N-.D!P4X6!M*4IB?&@<;?3CE6).[ZU MZLMS)5VL(UFL:U##3@=PCG(QTT&G@][>+;43276[?^##V7?F&'*<0";6O7.4 MRYG,0:]8BS#^GF1.ZM16@G<39!VL\Z>SJ:^8\I+W\6A6\=18[]V#+JM#>28I MWJCL\Z.9X%&NRB'5@W0ITD&G@TXE]=26(AUT.NC4Y/:8W)];GYN?A/O.AU;[ MNEL_E=5,YJ!7+,6UK)/A7-./9BZGM@!OT-#^# ;=-[:"]]I$5D>Z=#0K>93L MEPXZ(8,^4ED^Q:5(!YT..I74=-#IH(]\T&_5@+YO-3[4FW?"?5;H->_^;G:% MC]WLJ2QJ,@>=VM')78 W:$??R\.)1!2* $3Y+]$SPD<]A8!TT&]AT$X M%.F@TT&GDIH..AWTD0_ZK9K2C0_-[E]WPE6S6V\W/YW*:B9ST*D-G=P%>(,V M=&-"]%=%N"*ZI))O1[.(1\EYZ: 3,N@M:M5$KQ=[_/?N&/UB;.WV9IZT)5V6X'\8K31?Z(16 MH-6GDK+T_5":+7]EEA$HXN@4,L_0*R:;^BE:2#CH==*JT'IG2FG)P M.NATT*GW?1OO>[?>NA6NL\)MO>]H('#DJYG,0:_TA$HR:,IJ1DC]\*D??N_< MITOR$P4!+.I[-(MXE)R7#CHA@SY2,3[%I4@'G0XZE=1TT.F@CWS0;]6*_MB\ MN>DV_Q+J68QCZS?O>DV_CDY'N:;)'/3*"A=#8C>OR0B-FPZK:-I)*YJF1O7> MIOR1C,:68 ",DBD'4HUG*4^,_1UE3NUTY+VMZ-/,[RD5)=?MTT#L2:MS4 M;;FN#X?:0IW#N--ZQ4D8=%#3]9GKC;;WQ2M3,/0]F!5IR5[)[?E J.X3IN][ZV+/H%Z'G98&)!?JB6IL#8 MRU_!R-Y/]$MWBWK^+WT;?#V?*I?_'U!+ P04 " !K7&M4%7='.RH< " M/ $ $0 &-Y8F4M,C R,3$R,S$N>'-D[3W;"J3+?DV\8EG[-B>S>[3%D5"$DXH0@.0MK5??[K!&RB"!"G),_0N'S*QB$:C M;P :C0;P\U^?%CYYH$(R'GS8&^T?[!$:N-QCP>S#7B0'CG09VR,R= +/\7E M/^RMJ-S[ZR___5\__\]@<"JH$U*/3%9DO*""N4Y +EC@!"YS?'(C6! ")G(9 MN/L_DAO^2$4,?'E[>4=.'3'AP8_D2\"^1I2<'DW>OCXZ.CJ>>-SDX M/G;?O:''SD\_DH\TH$(U-@[)A6 _DM&(?'($.3PX/"2CM^]'!^\/1^3CI_O! M *E[DMY[Z<[IPB' 8R#?NSP*0K'ZL#&C AH(H_#!"RK%2W,-;Q0#%'X0X! X\Q(E\4F'H_2 M!D;#OW^ZNE-6DP'[E>0<#?]^Q8(_4T@?_JZ!Q>*)(VDFZU"L&8V9>!#[ 2HT MU]*39';Z!RS 7NO2G)%U^I)ZH^/CXZ$JU77+:EA91QWPH($2>#!84X2[FM"L M%OX0?!DR5^Z[?*',;72(9DQ]NJ!!>,'%XHQ.G<@'L_L:.3Z;,K0")PP%FT0A M+0!$@082.F)&P\_.@LJEXS9H$T800M08X@0!#YT0QD?U+?VZ7+)@RI-/\!'% M]SY5\2V=$B70]\CYASW)%DL?I:6^S55_P*8':7O_7 JZ#S))0=#,:^2O>@%4 MD2 51=I5WG"*PA%N"4M)X8"$+ZD(&0PX3!J%\+D;6=MIYK[9<#&%SA/S(@*0K]3T!'8GQ$0_CS@.1 MI-YU\(OZ>[T_)[43D+J:1>-J7F^MJYDK)E]316REGU,>2.XS#V?O$\?'*>1N M3FDH8^54%]=I9I1IY@Z$1Q/5Z+A(@HS$V'JU-%7+C2. ]3D%<,>WZ*@(:U/8 MFX-1XI()R#!TL HXB^(.+3TMQTJNIR3'VZML M3669H*IT'N%-5387 MZCP32L5 MZOC_0N(6>F6N*?,DDBR@4IY1Z0JVQ(;!1[]CLX!-,4H9CET5\F/![ ;D[,(J M)-;J)A7KU'LX.AB-XG4#DZ[/920H_$B;(5H[:A6AM43RIDC:5J_H4J]]8-[H M>.D$'EU@9"GNFL6/%@4=&A2D4 Q&QR1%TDM^3?*W]($&$:S[73Z+"8Z%;_AN MD?^10?X)%J*AZ36PIH%/COB3AL[$IW?4C00+LU',6&+1PFN#%G(\)$?4ZV$] M[$0%>X#V'E+QZQ\L4G]CD+I6O9?UFJROPSD5AA7.%9>)\&LA+-IX:]"&PF=< M\Y!7B+,/1ZSKZ,)AXF^.']%/U$$A*MR5)9LA7XF1,ZVC13 5"OE-%!Y2R3Y\[D MP0#$V*MG33T?.?<>F9]L2F2_+((WK<33NKV(UT0<#Q'WSE/JU>H?+((VK:B3 M(4?5[X6]/MS$.R7![ JQM8WTM%#_:6+B/ASO/1L_35HBW3VE_A(!J27O;E73.< M7FB0;Z$4/UFD;EK;%Q#T$E^3^.^1(T(J_%6V6-!2SKX$3N0QE1R-JF@(:]&1 M:76?8=;6+!IN\BK#WL?':F(R[IQZD4^OIP^.'SG);N/O*G%Y!5V@%)VQP==K M\M"T\DQQ$CXE&58U\7S-\/8JK%3A!AO&Q1WGW:"J53SH_5 EW.UD#YJ\2O_J MN[9]4_0>=\]DU=9H4EJKO:.#HZ.R]@P;I.15C*Y72Y.=4ETQ->46U;PVJ,:X M:]HK9Y,M/5U)#> LRGIC4)9U>Z]77*M]/EUC=0 65;TUJ*IBSZ]7T*:;?[JN M&L):U/;.H+:JC;QOL")I55@5FT=9/!FV9=@=[36VP35B:NFK!+)HZKIRY MJK8,>YTUV-C2=53^7*^3T8%!)_HF5Z^!AKM=A9YB++)H8F3J'6L[7[TVGF$+ MQ;"XW0*-1\R=)GBX), MWJ.&I%? #@\GG='08?[F9Y32^K4J?7TP>GUPN+LP<=)H;P [W3U(I'JX@]V# M#)7=+(YV;A;DL#>,BM-L-\F9L\^.$&HP+71_&Y!%F:C/RM-N*5+R*D/[0]^1 M6VSWF%76 ,ZBM2/#R&S< NKUMI'>[J+%PA&KZVE2=$.% MZU7Y)1#4\=F_J(=I##=<*N8*MK ;5':[*'FN#>PB;Y-@HR1MM3>-=D.#>4'2 M"-*NV)*#6J'8?E'R+ /[:3:_CB7>[(6703TX/B;%;#GF-\!LMXZ2][#I=$!R M0953T(QT B_$G 5!?;QR+N0LI M+G<96\TVIL5MDR1MI8)$)"X0% M)&<"%SR*)%*@B;"DKJ_JXIZSXH8D[. Z1S'4J'[?!;K?!4Z!\<-N]8.8)'MG M*'EP+Z4S !G 8K^)U*Y7I*X6GXY=-UI$2@<5L(W']TV0VBVS%-ML8)GZ63:- MEKI*_?C:,L'?_)$+TS)B''A00MDL.']RU:@!/Q\=D46]BT;V#=NSV-];@YM0 M>?R@J@#:KEC/8-@](92DE)*$U"P>WZ]KVIJF>4'3#-1N$*6ILM(@^O7+#@ZG MF)79NI9%K^\,';WZP$JOV!TH-H\\J:O,K^-4)1?$RL)5*V4WPF0W@%+'KC8 M/52EVB372>93TFIO&#LVC+]E%QU(&2V6Y32,G6.U&TS)-=W 8#(*B$9";SV[ ML)[/H%\JP>^_A7\%<]4##2#Z+<>8IFCM]E,*C#>S'R!@$%- E M:ELJG;C5Q@FM"(3+7%CMG3$_PO$"(8O3URX062SE)X./:S[F6QAMBA"* +5P M34B(Z_135ALC,:]I[&!V!9=\6+."^P7,=H>Z\\YY&3S -RY6IUD(O!PPW0*) M1>7'E?M8U0?"]=Z=M4SRIGN;V-(F<$9=)L_+JE/'^$S7Y6(I^$,<&FIO(8U1 MVNVE8JNGF;UD=*@I(*.$Z*3T]K.1_=2D832L8-=]Q69*M>[[B6)W$T7H!#,V M\6F<<[_)+&'&8%=[::'9;HI(FTU."_2FL*4IC!==FY/KBLBZB5"WL1PS CL%O)N8PN)=^:QU=0X>CO8 MU@X44-5AM*TPV"WAIVTL(8;MSYWMSA22W*S+X%R&;(')+W^@)Q>$JU3*J_;6 MT0*IW6".MYE&DXH[Q6@UH%'+ MM[,J#2@E)+>?V_[T8=.'MPH&L/ZQ7H>C \.I@!1%+_HF]Q;J:T/\>$*G7% - MH*">32K:55@*/Q;O/BRN)%5)W%@!KN]J+?5](_@#DT##"0V D5"M\UJHO5E] MN_9+P<1J[6=-DE=)HS\DZ\'>#C:V SR #[.=SQ0AF-OBA!'&\V]A[KOGY],I MQ8R O&OC=[MY;(76;C6E,&2UU8Q)D1;\=C^G)*.(8-/DGJNO&6$:1@70&U8C MPS+'H.L [,HN!1^+RNXCS"W[?GZY4+&/GJ2W:HP#[SSP\ ]U \?U]*/@4N)! M>G59Q[_PYLVG9 B67\))Y7#P;"W9C:84>EP;(?(TEJH!(B-2[53%9)*83@11 ME!*=5#56I,225WM?[D_V^F,A;2>D=#4%G[.[C:I"4ML@L)M0*399/U*I#XBU2R44+RLNV(CTP)D4>CHM?U5VWXRV41=^;&]PGG42+A5QZ_4YGBU9OZ?W9'4CN!?A):R!\1+.9VO$8CUUMSYO]>2)X<[@DQ5) M""1(83^D/(OIU=X/OA.$=I.JO#5X*Y/JEV#//&AI0?ID0"E"[&S@:MJ0W=(J M[P_>;O#2_"EM]%H#[,WPFR[H*MZS\\==[Y6,W%?*Z[1 M_]ZTV(VY%)K>N3$C%P,?V%K*PC^8LD.3N]U5=;O3H#=TN7D7#G MU?%**Y3%4DSW8,>G[S2D_7393&-9!W_(+FP(O-\CQV?3%2R$BXIK"&S1WT\F M_6EQHPRYZM!?,_2]&IN\.%=QJT\-@$5=IH.0A5?H^H[63D-:RJ8CYQ<^?_R5 M>K.UF&X+>+O^2KE$!?T5LC?QYF=L@L1M_&>H].?AD_3>.\LE"Z9V6'(1DL!94+ET7)JI_6DB_'U)W?T9?QBJ5]G$:GAX<#C:(Q(DO'"N MN*MPQ35D797TQP!_[$.S>V38@(2I(R?[7,R&4H0*S^!@-#BR$5"J-:1^*/'7 M(,>Q 1&1'(0@8[D!)5!UYCA+C9H4V=8D97AW0!%^V9H@M,6=R4@AVXBD@BW* M<"G:V&X&K_YJ:;4%3!YE"M'7UPV;SBO@GX/XS^:-/SX^[BM\*%(O%$.TLF$0 MP8J"N682;+6 AH/CP>AP,'J[-1T\&&Q("P\^[XH<0/!V*.BT&0DI-+;[=G!P M.#A\U](6$BQOU"\O;-QL6@%;?K.MZ,&0#K /U?4!6TWU6[:CY/%(81L='Q\/ MGW"R:LS^40R/W!^AOMOT_C*NOU^U;7M'#2,/$UC"M6D;?@W2>CLB@P4RQ)W! MMF2D]79"QG'L/ 9TAN>PFI'B"U&H5=?_J1\?XT%*8'V'%YU=2AE1[RP2^(PM MC!_<4Q>P:E?[R?,G*EP&CA6L_O"Z-(#$4&9Z8=H7\-[D9QI>3^,+C-+[=[VQ M3/9A8Q<7_>1_?L,VL3-^V$,YL?<+'H!;*U:7(5V@(PBBC2: -51;@Q\%CY8I M*%Z>OD<"YJL]X@][H8@ W %HO$/XP][4\=%88^")XZ/R@3E!/1:FGY>*J7M% M@!?%D:0:19QQ-TJN)#D/@*B5]@3[.&E8DV$S<)U]%%LPVP'S\>^-F#2GNA=3 M3L^?EDS$Z;!Z0JF>R9C$[])'UI5 =H\Z%AY,Q<@EQB)W;3C/(#QSMG!+,54A MZ9I _I=/Y%VTQ''U1F#T=O&)+F =KK%;#9(PPP/DQ^,+AP7?MV\D])TI4C06 MUKYWE>[Q$Y-EJN.O&PQ#7OC>8PM\6X K_IZ)^#,Z"?,KY,U/\I6,JDVEYU'7 M-KVFBOJ/0%IKEDV5NL?R*1

3>@S.E;ZY=SWMLNY%3?W]"D\ M\6'UKT<*ML%2,)4P_?Z=.\#&+\16RVA7&#LIKQOPK(!69?>K^%^3$.K!.LE9 MS04_AGA/(^BN3605@;XX7/>-HXO/TFA!X KJ.QO5)^<)C\!\BL]>K7!)HJ]8 M-#%9(3OH%"^<4GHZ/T.6);ZL.5T8E M;E)9EP$+0CJCXCE%8%\#M)RV,%8I/.KAVPE%@]X&S4M9,+7D\I3+<',9Q;7_ M3453#&)M84DE1!W9='I&B>&H2GGL@>)QPM+RM1JD-34?@18YI()DR6!B[*X956M;H7 M:]%]77!QUQY84^[MK8PJV&Y>KWN,I[Z/HK<4+5!'@'6;;@+=.:?)I)5[#I3# MX*F^W"+Y&IM-*W1N29/I1Q&CNB/U*CKCER4/;NFYCUO&*7P*1" EEH[1+OW@@DWRU&M5:L%(U-H MOW?RI"/P^E*9O@:JWEN%Y?G8^[](AFM;"$V N\=AD\Q.>1=-EHX(+V*@MHFA MI>I=&TP:90''VE7O_CXPCP:>O)ZF&333J0*CR8C9-L&X%>JN"2^Y/^WZ,:!" MSMDRGS6R#",M(T/"I^3K'=Y)23.6LRE)'[QWC[MKXLOL8CV_8[V@NUD;&:6F M)"M38==VG#]3M:S_6W97@>_S1YRQU:QV'?S*)";_74]/HX4Z./Q 2['L+7!T M<'\QZ4;IE'9+EP[H"0\)Q==WWPCZP'@D_15>Y:PG@[:NV9%]CT89=FO78E^P MI^2:&QB[M3<>M6<7/]/"^9M-,73#2[6O3\H,4@\\/1\STS#[!+Z?*A7(6JE4 M5WJ!@M!N,-_&8#9 TY&N99?61^[#/ UCIT]7I9T%4V'G]HI.?,X7,."%ALQ4 M0UGGZ+^E 7UT_&35%@>^"_L IN)OO+_1)#V.+L8^3#_XZ0Y6JZ8-NAJ8[NU* MW=$%@[4"NJ]<5'%4!]0]EBX#N8SCQ'MC?S$HU7/<80[&GEWZ7N#$5=H^%]++)ZZ#<,PQEG>O9*8WWC[R2?JVL MN_3C(%O-@5[:.1[ Z<^?3? =M?D:IR+\P<+YG/H8<# 'Z%4"2@RKSS@[0MBY MW=WX*>'+(#_R=)$DF,4>*_R:4H;//92GX0WJ=LY2;N.;%Q#*\'H7<)!'7?1K M&LZ?P+F0VOMP)>'L&G'G)+=VQ:SQJ%0E2(&;KIP0:I>:^1+S,I.QZ\81X>I> MP+CDJ+6"K#[HU;A&)S7ZB8:"^WR6OEI1NZIH MPYC1K'X"PO87U_N?5HW@93 MYV2S[0ZBOD&V^_U)(_:N[;$U8/)ZFEW740#Z0P!A9_S1-/VU$^-F+71-E%I" ML'+\*E*]#8Y$JWJ=ZX6W-(3Y484,G0>5Y0$SY%T3%=+-&R9N=X3Q.^?X_ 4Z#"7UWBUH7OJR739?#'G+ESE=T$"R;?Q^._AFSQ M-I6_<02]08)AEF$!PU$ZVL,X1O$I##UKT)QHD4)>"+X8'23(KL4G ,8D#L\P M:^C)B=^A\:X-L,F*"7DX]]F"!8ZZP2-;9J4G4 T[@RM@\$O@,9G<1NBEF_#Z M7M2SH._(1N/6,95?K2&0QM&4)JA>CMC2.Z+B+H;-9ODMP.09CR;A-/)3J'+, M=J/JG9L>]/$I>7$(/JD;5(&3ZXG/9K5CFJ5.UX8B/9\@3M^]GH+K&L_GCH_G MO&$A<#T)03$P#JAYOWC_R,88.I@2E9S+B%.\0)E?5%^6>%+9K% UX7_F8?*> M1B%+:A?(.BNC$QH^4@H.#PW.U2W#*N0"\\D-S#IX^N(C!T,0253BGJ?1>%@3 M8)WT)PRN&&&\GSMAH4))C,_>7A_VPIM+A%/(SJX#ZB!/YAN$\3:= MPJ4 $?@E09AY)1J_FR+HR#QL]\ZK&6PDA1?$Z2F\6)_J6M?\MKN+3>X[42?(XKDF7<>7'-H3BC&] ML\)QQ=8U.S@HYW3BFO&*2LG7-@@-Q=]TF-DB2S=/- -?(-LYL:>EU4!WKN#\^JIIP&L)U3 M?H4OD+A =J%O_8 $%[=XT!@6UI*6-NLV M1?!B^D#Y$%JV+:[.8(&OH:[Q^!("NW%T1MUA2AUPPG";ESY0GR\1H_' SC/A M?RE>0^J[9@^*&S:!M++.[?&D838,4Z=T9JOA-/"?ON:0Q"P+[UIL4OW%=)[\ M9NS8F'&8S*('Z.2>T!D+]'"E-F[<\X3A!A=O[Q)])_.6:@U%#0.QK20\9?]+ M_9"F-M<(54?LK]'YF'@ROL'8.8Z8 MN*;22^DB]-GN'),FBJ7J>JZ.3-JW=#O47I_#Q$X<1O-?_R_U!+ P04 " !K M7&M4OP*[2?PG #^<@( %0 &-Y8F4M,C R,3$R,S%?8V%L+GAM;.U=6W?< MN)%^WW/V/VB=U]'8\LPD\9Q,R3[MH4BTFFLVT0%)R3V_?@N\ M-9O$G2 )2GY)QFJ@;OBJ4+BP\)>_?=U$1X^()"&.?WEU\OV;5T!%.$:_O-JAY-7?_OJ?__&7_SH^/B?(2U%P=+\[.MT@ M$OI>?'05QE[LAUYTM"1AG *EH^O8__Z[HR5^0J1H?'US?7MT[I%['']W]#D. M_YVAHW,K(+A_\^Z=_Z>?T#OOS]\=O4>3-S^_/3EZ__'N^)A*%X7QEY_I_]Q["3H" M->/DYZ_W) K27UZMTW3[\^O7])_?8_+P^NV;-S^]+GY\535-@KK=T]/3]T\_ M5"U/7O_KXX=;?XTV7MTX.FC;I/O#ZW]] "&JEE0@0=M*WKT4H5R*XS"FX^/O M>W6XE/U.WKU[]SK_]57#(J% H ;I)/PYR?E]P+Z7YGB1ZG'$;4'_=5PU.Z9_ M.CYY>_S#R?=@^%_N$<';-/23[WV\>4U_ M?WV; D V*$[/<9S@* PH7NH_)HO5.=YL"5JC. D?$: 2;ZAF.:-TMP5P)^%F M&]5_6Q.T^N459042OCTY>5O(]P!=>ZNVYGZ^]^ $EU_$%6B$"P>,WCQ O M3GJAK5W^PYKA\M]9N*5_/HV##P@<9HVCX!H@AA\+Q UM!W4!AC7$ M=0S1Z"&\C]!IDJ#A]>;R,U:3%S$66SJ[050U4D:%ZM C PZ18K*CH0_RA!% M*6)I?7S.O61]%>$GJ\/3(-IO=!CSS0><)&7X"ND?2@OA%:8=_&:'_'<400?( M\E(:W@F*J*PI#D%629^^P^R$[+,W_[D7^6_G/ :E B/E$Y=)&FZHB-6$_B'T M[L,H3'>CI10*(A@; ]9%7X (S%NWR,](F(;-G([U:P^U>S S5O 32@N8+A&Y M77L$[1DV?SKSDM"'G.4BC#(:>VG+/JI:86MW';"$'"RDR_2JS6%'/RNC$?P/N'BV6[JSN>/ HFZLPED&2T-$5W")3\(M'4L8W]L07'9%CX)2F*"HIX)+ M+D$8'Y!IHHL1FQ[C\A@&)^^VL)1%F] W,WZ+A,7@;">:6EY:VEHU]@E8B(2/ M'DW C:0YZ#[(9I#MO9D>8EYY(?G5BS+T$;()FF#0V& B'X>0^2"&B1]A2BE? M,L,R&@54?=#=?.:1TK0@;F=?H)^D#')#+%PL+TQZ"/D>X^ IC(QFZGU?&RE= MSQ3-W@K$PEJBAS"G/[XY^0?,LOEP0[8)$S!X#:35X7U&O68)&9&1B(J$^\Z8 M0-)'=!60'WXU>CHF4U M8S<74$1MD,397%05JG:3:'-9A>0&2ZC-Y56E/$1R;4-J+M$A$NV>$!83M9'U MF@O((&(K ^YA-3:A*9+*WC-!'Z8#)U+FNNG1M[$IU"-F=(F,N6/:X^B@#[=I MLL"2O=%%)DN,^VX<+\M=WT_T5@]%38\!E)*TF++:D%>%JOV#2GHW(_\)IO(\ MB$# 7-Q'X4,1,H1#YZ4<\[X\/(,RN^=E_Q(2%.(B9\ N"3.3RJY]? M!(9_/GFDCJ1][#2F='9-:,,?% D/MI5B0P=]'H.ILX^<^96119%%TQNN_>[( MV^$[KMJ_UCOE29)MMGVS2OLRC&".3R "2B"XWL#_DM#/[Q6!=*-"0EF(X0Q2 MY<)+ KR^%E>H.JW*&[E#VL1(#GN?6]B(=@I$A]B,M99\J9(?^,[Y!I,T_+TY MWOE'&>-^**LI1>^+(CWTZ9"PL8%N U1"0.),%[SY;L#O^8WC\M.?Y'-Z;^E>\W!RV3J+L!(T9"1M?[RP6%WE M'Q!\#.-PDVWR'Y?>+L^,;Q!,&00%G^, $9A7?;J%%='UP"&QTP>"^M<8&%6^ M82\]]3"#'OTI3JO:VYMGNR7!049W^&(+&\/#B32%L2SNF-MA/PEB&A](EN-S MV&(BU"B+-:W1/F"(8S"&0;FGGA;!@,:Y.WSI^>M6SWU!CZGM:D%R:_('V1R* M\BJ#JCW2,*564NKQ>C+5ZWV-YF<_+669;5KJM=H<*M3 UBDYU,TC]5=K\)\' MP.K6X2M;O$YHFD6I'=.2+55_^EFMW@AA-1W/]^(?_7RDP. HQ4<'3VA\&&=_O+J9,KA%Q[,B5U IVL++&I=9XT@TZ&.B#/*WXF-D C3ID-9"J1G9Z%&O!4A'.!B9E0UU%.%7,JPDUDPA< M'FZ?9P3$]G=WQ(L3SR]SYOQ?)8R"_X,5$,VJ!O">8850]+6AA'#;,[4,J>"U MHPREOH^K,%'Q_Z'4FTFTV%_S^SN.Z-G#>R^,J7T7<>/*# D3NLR&?\8/2U@G MXJ V@F9@L,9/,098X/>RW-WV $WGV18TF5$*;+;>,EMJS< M3/-3&P#633\Y M4#NNL?:7UZR=ML'VX$Q*Y$_F$WLS7@$XBF_L,_#E_4Y\1^;+KRGQP-YA[)'= M-:W=2X]>Z1$ECD# A^LX100EO)QW!(XM7QR4XW3AS$"M"_B/)-T7K.H_-&V* M_4V_ISA]B!P#JW@(^[.C[H#J-(-U+S4<2_P-="F71/9\K$6POXO5!+]YF*GU MY^9@M1:"G'SD/,GJXSJ3!8C+4N_RPE$E7EYV>5]5M!4$U#JU'%W6:;H@*9:L MV!OBI8-:?;4L4O>=/LHICC?N9Q9V3!)3:H8519Z.S=!BJ6DP[8&_;GN_%,"7?T/.JE:H.PT?;10&E9L: 9VA!"Q;,8'&2O'9JC&5^<7:$N07WRZ M O\=H?*DK/EI%%<[#OYLDV\AU1[Y^6%Z(-/V0[\]H1S:-._UTN9DG@T" ]CR M&^YMV?CSI5JGEA?*.DT7W022-9#:1*2^722$U&W%)31];%*$!;9H,'8<$@O2 MC$0F G3GYN-))V>!#J*D3[6;.C2=2?RL E$]^;,"N\,$T(%EH<*CR\_[&P3' M#VN^'6;S#[.G"#YLO/4[P3&T.#M,'0C8\U!&73#'5K3EX0LO:+1_;D%X__/T M>!OY_)%CF4E/$_"ON\.+SJV'#BR"D4M,3S6U?P?(MR M3=ZC&*P0T6W"8 -+J20MOK 7 UNOM(I; 3)-C9;Q#**N9:>+0_ *]O $+=M?+;%:3J=BOIN[))@/=D:+EDH' M+:8'M6@LL(I>G.^INF2;H#X@I[#*G\(R+)5-=TX:M(QW.ART@?Y"GF,(@X6W MP\[2?[TH<1^U==Y"C@23(([^H4JCIVXR%G+Q+^( MPFK220^;3:9,@4LY;KRGCS &! :#5IYJLY)%[-M&#$L\V M.I2FCPK,4<QA^JHC MM:P7:(-YRW1N0U9MD59#]Q$@54]O]%GDNGO.,/)9 K1Q_AC2_BM)1VZ!5?6! M)\P3J0BM=PWW#R?1'V J/OQ#HV51\0>2?5J\&UV@XO_AWU%&*P95+\3=@,:7 MJQ7R>9GH-$*TKPF,+,2$%RL*9914$(R8+@F&O=5)3!_@)@(IMF)T3L';454Z MV('24L6Q=!^F(BHXY)^/((XV M;K$%<_%1KRI.JZ2XLAA,Q#)3D6=[\WNB,T-=I/0J1J_.;SZUZ54^*N1@1J=K M"TIJ7>>., ,#V02>&GO'ME,.WW(3W]H1MN4==A^VG3O$5$Q@$U,V,8E^KGW+@ MJ_L]/^2)33-.R*MYEPC\L[/S;_7P\FGP2)^[5X]YO(Y2"'8[/C\,2HPS+ B[ MS$L4OG,6A7DM5A1\"+W[,!(==>ET50F&G:[/#XM2 PT>$COLJRUA5\XH&#Y$ MO_;S_/2W,%U7_E2IL%./D2I4Y %33.7Y(5;'; .'4K$D%8Y/W-R6[NJ37W/; M;[$;A%LI!2F'Y15S34LC 525!!V]&2EJ\N2H*T7!M4>:KEU>AH'N9)% MW3YE-.L0DP);C=CSP[B!$8>%NYI %?);-26<@3[_+=SJZ.G],PU]R"I?;> MR[^H9(]V]T:3#=K3>X0!HO&P)M:*\PPY6W>D;,CGV,7DIE94U)Z^H4I"X )R M$L\)Z9H&&PK07^=)!F]"K=8Y=])))_C@%;[\<$IPT=Z,,C^?()F*BI+?QOD!7#N1_XY MH=ZBH8=RCGXB.K[-7.91-RA_B?,.WWE?ZN0W6^%.M+CI-$ZY.; MO8O8,:15ES 6R;6MBZ+8T&+5+$"TB-D)'N\TVX!$^TQ;B\3T@.Z;C_?8V8\UR3)*1_* M,XQ6F'?QFA_QW%$$'+PY2 M^C **;PYQ73@)7TF+UDMLD#QY O$I"6M5 )^D:8DO,]2NIUZAY<0F;@[D;;( MLJIP]B([<4U2ANS\ZTS@._F_RJ@4_%^6I'2^&&!409/O-R1^9LK[' MI$%5(YU1HNJ>F?67S/8'95 9!MM?,AAPUT*KCAD'V5W2'T?]V*O 8YB])27E MGEOF-&2#? MCEZ?RSG+L(XVSW/:06SR[5#WVQ'$RSJ"<#*TC'AHX508,3SF.'&T"L^WU?I@ MJ_6Y#..W^SQSF@QLN\A_G7%_"P)NG(,[X?3/-,/[=EC^ M[<,7:Q^^N!057X 7Z=EX4@>2BJHQ\4]Q,%M^ M+.Y%MZD'PP\R7WBI=^NO49#1ZHOE">UU?)FDX8:>N?[F$>+%Z:Y^;&7RSTF7 M! >9GU:"Y<\:4:LR?5OB1JW-PKV<.0^Q..?0.\=;LI :W9;?X(XQK!+K2: M; 35>>CYZY O*9\K]"GH_Y[!^G7R2X==T/=W0!.!W6BTEX3F"9N^6/RCW MGBY "$3T_6R3Y=>UWA/(F Z?H:@7(/J&TZ.K;E)5NM/'(%U4X>'LRHY:B@(V MPY@%P;ISY[1UBDQ4.EB<6_0-)ET+OM&B^^)\0V3727VC)9AC%?.U"^1KU\-W MN_S]("@='WZ3Y):?4%ILSRQ14B6ISIQE+U%2@ MK4+M^8).'V;84#* MQK%YKI+W"H%87F2&*[7.''C).D^/,E7H,-"F91DVZ"3<6>"3<744@_E-H=,X M^ "\#)&H0X*#1S42LT:E@96L85.-MV-[ ;5C%9]D&D9)ICL:V8W75CFZ07)[9Q>\T8:HJFL!7;N-S'B+;GZRQ[H3/\^^;8I6ZQS'*=AG(7QPV(+,PU52/R^H0X! MYNN&:@2F?@FR+>7AF)]6$W,]] >-M0QH1%G)LIJ4IP]W3(%X3XG MM]G]UB/I5=&(>=NL!YV#^V=&=.:*7%NFLP'7'K+8VDOL@='W$;ZGGI-Z\4-X M'Z$/^ G:]<.K"DU=[(II/GL<:YAT5$R+Y1(\@CT6OLLKIOG->_IL?1PDBU6Y MK#Q=K?)F]'Z^S[L-/! /7?SK\7CV_M##Y*/ZAYZ#?U+WE+PN?)PC SR?%U&<_6UT8P_]II 5]C2ZWZ:D=?!'\\) M"L(TN4$) JRL>W@6GYB!]["(O00/D1IQ;"]@"50B_8^N?*FNITHM6 M+Z#7M%X6SMDFG [FM3PERO_D:.U3%:W:EY#RTZ$0.M)#L9!;;,PF:0.7D)-^ M"1ZB:>"Q'48N7ND_?YYPU7X+*GI;D/2_\7URFVWA/],EP0_$V[2@;Y.D[II< M2'*N4!_ H*.NN(5BE=!^-^6A0$S@WP\QK7@!#=CW3RQ1TSX@X%![]EA6,N.X MAP4X&0Z:\I=%H#MW)0;EH7UVH<5CKDXS MALG'/;O0DK-R&%<^C%'1,"])OO_JOL^%(QXI@RFF2VJN+F'1@&-/%EUQ*H"S M3K-=+*6?-ZJJYKM0TK@MD+2?)%LJYR!# MC.EV;V=%RMWGACE#P_3!GCI+USYEA[2->"!QF*[/(>^"U*S6=B>%H&;O]B=[ MJKWG!D SL_3!GS)'YNU0%UZJ @T2'(4!I-7!F1?1#:';-4+IA+ESP^JP'+]- ML?]EC2.P7W+Y[PSLRG$*U6XM;Y!WFRY*-&23*RW7SP6/5AXEK*(DVW=E/)H> M?$#;L22X(9OX[3%^0SX8''I1C#6^[.'7>3<8TSX*Z^" ;I"\[B-%EZ._HD M@'CLQ8W;+S9P&CN%@;8*6%-9*1S.NQ,YC[!CR!#F&V*>")E65#8,2C[9CR]GR["%^^("\!"E& M)+5.[6UO2:>YX$9+>1/PR!BHKTA?^OF)@RFQLK9:J;&(JF-[N&5H;%1!D")$ MI0M[?N)T<1XE&AIKX41,=QY3DSR@J/93FZ!F!1Q=W?6BC)RXVW/3.=YLPN*F MQ&D<%!4QPI\W1L=GIAMZUC5%0/7#:T.<"K4*? M6W!:O6,+?"H=YX(W;2.80$R%B:WZ9;:"7?ZU$B^&'?S8#DWECU/++CDJ8;5A M:N+0UG;+[EA-'39BBQX'@?"0AFN9EY>LZ5H2_H\ZV*,7Y:O+]-PC9 =.)4S' M=/JV/?($(?1^A6^1G1.&@5:%'"T;" M'C, C[K&FI 1$G9O!9#?4KE!/@)P@\R0%:I=#Q)UX5P28G>9 58T=-8$BYBR M8XGY=?P(8F&R QDYZ& UZ3P!W&PR@]$7Z*0YVH>4'$N0BX\V%3)-?D/6B;BC M.:?H)H5,/\U19]%SK%CMDJ"M%P9EO4_Q\ O;=C>%66UG (5+35QP"')K*#J MS-DD*YN1'G6K=5)(*-TZY.:O5K445EV^RH@ZEDLN"=XBDNZ6D1>GL&:BZZ4M M/3'E9PLJ7;I?U@JZN(P1#655$2(FZ5SV6+US4"@",EY^]:,L@&7T>XR#IS#B ME>;4Z=K)-E6ZNHP; ^55\:-&VK$\58(5"1[F,>8]Q[4S=J[DF8=7M6ZH1(O5 MYZ2 'V^YH=)'>&>NT\?EH==15Q4/$IIN9Z"-Y9/:I6U>6_[J="YIIHIZRIA@ MT^I6N9\T8%0U9NJKP?5$Q4& O .G] ^K@\M84%94%1 B@MVJ\"Y%".8FJLKU M?95>*GO9BHK'[/*J#)KHKM0JT*I%%SY<4*Y;3-])3AGOJ$V: ,[-*#]@I,W1LX[3(Q#6CNEHGYI+'Y6_DM1"F98,> MP)+Q<6RCM?LUI5*"P&\O_8AUK@!2U;P'=@0LG"WA=KA=E%2I,%Y!BRV.Z0TX MO,(9\7&2)BN<'T+D[:.\_>093^_[KY8M82[RN7Y&,;A)MLLO1WK.9">5)JOYIA0 M<64>9\MWP?W00[.W<,87])XN"O3%!3=94+7580 Q%(>?9PC$<&P/3$7N3Q#( M;G $S!_NGE#TB#[B.%WSOJJS0-$ T%R*TT]UN@C5!+>:+3GER=5$TP4Z5R2W M,V]%:US'I6[_@SQR]X3[!7$>-;.@WJ7V[/$OM^&HV&>*X_::PT@MD*!G^L*G M9P/[!;V7AWZ&':?%?R&0^I)K+AYPA3-BT0&:Y"S@OR#WXN#/L.*DZ"_D<;L0 MH9%>X:/-Z-\D9P/\.;F7!_ZN%:<%?RX/\S+Z;,%_NDH1L>P!3)H]W:!%\T7Y M@LB>DSE$2ZB!;M]S-G*O8V".DG2)"27>V=YB;=NJ]FENTLK[S'K/T<0NUG8: M%9EWEYK'4[VY?(,>49SEKT0_Q"$E>DO'A^SR\PQOD]\?)LBO[VK1@;I'#V%, MRXOYY$1YZV&[<6]]_#5 K57XB!03[8N'I@V M*]J=CVV0$F-,D=2, 6=B+$OH4V3MV&=2'3WJZIRJTV.G@VQF;'28 ]*T%;?)(H)R,RRG(<"6B,&N@*9O&&O)$'!TKIJ4A M^Q4F(''<'Y$M0N; K D]4WRR#34"3&O&S'-%E]!*OZI61F2SL11U1>-Y(XNA ML#WT%,0=K?5U*.;!ZU4?-/:XQ+V5,,3H/7]0R4QB%V4,;LQB8@[!#OZC^EM5 MJQN4@/\OQCD.SE",5K"ZOEU[!)UY"0J:#01?:@[)2@9H*ZQFC7[[QK;F*E9$ M8Y99<]JO;E""R&/^IFY9K2\BIYO6=JDUVIQ4N>3N3"8/\\W<,J5%'GC@8XE3.,=I!V^%U7SZ<#7L+C],$ MO>< QGXFL7-H)N!60E[!NH:B[K(WC1P-T2SE!&]Z"M\]8 5C M!W/>@SNWAWM'WC9,O8C>+JX/TND6D9Y/Z1)5\CUUHNZ@5(@]=I#O;T8QFEDB M<>8!(U'&NW_8$,_*U3%C>IR$UX#>?)!KVWAFH+4@A6,5W=G*?(Z#,$E)>)^E M*"B/Z2\]0K]PU(O,*H24HK&8T'QP;,U<0T1=,7MW+T4V5.B>Y*I^1Z!!1 FQ M?"+/!:V*9AH"J7S6[E[";(NO#TE]_#TSL(V%K,$*P&AEF:W7+V7;I0H]Y9EC MM^=\ &1N$.O98)>?X([CR)_*7F _HP4ZZ"O<,1A@=QVO,"E&H19I +[G.$YP M% ;TH:TS+Z([?+=K!,99>O25D36"YHWOAP>6H'Y"+UFL;E/L?UGC"$8HH0^3 MI[LAI3C+DC!&":QQ$Y^$V_+:S"WD6N$*+ #4YSL0]:U!&G]QD[8,$9Y#(.3 M=UL/NFU"?TA6W=HJ0W+[Z)$O**4/*=PBOZP_/R2_"T3"1R#V."P;7NK3O/0Y M!-\K+R1Y]9^/R$MH4?]FN?I![!DF?H0I*_95LG%XPZ*]L.\2D5R.P<>6_KTQS(_P _&VZ] _)6"9(<7*O>0&;3/BKX<> VIO M&&P4#SU+_C/S2(I(M*N]LY$U?8Z]+(#\-1@I'-8%3A[K,],X FC<+4#:XPC MA4$:,T8ZT\TQ[F@*,"A/5J8Q/%=1(C \=V8Z,#Q;65(PI@2=U&"D,6 RZ^N(_"A\+)IQ6MJN!75ZBK_L"H M5#<*K%G9S#[E_!Q#Q,MO8M \8XF37)L1!&2)-2:ZQ&9A_;I_S_TT.?>2-=U: MA(P]+[(]O+RB]'!,NXGDV+\5":$RVU"F13K':#N"J,R_!^2' HIC%?9 N3'>NRK>_*ITDV68[ MUB2F+NLGD!$E*2TE2^^3^/EY"XCODF&K^7=)0)BOQ;%/IU5Y_W $>3N+R=%C M-'M9Z8@8>VPU;]25PP-!MG'CKBQ3.;BTU:[Y"*P:*^\QQZ-95'F?2?NP0H:\ M-&>R6)U53Q_DQ\D!_8_\C83%*O^LB*:+5?UH(%05!_B[$Z>"HC_[%Z+^,&00PB*/@,G A$4)\N4R*:8!P2.WT@J)C41]!#Z9!CO 64 MR>Y,>Q%XMEL2'&1T@16/N"PU$7V"U;.1A6MTUR8^;#$7\3]@\#$P=U NQM," MY]0'[_"EYZ];/4O''"?]:I^KC0D.V9'3& G=?NMQU 7$GNW>"'0U?Q7AI[^C MX*&U.U->YJ+_%- M449Y$F4P!W__80.*'_[W__I__Y__^O]^_/$2@:@$R9N7S9O)$J TCO(W-VD> MY7$:96\>4)J7F-*;VSS^Z3_?/,!O #6%;Q]OG]Y<1N@%YO_YYDN>_JL";RYA M M[\\N'#RU_^]////W^<)O/_E;^_?_>W#^S>?/C__^"/A+DOSKW\C_WF)"O &BYD7 M?WM]05E2_OV'15FN_O;V+?GS)XCF;S^\>_?GM\W''W9%BV1?[MNW;S]]^WE7 M\OW;__OY[BE>@&6T+YP=E6W3_?GM_[W#3.Q*$H8$97?\'KA(Y5S\F.:D?^)# M+:J5;;WW'S]^?%M__:&ED53 4(MTD?ZMJ-N[@W%4UGB1RO&&6X+\]>.NV(_D MIQ_??_CQY_<_8<7_@/OOS9NF!R,4(YB!1S![L_WGE\=;N@!J@5E!VH]-/]GL>(JT77[!+*JR MT@W#.]IMCG?L=GF--QC8<%6FX0IH5ZR-9[R:-A<4^&%R"Y^@5%/<1PIY4N@8] M!!&2,Q]HL ^YKFFUX$W@>Y/!;[^"9 [Z*%^'NK$(-68OX7*%P((,P&O0J(H, M3+M6X6P2Q]6RRH@_RRG;0T[K+%B8.)X6$0(7V->K&\,MU;@^=,-3">.OTQ7Y M\;?AW[8V*^/GDJL>SQ)EU=1&1VX("/UBOR,!\ [@+E= MP"RYQ1T$UW7IWLBPQX +1=@8G+3(6W4.;'"O1M:X M[;D5<[*$J$S_75OZ]2L9$L -1+Z%U^2BK[^#/:D8\X :S^(IQ8[(C.S*A'Q78\#\!.$?1:I'&$^Q:%UTOY6+S@&!2Q>4=]LWZ^T/N6!I$6?N>W;-V M7&(@A2FS-:S2[F ^O\-#7=+@?E(V?C\9$)_A=10O.C6G*X!L.>:#_,/L LC=.]V_NAGW_5JV%G/J:-*5F_#6-Q M+N$Z3=Y_?(CR!"S3V ;W4I(65] V^%6AZG%+Q^N^37\!#_37^T5,GORCBK)T MML&FUT,<9=+F7ELS(N)AE"P\K+C34I)#S'86S<1.\SW&J[S @WE"]A'V_FVQ M74R3E2-F@*PHRXW9T*5.W5B$FRA%9,$//F/5X#&^;H/](T0LH\4*QE\ 5OWU M:[S 7COQW[]%J-FTC.)>2PB?W!FKT'SJ-U%)G];,_0P85]M=D6M,NMSU8Y7B_CXI%"3%2#VPYE MZV/=P8^W.<:UJ9I[ SN"O%88>[]&KH%1.]9[8K>;;[4C6D1]#I">1L;^:Y75 M=F'18VUR(&%Q+6)G[6%YK6%K&6$GRM8SC.8H3F8[Z&7;-[3FQCG<]G"QS6&% MW7M0-CWS %#=3#].&>1-ZOZ., DS'A$:PJA->^AEBA:?1Q7 GH0&[JX74(&#/R MCRI")4#99C] M=:?7_*H2E+L!IMPJ$K9QM0GV9#L.0E*J0\3K>FS0+#4L$4O M_9GXM9;B!#M:5CUVQ*=1CS*") MN#B=OPM<;8_9Y/M(UET:O:19WZB]K9;MBPYG>(R+EL0M*Q"(]W<\9@@N7\ \ MS7-LR/&6I>S 4@E10]*%5NPQY<0GLG:@6)F^$S$NZ\@M=MGQ#RN8$Y<'SB"I M$++*$]*,M4@4)_Q+R$>)I:2.HY4Y)?WX-5_&66QT5&\D0E@=[U@ MPXX5"?N][S*)<>-IN?%]QX5JUX/8]S#_#8_\('G$_T5I7$=:,4=>=:#,A#N% M[/R)!X3;>FU.,%&EMG=6S*T?=)M?%V6Z))[-[\1T\G*SXZ7/)&2=!4_*N (S@-"!D MRT6[[?>.EO>0A")A8Q>Q/:R1'R_ #"^'6P7LW,U7;\:N4 \(KE.2?>0"Y&"6 MEO5]1F>R*;9F5T2R$8*QG:6UCT0\ZZBLR/3TB*'^#*]G,T#\R8.RR>^V)>_' MA!6%'*YA'K-RL=OZJ0\XDXQBDWJ/:#K[A/!2D:1LJ7>2_DTV+U^W/5=\*5\L MZ<@=7W9QM!OZ\,_[744[TW"OYFQ%)@X))XXV'BH4PZ(L\&@$=^6SNKR]FS[& M+=L7'<^%LZHD&P[8/)LX,)S5K69V'"X[#=L6?#J[J1O_G.;ILEK6'Q^B3;WK M\@CP8A/C\$N> (17Y#$YKI^1H,$QL,\BE9OB6+>@JPL=K_4JOKQW?MMBL3_V/[\1VO5N,:< M$.ZQ]_,4M87 6@*W9/-VQP$N!K(ZOZ/)R]%'EO__P#G^J\S[^C8QA(/G[#[,H*T"8]G4' MBN)Y$>7/WT"V!I]QZ<7AGJMU6U-JS9K=25KS:X,NH&G%0G7ZA&FM%B6S8\MJ M$IVV7;=EGR*2(P<@=W:MU)HUNY:T=K9K[3X)PZ[5)*+L^OTIV74K@2CYV9E7 M+&G'FBUSV_EN/&0U38_%3Y9Q>]K6M_,LWG]H1J&.-ISYRY+VK'O,W/9"F5ME M,+7J.:OUCN4YEB.A70]:)MEI^] [Z7>^AFMK5VS/FK5+VSM;NW'OA&3MJI*% M,+>KN$3U+9D>V_)']0VVY+?U+5I7ZSTCRWZMJ3[L^JOZ7%!8_4!AM43UJG'[ M([8 \%I>9W58\>\_%&!._C$DE%M7S["U-VGK7E/>M",IW8$IM[1%4 J>L](' MZ7'O0EVYC>%8M]N&HJR] _"J O\+UJ?^20*\\7I(SRC*BUES4?,)H'4:I_E\ M.F-(6CQC9@KVIZNCU[\ZZ'311 ?2=INPZ?IP'D@[-@(9KJ 793+MA,-:VRJ< ML!2@*7UY>D;U+:<-N?0,UP#E1++/1VYOQS:4ZG3 +JGCUW%WTOG03$%, -MD ML(UZ-<:<+I+I$SWDES\N(5I!5!\[?2F/LA)? E36%_1+(N<56)%% !.?_0EM M^Z0/H=- LC55>H&W!6Y#6"K6)W$OHO@K2 [R"4=JA1K=S1E1C=/ MKYRO([1 M*FPI+!8'1VM@3OH?[P-VTX_?!1Z%GT[I,RA/73+Z_]?;3O?=X3]=G3UV\JSO M"/8[/^$.(=NUTYSPV%YRWM\>?,0S M/"JQ\$VVF>T='VK7D+N1.C1CW!W:X1BSY^AKXO40 "#"=_O.(L6VZ]^7XE!' M008'+G31)9*MT*&$WB\\+ D[Q*K;F'6B<&H])6C'''P)2-2N%CF65]5S20:)%X_!V'JH=L1&9235.9X=8CQ;H6-MA[+Y39ZCV&/: M( MX>^P_"SQ%<(_@)'5-$.H4H5-5![W!%T E3E'3NK,)3LJ-&3Z-AW MU!ZQ+37O*1#Q[J,E$&RHB0MW<,S%,"=N/'\G M2*]F>^M'M:9??TS:/;"/X(J8Z6RZ:#8U!( 8(R:3:_:YZCXDVI#2)C%2;/53 MA1G(3-L,(9IO:9+C[K7YGN9$^V;]YSFU+3 7,]V8MJ\$[U!N/ST 5#\%FL=@ M^I*E\^;AT^%WM-(BFL\1F&]3[F^YE>YC*5;K+DREU88T^YH7_D+H^#-EU+O/ MGG>$5#L"2D5A+VXD](]-N$-W!$%,;';DG>%H#B26R'(RM"NWW0N-RN.%3"\U M& /*L-40G N.^,(-0(4J:N.LSPU @W%)0]#>8Y526[+Q*[S3=,_IL@XL[N*- MTQEY,FN*FIBC:"-0HV8WMJQ2SL-I6Z:#S\)CV5%MO8E*/S%G;']HWPMOQE)1J[_BP M2KG9R;I*UVF"U5D\@AA@M217(*GJ"-\-1/A_()WG3^3Y3$"5O,%P?_]N2VR* M/N/"TV\Y_KVIM3NRK;(EYI<+WMZ:+R[\3) RN+'VY ;IAZ.QB\,UJB401<4B71VL MX#9G0)8+_[V!L)#CK)&CY _V&QD7/EUK40O2[IAQFK*.8P5;BR1C]W5&G-7Z M0>8'!-8IK(IL0V+FF)FD]=KY[I'S#9;K2YZD17/(!"37$2+/P3,]$Y?MM&W! M33OC,@+%$V\G&PR,@]*(]R MPS:;]_LM'(V(B2(EA4B*E-*X &Q%'S8B+ZHMTA&9$9[/HJ>@KCU=+J*<;,P+ M4]>8DNGXN_ID1H-12YK0]6R-FZ/1.<+S6]38CO]QB?].R\L(H9IJW1P!SALU.4<-,50'7,AOCI1P)>81T5 M91JK@E.=D@R@*I3&#U)M??0&JD:+-%AMQM;\@W4;/>F/U0XA'_((=G+$*C@Y'4FET<2(@2.-@A'&B+7AW MYQ@>P2HJ48I7_;S0IKQ"]UT$0871X4-9.EV<*!"F\6(SDL/90^'SU:QA#L=B M",:[H.A#HKUKHDUB-,"QH &M?1+3IFAPV0RIV'>>=EL\*2B.#EQUY)<[3YJ$ M^,Z3,J'18-.:-GHX3[H-TCCU$&RA-W:.-W*N*O ,[V'^I<2B_'M_T[Y93),C M46 -,K@B^1CV"V]FJ,5I0^T!U5%#HX&V-VUJ#@F7)/#?G#!\C4%1'/;^A7O@KIKI#/_VFQF-!7G2I.[4X8P=:?H=#U>Y M]C*Q,C0)2C#OA7K(OZ0Z$ NYUAI!.93HJR;A94J?)/^LMF_A8>?G'GR;Q#%! M:'WW .;XGW'-;"'(FV1$HS.F:=+PF4M)! %H1PL"-%(YD\S:"2'U.GGV9SJ; M),TH*,X/(BC:SN#^\>__+NX]"@&G5[8YE:G4]IZ,1]2;L)S@[R0>CP:-Q3*NA$/#6<_SB M9Y+Q.(*)$L #F6/+]RKTE?HK7(*M,E-C2B(;009/2&+V# MIJ<%:.Y+TJ_GI][ET(G.F "6,G5X M8=D2,R%XD,X&6*YO.=@0J^YHNAAC3;Q./Z/LF-(37@&4KNN[9\53O !)E6%? M^C(J%C<9_/8K2.9@!*^[['ELO1+]"8^)Y$01U*E-1>+7*PPTG]4O3 M)!J!P(+8W2Y^0:ZU1!FYU+)C=YJW^GJ"T@)#]JI"!+CU/>\+,(.(>+L<13IL MJ:-U)RWY?N)8"W70IYK9Z?R5&&X/@"X9#3 'ME"!CR#>7R8CZ9_PI-'<^07) M]/+V-B]AH[M]$/(!(B(R_W2LZ^9T!L)>S85BEYX4;LDXG7,;PEZ&4 D7&^+= MX#'H$61-!JE%NKK8-)(_E5@9I/@=80]_O-BPB#VFQ5?QH^>^&= Q6\L,^'F0 MW8GYNNP*'P;MAG^%-)MC/_K T8!@'UVA!O/Z":?&,&_&>X<*==%%18'ZEF&5 M>?HRC9CI$#:7.'((G\!0JJ.&^<%>G5+I/SE&U5^9$K2G "O9D\ C!-8E+,KI M["G*./OPTG+=/4FZG-^%@%K70'7)='!"O\[#IQX".M@GR;>YU81XT:A)/56L M4'/DF-*7OA_*=-H+88'W!#),=/X)Y !%&99JDBRQ>O!47T_Z6\'$(Y81C0X6 M-6F,')5]--(/GV8M.WT.8*R.&3?:-XAK)HKTV?3-U&)Z;KVS,47O>'OP9+&T M"^?!66M_CU-V\!!?>PM2(),LV&=*AC[=JTEFT!/0*KS> ^Q?DIPB+V0TC7EA MA9[4S/1(4_,[0QJC!MI6'/N(@B9[G1/8O=@*,!"G*;(=0[!C ",%/A<=YOBW MB/LN=SW@']2B6T6@;>!N4C;9#\BVYS-\B!CO]UFFJGBB0YEJL'9A5Y^N[,06 MEP&^'JVH/5&8UX2$V43A,=3JT2E2#IMZ\(0D(=#P;G_OU[?7_ZK2X>F+C.$(%0HRZ'9FKH@U[7T\EC+]. MZX7[(:M@453+^J?A(T5L_B<(D>MXI!["E2V M#!+_U35&_-,?CT1,QLDMYK=M_W2^#7$2RW[_0;',;$S:XH) D]WZ #N[ZKAA M'EO@?.UBQWLR9K9^H8SAHXX_HG'4:<,?3U'JML]8EF6UY'8<\WNKZSK?_?BA M/"5#.<_LWCMD"^;7'VT/1J_B'F1];_?@\?=Q]*" 9Z4>9-8?8/_<[M!)G3;Q M-'BRSM&HCI[B$S+FX^>8SK[41Z]OTCS*XS3*]J=]\&HL.G@$Y&Q/G0UCDB=W M ,_Z"Y@EM\L5@NO&(1C\X,L#%@R@XXII[^SN%*OV%DUJ50<;DW* MY>X3@H6V+HXJJ>IA6\GO]HY&=T)#P9G>L[S=]HI-L;T03D*TSI)>@14"?XYXI[D0X"Y(V5:, CKG(5PWH K!3^Q MM4H5U?%Y@ 33ED=GQ031EL9F88+G,0:S]^X;5R2U76>UZMQ-95EU'WO&9L S M5($%$&JWK!!E'?M=7*ZD%QORB*'@1JY&3=7!L5USV#UA10"HC)=<=4@VA,4L M* V>C*9#\&[YDN.FA5>+-&JJ8K)=T_M=7IV>5<$B5PUZH^>A=248,EH- 89[ M_H5W*SFE&+?8CDJ-Q 5D= U4E4T/,X>6NO?76"V$@ _FGIP0*PHU.K@1U@@" M0^HRV\"32FNA[@S?1ZA).CN&?=^DBK$3';W41XXO8?W:(,CCC<+.KW)5>HI6 MJ#ID0MTU[BF(-K^CM,38_,;/HLLK2"7.I0MZ-WKU[H(:(O*,7=K:<;I<;BL^ MLT1RGA6^ DN8-XFB8;YG]4L!9E5VE\ZZ6P!:==H/ \OKC!LS)H+W@H]>@TXW M-3G0:>W,MG=@=VRFH#N\:M9JPT>E5@ TA:^/X0TF@QAZ[(= ^#,7*PBU/MN M[2+C!HZ"6%;F*2;]$*YHW!#9P1WV.9/;O(SR>?J2D3LHH"S:B-^^@G"/W=WG M;R!;@\]8(0N>"VB': =V?8F& 52KJK,";4LOX&K=A AU8O MZ.]IG2+BV8H: .A=1A3.]H>(;]P^+Y+9DUI_C#?43A;E#&4-A?,C5BBD_W(* M2+^!%6]3MQ^QWCAOB)TJS!FJ&@CE1YQ0(/_+28 +R<5F M&?'S?>7S?64OW7:^KWR^KWR^KQS(T'F^KSS.4VF?(_05U._K/8&X0I@L*,9S M'.UP9G[W@L8T/[RJ4=SF<58EV/E@23')6P]P%+^"+)F4E[ H.R]Q/X(57C#7 M :[@8BHZ0$6*>/@ MCF)I!LZ9I<\05U5E(.@6"3+(P< M@&$:22>SOA$>P>9+58\WCRV7@W0)/V69.2')Q*I"Z&R/%CH@ *OL(:/34^+< M35-:*9=95!3I+,7R%I=1L2 S_AJ+@B4GNF'OIAJ3.=YF-2#S/5N6)>6/V*YZ M2QC"L726?,>+Z3M^KF2]RIVI3+7R]VQDO10]8M,RE$OF0MH\$>]H 8=U> AA M]E[+:5*3+.N4J9U-TE97!&"C?05U>F?!CF_Y"&+"6W(1%=2I<6OT>GB;'7K? ML_G9[HX1&Z ]455N?EE3/G.86H+7,XKR8@80,=4G@-9I MC$UY.F-(6I $S@7[DS#'OXLF.D"VVX3W5P-DN()>E,DT$0YK;:MPPM(HT@&W MSY,=;SKNSEXS[\@9UCY.$:Q>V^^:PDEOP[Y*8V+7)JNM-,3:+ YQX83'9OOB M@#YX^;55P,NJ_1V 5ZJTX<$K8#&$)P*[Q_ZD[[_P"S.>@6$5/@W8:JG$"TH5 M.0KA8D9@GC5U*SXDWYJ5#F!@YUJ<96#L[O68S9(X#02X_:MM. M/7.GG*GQKM=-?O=:$3VYKEI-71N#/+NNU;%J&2J5GUY7:5LQ%V5XSZ^+ M$FNRWP31!Z*$D$9*51ZAX,&JIB+7\)5Q$<**1R >_XZ!6B5UH YP=\ !*!5/ M\EL$8+A/I N$4HORJA+@QGKE!'Q$?$UA:*P(*Y T:/T$'DP7R'JQ^1S]$Z+Z MM)0XJ*I+07T0I2D,&WQ5AH;:Z"I1D"0L*V-&<<#E,A&X[WJ0ZCY:BA]:-Z2B MCF,VE2%"J=HH4$.R@IIT1^DN1XIP%G(2 J0?L.^=2Y[>9I;I'L \+C,:5U38 M05!-1ETLL=H\.I+(;"L$M%S"Y:HJ 7J"L_);A$!'C$ M-AKU> AA17Y9%25< O0(ZIT%2B%"E.K4[:)4K6YX*#70B764:O$0PE+^'I*3 MMRM0@LD<@7J1)H:FO$('CZ(*P8%067K;R%-H./#GB-VM7;B1[)&L7B3!:H_+ M%^48]: +F.!BT8RWVFX@.D>H@XA0MSN//E; T8=:I6ZF)DFET XN\A?,Y^#B.;AX#BZ>V )]W,OS#B(UB#O *7V#RQ2:(Z MP%$\I?,\G:5QE)>[&8/.3(?/?J5#J1!,8^=3 M;MLV13&,=61'-%'(0EQ8!FV/H0@]*"B)U0,8$OH*8[OG<$*!RA:"\%]=]."? M_M@.U%/4)'< C%B!K-A6M?QB0^SZ2WH+*HNEAIC]EKV4Z@##B0X0#GD^ #O[ MBU)9&A*LLMYVT*6= O7D.L($CW@'#0*B0V1H^S6=+QX0B%.BM)^O,',?KIZP M"B%B+YKU*K7SL2E4\N-AJ'4&-)25APFZJ7T^-/4FAD#(%"PG&7;_R:PD18:T M4 Y-G M_!5<[1RM*'N*HSQ/\_D6R$J@,:71AI ^C3$"JJ:SV1RL/(%E&L.<2 &1U%65EVXC M0U1ZC(!0ELX !PJTG3[4//3N!A53&F1_@Q5CZ[W!(0Z7.=CB.)7(U_X\[S[T M=5QB\.C7+IY!'@.[QJI!>.9O"W0'\WD=R52[>]>7'"?*I$_N'%?3BZOU[CC# MJ)MIN\''Y*BA054%:M>-^A#E7D$R(^HC%F@3OE:5Z STEK@,-"ZYO]Q^F$ZC MC!.3NK5R5!/$9*K22:L[%Q!.0MC#8 ^-4!O\\U=(DC+MA'' M+^LU "KO&:@G'+5$X+:P!X>4LC]P%"#^:0[7;V/RZ"?:-/C8_E'#H]E?:'[X MX\M3=RN!^K#;-6A]\+=!(-+9K-M:9(8(+M8Y;*XKO @'@G RK]!1&)DN-+:>4Y%%LQ?%)/U=U- SQ,M[ MCB$>/G0,D7P86W?R>#8SQ!89?Q<>]+KMZ1.GVPX?.MU&/HRTVRB>S;JM1<9I M8*Q'M_WW(Z?;#A\ZW48^C+3;*)[-NJU%QFF,JD>W_9\'3K<=/G2ZC7P8:;=1 M/)MU6XN,T]B2R%N9%&DD\57H(I2GTBXRMCZ3RV'JI3 (4OWX%T_]>.#UCE1- M16\0*U6@^IA?8;0]KBBC:?]+R5-H^.L);0-X1X$>/^.T+RL+&+/:&3 MBQUW-E0G98G2EZHD^ZK/\#J*%YV:TQ78MG0.+Y]<>)G%.WN>6Y8XZQ"GA7Z]+N<2&"%23G4L\R]2[6/Q]0GZI]N8@J]3(.E)- M&H-M0 '- =(*GO?^SGM_MO;^KM*",%$A<%$5>.U4%%>@B%&ZVEZ5:VT#3N)Z MNDKS^0/,TC@%NYV[#\-MW=V#;RVV$,SQ/^,F'^,472ZB? YN\W:)-(_3509D M>WC6Z':WLOK3'6X;YCI"Y*YM\0#0TR+"B(F*-,88N4JSJCR KJ-*Q5H=14EK M^=T"M(<':*H9YDJS-U_M;1)5?@X#6E7@?\%ZK(@RGXE='D$,TC59+9.5]1T> MMB#3M1&5:SLW['(!8TQ5>G>HDG,00M[P;9@JG]^!J, "1B]IEI8;SE@G*=T9 MX[BE \:=GB;%U:(Y'_)ED_ M8AU#,B4V1!3&#IR@94U:-2/J:;.>+/ITIP>S%>$+ GW)];:7P=Y#ZPF=7G:B M_D::&9?]3(2[B1:,D5RE6"0$\)AR ?>+\-D7FZ0[QF.'M-\53&]T0:>JM613]#,T5GD-T,)&,@UQ M7[09VT0D>MIF^)E([;F; .:B$6YC39)_5D59^[8W$ D\7\&:QHA&QR(T:9S$ M"J:/WMPN7,PX"Q#^S[B%Z6R2-+P*72M1T0Z8V46]KR',>A%JB1*AI/BR2J(2?'CW_I=W'X5XTZK;'4W5ZOIUQH6="_L)SH0A MJ\&C44ZKH9.#W_L>\'O? W[O0X8?6W '\.LV%.#D*A+P3SU&/ZJN!OS^%/+H MQQ/<.OSHA@(,AXKMZT./T>]#C]'O0[CPXPGN8/3K-B2#WPC?4.ZYM.#N'?E< M7(CVA9RL+M2V>H997[B?897.;S^"8G?TF'-7CU.B=5*;*A'T?HI<9C>[):)V MAY\O=<'$O03 +<,&U" 7[WC=0*-#[9I=AQZCMT<7AM0>//:#*/?NED)ISJ!" ME?9W(8C?1XRA0BR5"!;'%[M4:(8'$?4A@7D?R-N@P+L'I#LJR&_]6!\7QKAL M/_*N!!.A.OT]I0\5\SD)85$KW*:TRD#7 #(F/'<%^]](2I>?,A MW YTYD1PMX4'!+CS.VPN\X-DDNX7.$NK8\]WD<(U><= M!\_ RN9O@MG#W4+Z\V)S*/(0;>J%^;<()7>2/ [V"'<3/5H@;&\&O:\(2*>S M>F"EN'K(HKRK(-UJ[5E2J9K?>=%B/T-CY;!S ?;F;#^7ZG 41%I74]7L%4&^ M%I.J7$!$G%O;@X"L'5MC K^=D*W(E_H=FIU[$4+P MMHD*FK!EG(99H"?/ZET?"*7O' M7:?F\4ZZ6LV0 6ZN(M<+*4VF_#V1./Q::AVE69VN#:)/N&[I>$G%:\[1RHIN M+F0#\]P98_;I5"7Q]VSF@*8\29*TV9;VM4$B;]&V08M:/-NT3I>$8-8*PCA] M675HRVYBI<6T*@MRBP8O7!O-V+9G63NVK)C?SG=MNXKJ'[/%2D48XN7<8^^@ M]@A 0JX4P?QZN":'1(UOBZ("R56%]@>+FNT"MM9X'H YI>X,;D(I9..S MIT(?,V@/)FF3\'!,YG/TFBZK93TMIR_5UN$GI\[_!T3,);):C?8\(ZL1,CKU M5>)Z-%=DAD;;6,^_F#BD#Q6*%_C'!Y3&8#IK'0+"NHB!^ 2,TP9M+<@4&@S9 MKKQWR)B75^JRT%8]QJ,PA/.MT]B>)7^+L@JPE?0)P8)[&[ G.9:#943N).S- MCC)]N5I].*5MY90.EUS_JTK+.NZ#JCKL,RT7 #TOHKR]:BMN%6X->&S>UE$4 M[>9/PG:'Z:PQ'UPQE8P>&VP>: EL;.CLY=8?KZ(2W$0IJD?;@0V%YPXN/IJR'25A-A6ST'CLAB/"'0 K: M%&T>J1IZIVVK!'*&#'0N[#@Z#2%JRO)Q!W93(=NMQTX8\XZ:BA325P#&>N;) MB2-R#_-U2UO>77Y.^]Y<>JK]DQD%!NBNH%URGFC2\>*4D@#1)[YN2;PQ+]+8 MR9: :GON[K)UV_NN[5^S.\9L[\JBT%F$QGADJ:='=/T*4)P6Y)J]XA%.8?*O M83BQO HPXN1DAH=!NS" -40?(>DA981O:EA4T/'(ZF'DX#3H;H"@&CR/ QH= M$I:Y\V2AK7JL1^MZ^$M;/8#]QN$2JT>S)F M[K%[ E@+JHLDC0R/]4"8B7;NX3903@72N0JS/23T8,%:1F,3%K[K@:)_IXUY MS.@CG?0==@^O^6)9,*ZR*Y!4=2(/S/4NU4=S$75W136+\NVEU&C.W#7J1ZF] M*61**60SLZ="UULZ/9FDWXP)YOB4UG2F-?&$C5TM10PVF L0.-;S/B8:V:]/ M)T51+8^WG^H\ [:=,N4&;;E@"@V>KC4YZ) QNU?JLM!6/<(C-_N)$J U9IZM MEOTYY%H#11V);'^_A$5Y#\O_ >4CB.$\%SP5X[R]CDT[;.\43-I7=WBP:/>B MT 8]PM,VSM2PW6R&:/L3*<>+FPS#A"_3YS!Q'@]Z=ES(@X18/GKD&&&R+"7= M/$>O%R#''562B'+[R_4K^2?/F;=+W,32%8A_-Q:LJ^BQ6*8ZW[3%C? 8CH', MNZ7&=-8^S6'/Z,3T^]L=C_YW:GI*ZAZG]4E8IPUPC,>)X@5(J@QL;^2+U%GP M]/E,#NCSMK!LT^_N6-FC;]$ HRSSNBWE2,D^=J&LLTZ;'7WRIT3U>=7MCS O MP6MYG=6M_/V' LS)/P8]G9I%^7VT!)/7E#>SL8ITSYP>%;$([P56 (JK%_ C M_A7W5&LGOP-WZ[T+E33 !JXM9HY.E[*8H" XPNPE.\:O:E]! K+C0AR8[0K9 M=&1V\/HQ.>+@&&7,/F A2D%$RIMBJS>[E!RVM^\NR?UZP6FZSJP^QDP MDL4HE3VZ_<$MZ]=!Y:@:ZHDD[-V&].%>A(SD$-W,>.:EB>@+.UR]UM'[H@JU M1@4";3%UX*!!G,XZYP$8X)LA-G0J'L%#K>*X$&(@K!9(M.C3A](]S1-UVD3" M$.?!9=FDU4JX\*.>:":\\YFJW0"YR3\"[_X$6Q_/B78!9562F&BIJ# M20GBQ,4*7-R"U>1#ORM7-E4$R MNOS(@EY]>IH5!I,HR&Q_W8!)9J"+R]Q@VUG;"!IF_Q$4)4KC$B3UAR]82\5C M4_HBQ*=2G0Y2)75.$[,ZBAH$O6H,.MV:XG@.+PZ: M!$X+P;U5Z-]S,..6PO8(KSX$OC/"W0(.:6]$M)$\R.:(VG[T2+9'W+OC!2I; M!H7_ZAH3_NF/1R(<8QN;^6VKULZWD]FV%LGL?KN:W?H #K,Z;IBN!N=K%SLN MG 3AOBU;OU#&\%''']$XZC2?.TL]NNTSEF59+;D=Q_S>ZKK.=S\>'D_)4,XS MN_>:HKO^8]9'UO]^#Q]W'TH(!GI1YDUA_UE*LR=%+^C*?!D^78 MJ8Z>8A_,?/P[E)/EG592[=%N7"R+&;3Z)8UCE99K/'U":Q^DJ$YX2,*'1 M/46@1^-DW#4;.O1X"L&(RQ".0 ED$>Z9*M?KX%VAGO_# $:]"\V5P5[:ZG#1 M!J=ZZT.$3&GNVFG?NN;72GW(WPJU1+*].=J;I-_M4O4NATYTQ@2PE*G]UJ8M M9D(XMN)L@.5N0PXVQ KW%)V/L8H;B .,LJ-W?^_!M[98,,?_C!L72=G]5:0A M='^E-$[<_=73X5#NKRJ7(82BR+[_=#9)H/P\H:AH!]7LH@/[M:K=!K5$5AAD M)0VW@29L,(39_B#H$WDZFJ2E^K)*HA)\>/?^EWCZ#O_9 M?&%\.&H%O)8@3PYY,8\ZAJS#$.$P+GZ*X?)MW2F7<)TF[S\^8-L RS2^CQ!Y M>& -KD 9I5GQPW!G36N<1VE]5?&NFX^F>S+5%MWN.=;^=(<;4Z;8,8X(9]M<;3SE< MLM?+4%UZYIC2FY/V.,/G0/8\B(=MOREIZ2**OV9P_C^@?(87X)"$#U6EES\ G .8I6BS2.,L[)1VG9UH$,0=EA M]QKM=#[4TXAD1[$73[L#(W)>?'HO?2#96$);#.91=*6R;4CRRWH];BGO**@G M''68B-O"'BM2RH-AI0#Q3W.X?EMO":!- Y?M'S5:&E>X^>&/IT]=3Y?ZL'-D M6Q_\'>^3*QH*>*8[ED>N=A=I,M^3Q3//!7JW>=XIP?Y&+S]#Z,'L/62V>T"$ MNR7#!^%]/GJHLOWY1#P-B=RNG0MN\T/D/=SRP1P>^ 48"/$^]7/5"!4X/^KC M+J5N)XT@/>W_@2_%4[5:051NF>*?.I.5;7<>OZR?.5V@9J@G#K='.[=5I>2& MZ%X]*Z1F+G]VR)J.]0Q1/.WV-<41[LZ9SA>" TTV2%H*!)V48^! OZZ=":LL MZV_!A6!=%YLFT-T4%=["[TE-WZ;8U+P?P+*"'CT#4M"CU3WL[N&'OBP.OQ6@ M;2N/Y#U[D.S.K^^BL9*40PIUJ)1#PCJCBVH*^QF:Z<(4NRQ>CA,'J? 0(#CK MN.P483\/"TC8W<9HA>A4J]0]YB&I%"P^M;3A"J"*3/C<&#LE5X-[$')DSH;H MK.1(O VUTY6A^!MC.IZY/433>KEX/"U M6MTQ4%;+[]1N$1'05#7,,:T_8T.E.W!P*QS'J#S M?1FMTC+*R"'=2YB7" MV"8OR=KF*4D2"\'>PX,W,6G6[=]35ZIZ"@9BHR0/Z M]=CRN87-">9-EA"5Z;];$D]GMWF,ZJ,D44:8+Z:SZ4O96/-.*%;8KR>I=GC0 MF%3(T+:H1(=(M\+E$+G"&SYO(/HMRBJ\%D5)5P"A-=0I,[NSX=H0R[X/B^B\J@"WX8\ M-4R;F?.&3\02_7:0'V/U)1-ESW\>WZK%6+FB"WEVB-K:9/1X_<[IOH ==?K; M#>C+KVRA] ME39ZOVVD;F[Y&!$?L^A'K&)[7;$ M^52E"5EXWN:-S!< +T7)NSR360G0,URE\2_O?A$>7;))NF,\=DC[76+U1A=T MJEI+-D4?E[+*:X 6-I)IB'NL:FP3D>AM>?":;^WV]\UDSVR.]3MZO.;N]S.-W@S(C()FV0#)9$H^[>*J6RPAM[B1W*!I+(%,< M-XM-D'Q"6/-?<@2:FU"D+YJ0\'/TJF]O>G35+5&5[ME&[7=/V-:K*7((B1]- MI"4]Y,*NF70MV'6'[MFN[7?/B=HU6V3*KD>8SR66VERR MK1,(,20MR(&(@OU)>"S;11/=\OBDJM,&*^ 37 .5$,N%I+J4Z';!+ZG@^*^BB\Z&9@MAG"RTRV$:]&F-# MO"=S"1'VIK!G=05>RB-7[!*@,IV1 TU$SBOL=!4I&Y_]";7S@A@2.@TD6U.E M%WA;X#:([=FB "5)3@Z2@WSB4][R&MV-'%&-T\"VOG*\CM$J;(6PZ7C]KRHM M-XI %1?N)DWF%#XM>"JIQ"LR)1R%L.D7V,J1?T35 H!;UJ"6\"< M8GOGJ;1=49!Q:*C)5)Q;R,YLJIHAR--\.J8+1 >O=1UE52T-7@_]HXJR=+;! M"R+;UX64;JG]QF1E>X&^V&99KQ"XX]SHZ46C==_-@,9PP\9GN*Y/C]SF![:S M#'XC"=W(&O<1%'B5"XI'F&4W$'V+$.\=M!Z4.L.*$25_MT3-,0)M:HNZIJC- M5WN@ZL-/@%Z:6,B+*",_<8"N5;<#;<6Z?EVW/GT/^^F%.:4:\-.&LAX?(5R[ M$DMTN8C0'"3/D!Q5Q+]O']HV0J^$EA::N;1.$-UJ>O./=AE?(42_Q1)>@>WC MW;P-:-WJ6AAO5S]!6'.UXQ_)#%8&"(9;78BP;AH8US=8@'BX<]#;7^ZK#SM> MLCD7"@/LV,_TB^U2$O[3JZPU]@X3)C2'@O*HJQ(_U&9#?:35#BP&YS$+CW'H M5-7S%88ZL*_9W>K>@?*Y?#4.-)R!X8[?\U[2W5K=(XA!NB8&MV<]F AAQX'$+7),?+-7RU83 MTE"20BU&%$E8:]RH-!.^%P9UFPPPG$FK@AS@GP&$0/(D'=D''%+V?XB5N1%+* MWX&H ,5]A%"=)'SP))_'C"7-<$!M"W7/3BE5ZIZ=DE0:\*X7 M%T]@BB[+H@ M"2<>P9*V$X+S? 2P@.!:: MG'>;SBYA7J(HYJ4]5:_8@95*Q;$#3%OXGE#3:"] _YU(!]&Q=(\@!]^BC @I M *!"+0;ZA+5"@)ZZV!9PI]*83[^;LZFV96M:-UW<5[Q-,U&Y]J88N]Q8T:$J MFB$>Y.1#N-?)&D75QAF%6@JS7'#CC+K8#N8WDW&&3H(V M!A6>JU8%YB3U%X MWDI8E@(8L^SX8247L3>81$U0 ]6?QX>98UE_!^E\05((KO&OR> 8HKL^NZ"-90$8' MR4PR02-9KAB72!:U+D/R7\:.Y(=H4]\%5,)KM[ 0E8?"86&/(Z15A%%MR'#T MU_'AZ#8GEI"NP3-LO%YN?)Q3CHJ(4^7&#AR9:#TQPR75^6FQQ=5]9$>7W_L,Q"[YW"HU2*-NL'/H*N].KJ/ MPN&%?^MUEBNP0B!.Z]#\%2ABE-9C_G2V"];QGA"W0:_]KFD_>L/FME+ #;2O M-DD*+#Y3^Y=7K3 S0!#7&N+OHR4XB,4\2V2#E";.V:3\/JMN!1H:H%=0'_V4 M;X_P2P!Y&)@!C;\X^_\4FWGEE7*XROA?=4/584U@@^KZ;T# M*VAR"%!<9! N\7A?5)\9G?$,^5(C&#_%MDG .EP+RGH%ZPE&C$[>%/3BDE/TM0@L0_S2'Z[=% MN4(-.,B_:F TD,!__?'YOMOYQ[_NNGGWJS_O2JY*R..6[C<>K;K?.C3\]U = M7$6;II.V?QSZ:?O#'T^?NFXR]6'G&K<^C*S#N#SK]1F#S$F/NDS7T_NXR_,M M^P^\7E9%"9?-"Q0'&+;M/)Z4W<\=F0Z?_89A%90/I4(P M_6D^Y78XBZ(XQ%Y4<_A].MO;%VLOBENHO1?%*#3&_E02R*!7)71#2#E(";@] M[!;- >]@KDH5V1!V5&6,D#$0ML>PH-3* $D ]>_T4NEB[@&>QQ'BGXY5J=*] MVRNL,F8X:0C; TY*K81PYXDIB Z.= 4('(<0X:!E6!N+E%BBXYSB0O+)C./ M1[9Z3E[*![0,IRW)<2SZLM+8,X)2$EYL)&E %6K(\-2N,40L0M*M(H!QA55# M&96_4Z6!$!)5T)+B)H7ID11J2,>E5@WOJ3A5>DXX5/'$54/2H37Q@$6W$@2< MMFM-2AYAGCC%6EU8R6H-[#4QNA":RJPX2NU;/,*68DLAX.NPVZJ',.5Z'8PI MU!LURG3E[H,S];8"3*9C=9[D9@\<8*84)0VT-U6J)0AT.5F&@*F+S07(X\4R M0E_U''EF-;DWWZD6G$LO$MN>7\]N)4R [431&[DXU:0 ZU8;@Z_/[DTASH32 MJPYD1^V*$<=I+P3_["G*0+&-)=Z#4ORRMZAL]VXBN^S OA>OIZ">D(H0.F[L MZ"ZBL)$0<$/O\@JA(RLNW54/!T"*HO;&D+2=4W#:[_,.)L&1G"S\'/T3HL.Y,/8U 'ZAUDE"5J%Q>N9*(FGZX1*: QPU4.K^Y@;+ M$>/<@Z72LBTP",IZ/YI/='T_@DA^S1YV]0WJ-4(5:/M@J-N4=YLO3H49JDTQE; MUJ.XE(*5,HHQ>[5=;-3]RI6G3\\RB#J=CB5]>P,K).]:NA2K9]NEQMRQ7&EZ M]"N#Y@ G\/QY6CE57:R0+KP<$R:OD4_0$T#J-62>@ M9,5:.& 7&^_R2T$L@P68D*IL'V@D8\56!G)%:RL%^]4WI;(T0EAEO:[(A'T$ M]>2B!@H6\0XX!$1E"/'@TG]&Q07)&?"$M0B1X+%?8<&VJ\ IZ,];D.L=:LC$ MZW*:_-YA$),=8N&VYVA3D!/ "KW,*LCLY>."H^YE@4Q]>IE)=N1>0+_1GND9 M>A_O>9YAKP%?[ANZ'?)' I/O)&>/FN_8*TN/V('4R\-+TN/[V'^1?PV.J-$)YI\5&)DJ6/D4NCED!'1&[[[S[EE LTM,_Z'P/$\6L L M34A*Q+WHQ73V5,+XZX*DBD7%];^JM-P,ETEFS]>=)(,,OV#W.!^CX*!OQ]1/ M2ER!W=,2M/8?89;=0/0M0@E'>$,J]+LS>E3\GF 3]#"TI0IV5DBJX<[;-$8- M#K%I47-V6Q052*XJE.;S!X!2F/P6916HOVU?@KU^QYLEOH"!Y,,FS MZ$6)TA@/%E^PBHI[4.*A8A$A@(O'BRB?DS29V_><6!LAWAMO;ZYX;-RO59C" M#P[<*TQ+TQ1FOW'D7X@166_#ZU#FZ[!U!?MUTOI)&+#[?O%AP2ZE&.)PT'/T MNGOQ\!'4N6*2EW>\24$+5]HD\H&$.PIBU;N+? $ 7S$>:E$WM_%G"N0DD-Z&)*IX)T M#7UY@KH21PK)]0;'^B3Y9U64]2SV#"=)DC81@H_W9>;/!F9SGGK!MG][8IXSYE_$9 MLVA>OEZN,K@!S0;D0X7B!58(<40-7#0I+0TO34 K.%NRH3.?OIJ<)PKU?PD& M]=L=-YZ(_,AM+VHZ;IN(VJE@7U-O7MTW!:XH_/]U?/B?E@N2TG*Y0F!!SJVL ML8)BN 1WL&CVGI^C5P[8=:IVD*U6-3@8&VC$-F:U6* ^G%\ ,5,'R3@'0)D ME>D> SPN$QRV1#+:!A&[+3K(-,(3HXP#7X*IFEF0-0MW"@:''JFT3N9.=H,T MCD:8\ZJ9Y)O)GX<@1I$N=HZ*A(<:OH36\<)JBD:*^SQ%YL@K'&,;^H,A>L@;MQ!.#.=E@$F0B5JK#PPJ[SB!/G+,[ ME04C!4'%J*(2#JN1#B&'9T< 88I%8=D.8CAEO2<35NLIJ">D&"VLEMK@$;<0 M F@P[TO8S+;B)T)XY:@4G%0YO]Z+N$N@ND1,9#"I'R?2Y%$- 0V3.*Z657VL MA+?3A2L6G^DJ#+5@!G:]%L+(6W^(WFZ.P?)=83R-)^+[W&*"U.O M2[,+CQ1,2K*9(4=">H \K_[]'6X>::\>CRAYM!V71RU=M"NG9TRW/6^B%-4Q MR,\@*BK47/9D_PC1YPA]Q5:"UPM/(*X0Y@&0#!SX"TCG^>Y0_79+XA*29 QQ M65P1P\J*X6Z+[L69% 6HYBCW9\749$6 MU)J^8TY.VN@8H>4VAKS>N@;;PR)[F:[2@E@#%H&C8;5*U.55<26_TYP;D$!# M'3''/*LL'E^(56(MA#7!=KQK7@F/-_N!;J>IC3JH^Y#JC@Y&I$[, "SHTZ]9 M]&(XA*6+#S8[ZU(HK _''G"Y2?,HC],HN\T+ MS"MA1Q!JD93NFA&O]!#A%?N]#W7UX@SN5#A'QL_PR:RT@?J,HKR8D83AN_2/ M]7UOAJ0%>8BU8'\2;H^X:*)C$G:;\!Y\DN$*>E$FVX[8K+6MP@E+ 9K2EZ=G M5 \L&ZR(3W -4$XD$VXP*]7I@%U2Q^\RQ$GG0S,%,0%LD\$VZM48&^3%(XA6 M$$4EN (OY='NXB5 93I+,2DBYQ58P2)EX[,_H:.76,P(G0:2K:G2"[PM+^33QQ]EM?HQIM%-4X#V_K*\3I&J[ 53C!2$:CBPLQ@Y*G# M4TDE7I$IX2B$S"F!K1RY\?@0UHZB,/Y BT>UN/]8EX\C=$GV.U87AT#%KRE M6(K%Y@ZL >LM"[/*O'UY2>73VU\TT9K'[48]]D+PN\5G9/;""6<%(QH\R*O1 M\+\CJ-?U+$P;:$<,;2$K3-QJL1#$<86=$+?YJBJ+6OKW0F].NV&]3TW)+C9VV\ M_:R-MY]/"&]LZ=WCK=MN"!M;WMU![B[ *!Q"X3+?CT>HN*P?RB<UQ&2O)S$,:QRDD#_ 69IC%>"YN?W.;$^ Q[N.,?O MK=%K1_[ZT;,8$XV*.I'[;;X]);IMEZD$:>&CV":_L)_)S%Z_04WYCX:&WFP< MHH_2YH>(JC^C* 'WL 3%(XA!NB:;-;=Y"1 HRL>H!/4-I^0!(/)R:C3OGK'M M1>,H=[XVC5!AV%-;CM!IS-4@KZ$PF'T$JR;'?Y,W4!6GG&HR:%+53@F-8IUX M!""/D1#6 _8L0*HW) LE256!PF-KH@L7PHPJ[*[=,:[KZ!1L^/M*]4,$*GF MFK$/5A->0HA[WU>D$\F36"N(B/3UBU@URA5?+=>XR?LI1<>$.W'B% X:;DOSNX"9I7G8HP>9;&AR'\'/T MFBZK9>,FW.:_+])XL5M>'=R)"T"2NUQ13UWT(=%V%+5)! A)"[IRY$":,N7T MN0@.7K'SD%1Q^7N$$)8.B_.<+L$-BI9,:,I+MU$H*ATJX)0UX A;"NV'\/Y" MYRIY?40MBHE*/N&^)(/Z!9CA,OPT] 84Q$D(Q!0"Q&M_3;F;R$UX"N%=A4FR M)A!'A$:Q!7F'7 "ZW3\T^1(@X#)P!25J>2L;(+1\@X'2U MX&Z4DG,0Q$,*]'I'"86JU>C,LY)J 6-24R<.)U!51J270T88)6F)TG9'=T]\ M%1V#Y+TO8TJ&&EUUR00,\)XZ[V/EH!QYT]6 M;-LS_&(^[_'9Z4VH++45/.YOXDD;'> 2B1*,'L%J.PM,Y@C4D.[*P3Q4;52W M!3B-NM[NU$D[$?:3^PARO,9V:-)O9(C#CO\-L$,!\S3>98+!PO'S!,E+MR=8 M46D_7J)9/T!=:2E<*+>YGP85VOJN1R#JML(HQB#6-0[K@Y#XHH:'86B$NSJ< M!5%QL6E_$:11T">@MC!F$@C2#>NM*;L.6@]V0@.T\!('Z&MM,N6'Z;?*"K0F55]#O95U!5T -@:3@ M.+A@"C1#2"+08Q#A7I?U-XR([L3:'D?4+K^Z'TE&.!-Q3_%?;$A6+H%/I5%3 M]99&NV;07I2^;MRX3SI\!'VGB$@C' ,U:JJBM5W3NZNET[,JP.2J@3E4*K2N M!$-&JR',O'< +[ 7,$MNERL$UTW2 V$Z%84:'=@):_CUT'2Z#YK(K(>Q0ZMM MC*FT%@*VG YQ7+]OP$%.Y BZ&^747$*?X]P(G<,;HA%PEZY!,-(&P5JH%90$R_WM"I'BG 6)@'\M5;#D$WW.0D9&?NF\<8Z,D1[_'P5$Y M-?^@PZ-[/U;MG (6@7?*COK6/F5P^!:D-RF2S_XA.KJE 7)OJ..!&S-C?.UB MPL6\*#W?1NL7RABFCR?M:!QUVO#3DU*W?<:R+*LEM^.8WUM=U_GN\2 :0\E0 MSC.[]YJBN_YCUQ]M#S9I*?@]R/K>[L'C[^/H00'/2CW(K#_JJ51EZ&0?VW,_ M>/(.YJF,GO+S=F;CYY@R&E_!N'FB*=^>=KC-9Q MZQ7+GB'[S5[B=1%V&A(2 M'[^(LBB/P=,"@$/J,Y]M/D0(:V !<'%R(\H+ W7.T#H0,9U-L0-8*]RE]/L& M>5QE(UR'P"JV7#=K_LW!O?C MT5541@Y;W>4.=-A$H\'GZ-6M63036#ZO(^TN6YK\Z=W[_\:#==UAM3M&D)F7 M*'VIZHO0>%IWV?YV",5-DES?VUF[-7-<5D6)%5Z_;/D)P#F*5HLTGI!GXUW. M[<0\#O<['#M1I*-![GA6_$<5H1*@;'-S>/ES[YA^R:,J24N0^!D#XP5(J@Q, M9VL\!D=;=P$SF*6S#=:%%R8,?!8/O@OM4=1;@"Z;9/D5SAL5S?O.&V?._LY; ME?D 'AF@/ $__"PNHCPIR<"$FILM)4Q)"A=QG>]'Q,LHBS_X=@0\0DGF$AP"T#RB/^+TKC>@\0-#1[NC7YG(_ M"(V$,[QJ1!5(MD :"U=U(:^.AA);V[GD-K\NRG1)9H==.MX=KQY&#CU.K\ , M('1@]-&7][/;VW3?4FN]U+8X\F.3L;U58"!N'A!?0%RW%AY ]'P3!&G M&F.(W'3'K9 Y.RHK,DB1)PV?X?5L!LAT>% ?^=TOK[M)L,OJQ<[#KZ/6"?E' MO128SCXA[(Y]R5&S8/@W6:^];I5>?"E?!E+US@KQS_OUE-_A[7B=O^,,SHZ\ MX@K[MT598)N!N_)977Y !O%H-ZM*XNQB=#:[?7!6Z/?9" M_O.">?M?_S]02P,$% @ :UQK5'NUZO@G50$ KFT4 !4 !C>6)E+3(P M,C$Q,C,Q7VQA8BYX;6SLO6USY#B2)OC]S.X_X&K-=JK,I*I*54_O5N],K$5* MRFS-*"6MI*R^L;2S,BH"DM@50423#&6J?_T1(!DD0;S#22(D?:E*D?Z"(!YW MQXO#\6__^]MZA9YPFL4D^??OWOWX\W<()PNRC).'?_]NFQU&V2*.OT-9'B7+ M:$42_._?/>/LN_\]^[__KW_[?PX/CU,!$EZ$.<1,DBCE;H M*HV3O)"$SI+%CP?HBGS%:4E\=GUV@XZC](XD!^AS$O]CB]$Q66+TYZ.CN__Q MIU]^^>77^^7R[N=??UW\CW_%OT;_\P!]Q E.F;)YCCZD\0%Z]PY]BE)T]//1 M$7KWY[^\^_DO1^_0QT^WAX>T=:LX^>,O]#]W4891\3.3C/WY[]\]YOGF+S_] M]/7KUQ^_W:6K'TGZ\-/1SS__\E--_5U%_BV+.]1??ZEIW_WT_WXZOUD\XG5T M&"?TZRP:KIZ6BN_=K[_^^A-[NR,MU,>*!K5$9_%?,J;OG"RBG/66]G<@*07] MZ[ F.Z2/#M\='?[R[L=OV?*[XNLA5'Z_E*SP-;Y']/^?K\^D.G_]B5+\E. ' MVD/GT1U>%6UF(O+G30&:+%YO5KA^]ICB>[&L59IV1-&V_4K;]N[/M&W_K:OA M)^^FWI(\6@W?WK8:@$87]HI':'1+C5>CBC\^)?'7WX6XZ3 M)5[6&JE,A0DQE2=;++H2%U18R1I_V=DA50F\3[*[IC8PID^1-&F$'_T M[B>\RK/ZR2%];QRC%[PO[7!Z3]08G&3/[>9I&R0->XR1_ M_]R07$7/]-'\:Y0N+S>4,+O*,[)-%YC[I>Q_PWU/$RAMBN!(EJ<)YQO++S5<^]:KXAO04(Z3 MP\\WWZ%X.9RV6?4&M5X==/\H?C\B]ZC\& L4_-9^^HOAI08H@NLD/5^V/?Y^2]9!60 8'7@4?!BGT%P2N!^4$#?83?MH_ MQUHV_?*>O'PN!.%5%VP9P MJE)ML_()]9H+LEZ3I)B*D<4?J'B&TZ=B,G1/TNH1'>U>M M*?A[5T-K\_:N,CT WM78H,?TKL4L=;E=X:I5JI^5R7[7;72WXGT-N-S:F\+) M]?.BT+_/:(8C=YR S5$X3# MLUH4=96,\+!TB&UQJ"V/KD.U"2N9B E%7YC8 M_V]B]PF.>3(8W'AW"26_Y28'L]01W>-E^A E\3]9@X^+D3%9Q"QLL=_>B-F;W_?'-V M<7IS@TY.;XZOSZYNSRXOT/SB!-V!LHR1G0LG\@3\X-GR6_1 M:EMZQ]6*?*4)/5DQ/KPNE_"S:[):?2 I]8J<>7I(J+Z_DP0O9^+19C]'XJ98 M[D1Q,? M !( 1'!>Q$%2XT$@3&%$[U$T 1<3R.-MFN)D\7Q;#*NRPJ$5K?X8Q0GU==P[2"LU,K]@H68646+%A4QRAMJ]%"03[P] MZX 5XMZ+G#6;"VB,V .C)K:[>+[#S"#?'57F2)_\?IDN:'R"2=;'NMV3+OU<3,FSU5MFY:91.4E*49G].%MI\P5D(F3%*5)&B@I9^W#N,KCN0K!A>,B)_ MEZU7#8/)WWT7>PW5' $NY%JH](;F40U-N:]\T6@\&A>-1U-.+LYQEF%\CJ,, M9VQ'ZEF6+V! 67\O%:67X1FT <#6U%KDYJ7BFUUNZ)DUNJE1$DQK02:=22R^ M.F=A^4_F/XL_?S];W*?S[3(N9,WS'&?EI.?# M*GK@4*DGK+Z!BM#+(O0M\#,'I7RY+2C89F?''ZY1]1*UWB+Z>EH;,.A/8O[E M.?S+&1KX6^#$8['C]/X>+_+=KLIM].TZRMD0)EG$JYCIO"DB6K0A*?X/RUT9E-[+33 $@VC*8==%A8F,V M?Z=FDU5FLWDS&Q4R C40E D3IB/ZB NL\LS5NNL_B+=YO%H]^OV92+)9&^KWRUX[X5VJ3X_=R@2*X=TGWIVC9]B6D^,;K]>I7$QD2_3?-&7DF+B MM2QY-Q'ME^40W*-K@*OO[!&#?6$]*5TU.\'E_\_HT1:6(/FW.'\\WF9Y85SI M>1S=%>.6_)E?R'+CKE>W;+G]EKS=N:J;%J9&HHIW68*W@0%RZBS-,$];&&@.!'F@4,5;HAT%EO'BIH)/& M WC8.7I^R5;C?$W2O#IK?WE?3_7%Z=1&M/4Q2C6MWV%)DW9X'HG4J% 1\M^ 41+:I60\3JX[@CR&J>%J'#:?"CZ'+-3WQHM?E""7F9CDP+6LP MI2\-3%+_"@$G[[1DM72K;&3],0Z],E=$'?$'-R(-OM!RF]+$RF+^5U6,F/C\ M!BCD9-G(()";-/?89->T>'AX>^CS(445M>%#YHXJ(O?@BSRF'0 ;4V?2=9=MD*0> = M*EG;73DPV.EHR30S[H"]*/D/ZB.R!W0#;3'YLLF4-N&5S0-M%=.N?UZE9('Q M,OM0=,I-M**EYCY%>3$8RI\O[S]%Z1\XIT5.;_""/HMQQIFF,W_UY1WXO9R( M7L.*;EXQTJ4!;TRL3QOH/L1)G./S(C@OSY*\ M0&%<-$Z6IFI&7)>ZT1#[E;PZ1%0D0@T0LU@W+2"P=>.G^J_D9E![2X M#M".KYQ;=2A?&\*EDZ?Q,#[MU*FZ<"*[Q@L<.5"FMVD=X?G?T<$M;RD%%]KJ^YJOW MVN^J+HDV/TP*I"INR^*)9^Q_%)+OCKY_^*'>[YIXNB;M%Z+[EOR]4QQ9Z^XH M7=\.C,C3;\6D+7G %]%:ADH1"8?,+@D(.D5:81#*2=:CM,,PJY^B^C&BS\, MJK"K>F!5="@/V#9I'[3*;A\(N+=IM(R3AYOG]1U9<0@2OJM^&??."Z-"/7[@ MY$7*4=FEG%5_HO+O:6$H_OY$^=DXX'5H&L2I>V_,Z?13%*_HT/8#26GBP.D_ MMH4A-'D"K=NY/J8DRSXG:74-![V2XSV^)RE-K>,GX+!2ZRD[E%2_^1WL;X-8 M%@!KD6+Z"*1C1N??FQ0?TNSP[8X(K0JJJ?=KH%%+!H(,/Y&%D=Z:]PYD9V.F M3-35V5E):4T- 3/B.F5"0^R7,F'4$HCK)W2*%'D3:M99??J8[ KDKU@1FU5% M.7G.GV%W$[M.X=,FE$RMM D[.(V:-L&.E-'=K]-O!9R2:%6?'<_>/W_$M-+E MYC%>S&E=D5OJ+F0W30!(VJUE>4CR7/?R_@V^:V0^#5"MI[G+G=6G$]F^=,V^ M*P^2H;MGU$A 3 3ZPH2$MF@S, M<_*UH"L9.,N$$F=Q;%0M;O 3=2:_9J1JV9JF^!VT4PJ?E6]1\QH5[P\+@J8J M[_S49JNAV>2$3EV2Q M001QZ+)>_4TM9[OF9@#8@XI,IJJ\<$?CBS'R7B;P%*5?8:'G79;*1 ?D5;FF M^OP0>/2&0%EE*G $3EJEBAWI/%MOHCBE\?;X,4H?>I4TU$3U?J2$R&][4:D9 M8K=0ID"Q^2=FF;'G*-Z]0(ORS<3;>.J^(V9?FM]D$Q*W]LS&PP)8(K%,LH76:?-\MB'GCT\[L__WRD.D9D MQM,]6:'C@4BR-VL7W,D+K3YM_KU&PFQ^\QG1)X<_'P4RW+"# )^/;X6W^ &,4AN3\L:,HAMDB86H M,2&V$XY'9BU#0LCQZC!3^)C>#B;GZL,FD(OL?#VI=$CAZDN]5VZ5J .]%$BO MR='+L%(IM5O9%FXE>EENQ1 T;HX%=ANW.19-\\K.<981?OE 1;)+Z121>.9J MRK7";,5*-*BR+ 4,]**5ZDJ,I@Y#F4NY8A03[[$J>X^8?.U>+F.?M)VD. H2 M0/V<5($=%,H"4"((["L"%'6:;#'@'?:$0JUV*.6C(:EL2P <]0%POM\ D.TF M.@# ;;]0$K8^1=_B]79=%HDX2_[V&"\>^Y4^WF.:]W32NZS.D;OZ!M;<7KAW M;"N 6[37+#<76UFSBJ&Z.HK>F/V5\J"H7_0(W3$VM)SZ4C-76!'/ON9LTU)* M8[9! ]LNXNM'?R[JP?!=#A4VQ?=A%V73.]+6:L"+\8ZV":UOG)!T':U0GD;+ MHCMQNLXF'G2.;0G2@NV&!OMK";43(K]JPPNZ(EBVZ M]:,YJ?\QBA-Z6K\WO+5AVHUJS9@\8[Y-RT#&L(8*5:'=2,2L>88>BH<9O76@ M+(B!2!+B!5&6,"%NG=@+R";,[3CL!$NOJ65?X_$JRK+X/L;+>78<98^TF,93 MX22*P< QR?AM2 \)"F/42@"W3,,VFYCI$T[OB*VAZO7;6:U.WNR3R$C18L>& MHN*O@A'AAC,\&S:%FM*@[?"JLFZ-)+6ICP_ZOG.!VG.UT.8;C>C\4GA1VP%J MA2E*C;ZG]!,?F1XV$BDFAT/$(MC]N9N<+/ZXQO5E*,6X]2&-UA=;FH%V>7_S M&!4 ;UXO.9@[%-&VY_6ILNK459C7(7KFB0J>EK-GM(T8)>TTG>QDC0&E# M02NP1 DJ?D"^_DVNH#VN1U40L'[B,YN _>T"WH[*G0#;M-G6;OJ51560PE3;T>(*;QF_RH M] +ML4E4**8W0HYFKXQME<7)/=WP8F>\-U&:%P-OFGA:=/FGZQMTQ_H_*P5, MO0^F[%MBU!7\I$5$VYJCC(44T(&'7(,E5-C$EP=!(">??, @G\,ZP,$[@HNE M L5IN7!;+!0QMWB!V)O RC]X84$6(YVP,&D9AW.2/+#+NLLKNNTJTKHQU]_, MDMG+7MQ:ZF=&UCKEUF4I:D;I#U>L5&/)L1WJ,^RN=YGL9WVW+-_9:@TVCQR./^7[+Z$ A))MX[ M&A?PTA',.)"'797?A5*<9"35S.M$-/R\KDL#,S@3Z06>UW$J# 9H'0[5O Y+ MYG6E@%#F=<*^[0_?%!#H#=[:M(+!V]!(&69>U]-@"15N7E>^"FTL[P &_;S. M @YP\[J.5.AY74^X+1:Z\[J7@P7MO,X&"Z#KF'27>T$>$KK/?1M]>X\3?!_G M6?_2;CUA]=M4A%X8UK< )@8J]<@1K6!KG21-<,[NU:HI$;UHZZZBG3CV&70Q M,>\,#NIRA@;O$T '-"AJU+A@AX9'^HT^W[XO0F3!OL HRA%.6)K ,XXF/H$( M@QEIL/1#C7?85(@&BIT:#4Z0.2I3EG)R4I]^0G11F6UD(',QZ3E0T=S31M<3$\ITG044*8EM_*2JTOI=A7, M@ATF&.'1P+8M<*VW>I4P$X\0G'V,-&31-@':0-I#'9T)O&8+'!0JYAT]_V8)'D:+?*_ MQ?EC?9/DKFD711<*+UJVY*J^LS&7EY.P;)N?3S!7)G M#07#R:^=2+=XN;MY$->AC,.\EJZY7D)&YUOA7ZT?P+I4.I2E_"59%^33<2XR_>+\4OIN^4WQ\7'(!7/B@4.&"CNMJ!OFQ=V$J/\1Z' M$.DA8**ZL\$9*-,Z2W:HA&4J')/U!B<96W>7&Y86]AO.QC!>=Y>:I7G+G19_\:ZT>/3[==&&*&>M MG2__7HR,Z;^$J98&E+M"Y0I*S_K$VC: %,I1ZU$5+);SS5HO4?,VD)PJD]XE M%MW0*V4LY6A7-#;'S8@CC0O\M;FKZBHE2?'/!6ME=ID>/U)C/TO:%'&RB# N*@#":O^L8 \KR,$NSW (P.(-HB-V]_Z;-"1.NB--050JO9E6)H M:=H.624)?:&R$!,VL<> @S$!1Q+G?;SE-CX*WM@\,DJ =#?KEA%V-?G026/*T M.0:(=3=Q9J?E:\QJL*F.KB4T+<6N*8%,&:BU*.L]RUCFU7O4/,2 MT;>(O9[8$ PZEIAW0;](MX2A4Y)[;," ;KIJU+@@ACK2ZO%S=3'$2P")U#_Z MP03@BJDGG&S9G46GWXK>3J)5O2$[ZB%WWW:H%H%\)'>.OU>BT/M>:8>I5XN< M?Z)H-0D $;WU)F>9[?4HKX8-/& %2KHT4^0S4#UZU7,C:3(DZ#BUG^((%KZ! M<*;1X!2YCS2CO1<1QV7X\8SCDR;%-@MD-WGA":)TF7W>+*,<'_W\[D\__RI< MO++B:3*@3'A\$U[,VP6R.V6J49D+8R!A-K_YC.B3PY]_#<1#VX& ./51/T5& MS]M)EW& 7""V]^>?WUG;7H_'P/9:/(/97J]=,%F)1OK<+*^14%O>GXO^VP/+ MZT/ R/)DR#&QO!VOF>6-"CC 3$=#99YXJS(@Z]W&'24J25\1$E6)DN!8G#C; M7'H7W\>49-DU=^-*OPR-NX Z0C@(\+->YQ9[&K*+7H5-VXN;*6^W/$",$5T' M=VF1!\:(?Z_S/L!:4,LA^&-]1-]05<],'LYQE.'LPS;?IOA3G+#;>LM$QNQD MBV\?<8JC^[PW7G3FK[ZX [^78W!NKY]?<%$K=POVTF8[%E3R'*"2"U5LJ.8[ M0/3BYH9U6J_@#B_BW>.<3["6T[@$?Y"'YQ'.D@_Q$_XO'*5\UJ.[ #N?T!$P MAE,0M'@4K]#5Z^T6VN)L_4(Q6*#,B''OA6L0PAVK)MVP&!(Y\"%[_M7]-^C]>9_O>I0)YT$CQGLO'=0[0UH"D#SZB']> 7I M/^T%@H$]LB^&@7PR< (ARTXJ9I"_1:LMOKS_S(Z<9;3L3?&*U74ONN'R;A4_ ME'D/PDSA8KTK^Z%DY@G9 ((-!O(QOL%T%DJT$T1K$S[B]^5LI M!3&['>")2J*G4K>-+)H45PM#I)&&OE)Q*"J&A0G)T;(6.O&N.QRD"3RH^#U\ M;\&MO?[]-SVHC1.@E@QI>30VMVSOM]KN6I)02Q1JR4),&"JDH9,WFS-!4]!6 M!SM$F*])FL?_9+K*MEW>GR6+E!U1BU;'),NSR_O+N^K>E[HN$K^UXR>EWM]Q ME>*WR>/7=H@L ><6*/9\'&7.VHQ5>COU,W'#BQ:4F3XD-3N*BH>EA(GW?SR! M2(!0P>\$N4EK;0?MDVF Y3-XJ >W#);ST+:-JYUMM+C1<6T;.P&[XG.OVS+D MF1(3V<:TV13* H.<,1K1FI1T';)J)HS)ZU0X%L8T*-4:<&7,O@W:(**V,R6/ M8>7+T"R&W3+9SS0R(5782T,*;BY\*P:J*]M28V5] M=53M7%)RR)2\^D9Z/"]2WG^16)D_PLH<>DA V/4/9U%JIL:>+)$UC35=/N'4 MQ)#$='T;XNF@S$>L']9R>CJ,C(;C$MD+>:*X"-),)/TJLA E! 3&T:47V@4H M6I23J/%NE?"Y2T)V@P0Z1-'RB8U@%A4/+8_/[2 M_FZ^&7]GTSXLM,+62+/2"@#7*I>%$E.T5K03CQ[&0*0JPV0P3'J/-LPU097^ ML5(( <@CWH/6,Z<@%^Q&@:JTC-"04/4M2Z5;-X0:'!OI<5\HI@ZR2]/&9#@E MW>%7CJ4>$F[MV-L?JA?3H"!FH,5U(97"JT5!UU"OZA74VR"7A@!64*7(@EE# MA415=REJ $ )%#BL+_(P8DN+8>+'>6G1!#76BXO39AX5[8B3A\O[NGF7]Q\) M65ZF-SA]BA?XA*RC..$@:L53K\2;\?@9C4V[/,W'4)7"D(PDS$HR&O!K0OIO M2DJO>ZF(T9>2?&H3L\(%<>HVWO!,>%M&Z(3"<,QQ_BWFU]PL.,Q,L>08TA#; M;1K4#"M%SD;(^$U-D!*';8 =+)B:GP! AL9'.8U-3XBZZ5.B6%UNLW2H#JDZ M%:HB'6)RVVG%(-/:6H/UA+9D5$UE&468L]AN[^IFL"(L:.:NC$4[;Q4C9T0[ MJ=IQEL1Y'*WFF\TJ7K1R[8^WZ^VJ^/L)G][?XT7.K#VF[WO+ !6:X03N[@_U M%PAQ1P7 +_*S7Y!V:"^J\!%?IZ0"TA[&_,<0;2)\[)Z8KV_3H\(G:TW49S2;5U:3Y$S^F2! M&8]?(HA-NR"RC0SU*7)#C"3,FK_1JGB ,W;J?=$]DS!QEH@5)HA3E_%9(R:\ MK?01)P2&<@BN\C+7N]Q%WB:=F$V.R0F8A\L&E+9TZ.1 D6+'7,&^*'I4=DMO M*$[Q8E58:\P*5%##07?X(4[8P=B%*+VP0&^5NA)>$I@!O,S2"W7PW!F\E1## M]$-H>!O=8#%&C?NN,L_;3 QJW+^2>TZ<:MR[WG3BGQMK$O3 DF2-E7F.B%C: M;$.XS;G"$7D&F N3[][?3B\RFZ/CV^_'AQ=GMV>8$.T>WEU=DQ M^O//?WY;%%;!).AE8>\!E]D4PRI-W>.&OZY&W_GHT=M\5'-#\B#ST4GOO3V) M"U-) (I8, M@9A>OH>_Z'9>R #6-:(/LQ\/"%.0?<54?>0NQLL_^;;>;U;IH5WN@IR%SIQ3 M/X+(>?8&(H$"!>=V7,4UK@;,.()V+X*4:C\ASJX%(/':K^5CNQ5M>K:C2'>7 M$D .MR?X/-R)(M/;39B/*YDZ'UQ:;*484NU6TUDV[BW^EK\OFO*'04:*H01= M-5J5A&%*">G;/&3M6J5VA\I#"GFSF^UZ':7/=.K#)9BQ=7%1EDIXVU6F.-.7 M+3(&JVK;2B/)H,21!>(#.30B(T[C6K0 *2MB,>B4%-CL#PSA2@_8@(F'KY. M%8WL:^L-%(^\=ZV,K&S@TC56*#>5H3WY%PZ*A_3%MD5MO+SQM.D]59,^%-]4 M9$FR(9(M6_?@GP$;1)J&<>M #O&9:--F6NB%[&I$L]Q\<1PJC#44,[4&"I]$ M80LQ+E%"R]Y+A[ 'Y_CF>HW7Y=U8PK)LI]\V>)'C97V>_R:B%U86/V>WJ/-. M;,Y@8KOF#B 6PAV _3JXS"V()FE]BK^2]D6V2UQ5C_H:I6F4%./;>LJ&*TG4 MHN[:->R#\$!PV.8]%+358%CLO:JB2=T'1:&)+N>#&Q1S9\FB^#IT&1MEE.1EG=*0 MP@OJG,:TBR*7]+;,X<6/#^3IIR6.&=3_\2?ZS\/RGPS?Q9^_GR9%@Y]O'O%J=4S6 MFRCA[WZ7$]2'7@4$?N,FJ4;/HZTBN8I!49]\5CY#["&JGDX\$I)W#]%_4'ZT MTR-L#7#TW>QQ_5=U%"J[Q@L *!*.7;- #@4- N7>]20#&$KMU"!5]*] "< ,7?RNW1JA_EI0 MYS; !GQ6VFX7\HN)?L$69X^XW)&-JLJ-RRU&^6.4HRC%:)NLXC_PZKG9C"VT MX>7$MXA.-S30U<0;<7 533#3BG058_.NH$MHBFND:&&$74'QC7OKI,#64>< MT PTI3C&-(-)"W64&IQ$M*'*.HPQ?XP1_C59T/96S.T/J^IOJJ+VL MW[ M?F:N5R*W9QWOK"0X0#L2Q&AHF4%&A2C9M!9JVN'$LE%"G2 PU^>".SE)* M*H%K9^Z,W.\2UE\BXJ1S#%C,39L;(6J?>N!D0*UP]+ #)X.VP-N9S]E'LV8'QQ<.EW.,[YR8% \*X:>>3'TI"=+-^40-21T0<[W ME.B"F/%-.PBX>21I;I(LOH^*T,N*]"WP"_A*^7*34;#-V+M0I28 M?WO..N0,C6%8(&74JG9U8^B^V'&4XP>2QO]D6TM"RS!GV%6KTS-X5J8S;9%O M%3H#/:J*\@B^8K=L#[YC#Y#Q<,R-SR00*#H*:+_MOSV4X^PM;FD M[_$1'?U%\46V*5U*955F^*QVV>OJ]_9?>V%7ILW/00NDRO':(YZQ$QSG--N@ M+(([BMR&.7)&H0.W*N@,SVALFT.XW=>^ MFZ5S-/..!IV%96G>L)FWIJ:]I_Y: M?M1=Z[$=1P>2J3/#QT=,'M)H\Q@OSLE"OKAD1-L^DBZG]3^1KFL'S#1;ITIS M+EW*61U+;]ZCFB 0*)OU-;'J$M&1=!D/=R)]"B1!)"1#:) P..6=:Z*R73\)H_"_;?MN-M^ZX_I MOB[ V-H1KH%MB[:"*1OD!X150;<0S;<4H;&AXO W5,>"ACI.K'&G-N%LC[M5 M':,,.A8F#K7D@4<>3K9Y_QZ]A/Y5AA&3_@4XH%07E6$'G]+GF&LD^OD/)D<.J.+U[#_F5_.)"RVVOA_I?P$.%_]Q MU4 !X#N#KKM4XE0?G#KE_X@V42CS"?&WEWK=[M>'V%BQL[W_O.;ZL7E0M90^ M\,)$(]'/]I@<.12*U[/_O+P^G1^@Z].KS^_/SX[1Y8=IP=#ZF*3_.3@H_.=U M P6 CPYJB)4XU=>GAGA#MODC^D^2XE#"I[@'I.;8[8/QS?'X@NO-YD%]]>*% M[SU6%S#FR.0H;IBZ^&YV_->SB_G$MSY=]/N_]TWKWC^^:%VPY/^=02VP$J?Z MX.R&KL?A]6Y^L/L(N@2"*0OF^O6@!N2TOU :Y<&"<8]*FK:5!0 M>U?R+B+:KRJ:"HDWL@;O:-"5#(M]21']2^EF]9J&84?#K&MT)(*O;/2DV_3W MT!>?[=[.+T]J^GU^?S MBY.;B5,@S_N0Z7W9&B$7YZVT1O^O#9NC>J[+2J4$LPM,H5R0+$,Y'"7N 7FB M::W\]O3B2VQ M]1U)_TMP*/A\TZ X'N#6F(E3O7AJ25^3F)ZN\=-,1+'H=BBN ^DMMCMA6F/ MUQ[37T6+?=!YS76<_7&%4_H@>L#\S8TFI/6"B9+4]TIP;2L\%UG4&I07?,L9 M9YVWB+X^0 W!Y/=TZ[N6V'0!O\Z@8.E7 M8U9_MN[+GO@T#!QV5+>V>Z)G_-,S%]$:7]Y_BOY.TOK^,F&A4:]9(?IOR:&V3]C =80>!G5H$O$V7_LZ5.RJZ[)RX]%:UP5@VR M+W NW,14TM0%I\0T?K6F5'K]W)5,M*+"E)!CQA[7LY0#5+P)9+U&W6G$Z!OS MY:1$M*U*4F-! -2?R3588J&L^5C.5E\ !J3>S04%@:W_O-$^E"#\>F6.P9 M%UFP:68FRMPA]KMP\?D5@,Q\/=$99J$Y[^==^P0S:E-RJ?/FR8%-3-P::.?= MTV)C61RSQJX"F+X9][G"JI0HD=M4ETUE4Z/B:F#7+5#F#C"]ZWZ1$+-PW*X@ MF]AQ5XL)O5-8%AA3$U->UO8MDI MO#&IN5JV-"6B8-VU@2YG:'66;E\-N.2^&@A>@0VQ:>EJLZ61/J5L8-VFA!W[ M]-L /)SN*+ 8Z+3X1",<^CK4>:F@7^4C&RD(I$.:AD,QFAD#,<,.E#D]3M"1 M#(]?('C,1\26\ G,N[Y_IDTS6[O@*>7+%@TE],R2;P/X8D5+@=4T%^] 9W^ZZ? M#NZ@-7K/DFR#%Q2:E3[A6$Q#M;N#44+E>?&B4C? $JN077/HIAGUKQ 664Y M81B+K@^)X0?OW:8HI&Y?H3@B*J!&("KQUJ"@XXD7"POI , 5&-[A7"87.&JK MU-A#Y(AF&V^*WX7IK:QQ?+N[AZ,<]QX\LHCKC!S0^ MWN!U7/SZY791<-P4,9JDDKN\M83UT0H%H5]RO;8%,,!7ZE%DV,=6A6C(*G8: M-4ZX.7H5N)%%4T_"P>+-+[ZP&7\\DY54R[3JB&"E$X5 M2==#V:INY2#=(>VA>>C.'\+E]178 MH4#AZ/8:!SKG9H&$:1/73_!]G.#E,4GR-+YC:7I71?^>KCNA<]B$$59]45]A7O8%\TO\W+!W&^2FZBEZ5O&C]CM$)1R@6@;J M".E2EF*FM7T@K!)8Q'#>Q$]HXW?VV)9 HQI 4X8R*AHI/T7YXI%NZ2]:KUGX MP*60J4MDAV4TTB YD@>SG&4X>S#-M^F^%.:BAC=DO;@E:4"FVJ%Q.O MF%J"@3CV%+^6:L;=6ED-"7Y@>SH6ZKS1Q_9[:E)4TAZ@DAI5Y*BF1P7#RP:F M?&MH(&CN1:@X2SX4UO%?.$KY!3!W 78!I"-@#&,6M!AB=]]%N;>-M\7-"B3\ MLA[SC5H AVBWCET=U]"GG X/D#PWY>P]Y7X!3V.WSKD M[?A'\A9<>T<-=XUN"%=12Z.A[MV^6#L/%P=;%R/.WLXK.2Y6/A%HQP]P;<6 MF'4,;E_)?H4V.+ #A#5_N.]%2#O>IBGNI:BX,=L%LQWS&$Z!:^EX8:Q1[.T/ M:E$T@/V\%S;-X\/6H,7XLK3E2HBU(4^!SY$C5ELK%#RM-\GH38'?\B):X=53 M04&2_'$_(A80NGUCE2>^IXU2K(GS9'E-3V&M3K]M<)+QAJ2DJ;^9F,;+=)5Z M_>Q3)EINA&(.@:51 E2]G]:,U/U&C#XS9Q)"V@;YHZ$ --U.KL$2#N6UFT7W MXWWO?JE/= $ ;&7>0C3^&JTN-RSK\&(K.'NO(JE^CYC$"Z@JK3"'824:Y"@5 M,LRJIZAZ7,1_]F):M"K[C)A\8PZI(M(&J"/U/]1X4BK;KN\K!_62>E_JJ>S[ MW_M4O% H9&D9J0)+&!PU," U#)+]AH'LR+L##" /NGLN&RWG68;S[#Q.\!FM M$J=<)I(1"Y>%^L2 TVQ92R GU0(=IE/H'BL_C%^BD@)]H32($4U=%\*LJR5S M8 TTQ#->GDDVPQT52J C?P-5KI@2+,.\>%09KJ2XX@IBI23#BQ\?R%/Q3;9) MGCZ7?KGZ@[GD'["Z1U1%I_[J,1L\7IV M4WS?:$-2'$C%F]8W)?VOPI>"^]@J^>;_[<%J17[4U83\R&H_GEU\G%]=7I^& M^,7E91L[WQS2"K-\DY8F2/_5V!_]Z_=/%URG-0^J!M('7@!H)/IU/Y,C[_SB M]>S3V<7%Z'J 7"A9%=6AWN$S@ M(O.HF)-PC1%4W=+2U2Y23N=G"3K]GBY2(5YA %(NSD4&4'U)WX'$^%OSB)?1 MMQ _-BQ@':12BP,^J(-\D0B1>T4/C,!NO+Y?$;*.DX><),**Y]+WU2\2O/>" ML%0?S&:K2+PM1("LM\AXBVH_*P;)'U\!Q\'Z&6K01"[;H8^J-7D8O M2]V/33][[Y_V)4)NGHJEVW3WT8OI;MENJ55W@]ZK\9&LECCY+5JM\+,PO,@) MJM\@(O""HUPC3(01RI?C44 ^*Y^A\F$@@%1T%-%_6@Z0?<(&D2-T.%2HD4BV MZ6PV]'TQW2T-.'8=[AUR!"(A8XY$O%6_'[VH?I=%'LM^'_TRBFL\[Y9/.+E=E6,"X0YUK?1W8JW31N6.HG!B,5OX]JB59ZI#6::%+O8)@)F M-16U;.F! 48[]3:W#1Z(2W_Q6]\&K*U=\#"P!YL_8:K0#X0L[>P-AO(<#' @ M3GZ;&DY3O+R-OIW'T5V\BO,8\W,N-5%S^YF0R/N(1H+"Y9.5GU]CD*%+2BH(RTOR%G6 MX,@+<*P:BGW&A>HB*P=DA.$#SY(%66,C3Z@BY?RAF!3$$E2M@/&-$@UZ8Q R M*OSDQY1D@5B$LF][=F& !-XV1"Q]"QD9-X/X4:DB-P"QP>GVCBE_*5C1>E)W MM(3A5;MMNLP?<7I,UIL4/^(DBY]PV7*C$:>.63D2E3,/,"K1M72(D:M"I^W@ M12I*X<$9#^HPH9(K#%.UA))F &0(1?6P2"9$-UP* LK0U]S:JH;"- TJGY,4 M1ZOXGP6N'Z(X*2]^7Q4CDC!'Z4.!UW)4#PW?$.-5_;2J7W@<;>*\1,I9\H23 MHC'/QR3+S59,;(4IXYFYL &<@NTO&2+>6;3!UE<8BU;$PQUEB![$&HD:C^*( M;+5_,16J\S=[82DCA%.KI@QE,C3<[IZ@:+4B7Z,"O$'&V:FLQ#(.CVTGL&=) MQ6WY$'^K=DGF2:$^+Z 8WZWP?$W2//YGF=N&^:LR($0I8ZZIJ '\B-VO&,R' M&#?#UG\8"IZ=_F,;;\JJ&"NZE?9(5LMRO![OF%#4XCI 29A[,):XU/@6)Y2K M_8J92)U7"=YFH YV>;=A&).A 5<^2F4RRDU]5$A!C1@T[QA1H!N94QB197@> MTXR\#\%Y*;.>%9U*0EP,4MG]]E>1HMS(:_ M/+%R@-L0#^!%^)8,$6Y;.FRM?\>JVZ9&7VK2B?/?##M<8Z(2@*A-L&;2&=DH M@!IA[:2CRA59="C6>OR2P&,Y)K*%3S!; V7BIG+IH4?2][@M$BBSZ&D%\ZYM MR4;(;QBZGK1\SD8^-+7XMVBU95$6S>M5P& LHM^'(CN0];0 ^SM2(>*'Q,-0 M"9)=!7; D"1'1NS]OH+ Q 4:PB P=\=&/3J'UR&2N;R*"!;D'7H4M(MB%5_0?8>V].6# W-D9H2!$9]=)Q#LW&.BIN93N4, U@%E( MVS:$PQ0IL[67O@R%2^52K,_#&U!J *(Q.1VRU!;8X]:9Y$20',%UBW5Z8W-? M\J4'P:)E//!'8V@18W>,O6C;<92FS_"$]A4M6T U@$R MFHQ4@H"UEZ^T&_TTI4@H"S.5BQ';:$7/,I_*F$/?5CR!&:D>/'(; M-06>U$"E A3V.3UH!PLL:HT0@)6&E5QPLU8)@]^B[ M60U3.M-F=2?9COGB%<'4($=T")B&DO]9MK-^H*N:H:*6#8IX:ECK%+<%.([T ME%B8'\)Q$[@Q>2_;C(_)FP2M"<3*)E5SQ NN4*;M?JBU=.; M:>W SY_UQ?MZ- ,+F]*G[6J6Z+Q4CU#F=UJ$L)ZDUP+@67%;OH6A-VSBN7!X M%:YD'2HW35GG2XVMJ5TD-Y_A@3+L9+>KQ@4QP5=Y\D"*^>36"BM#[[%Z%E1R MD2+=?1VY)(Q+VX?:EP6MGV0E4[+]M8\%8)S J-AS *J=9"--M1<1L'D,MP,, M7"?)4NJ;<4#A(A#S&&![>8 B2-9[S<#%CRRE[GOUO6E,PWSC>B33"&M+FQT# MU9V)8U$K(K3Z"%6,U+UM>9XLGDU(P&3[K#R*%@: M=F[?5^4**CIJ*A^_)-Q8'F^W1I3%)KW#Q7TI[1;*8Q@]^TP=29/7%841Z62CDKU(B_-?2 MBA/\0&^/EMLQ4(/DM@ZB8':-E]L%^S<]4\12%#?U6UKS:4,9T3..THF=!BAL MR1"PX=P/A.C&20UB8M,[LK,$W)$YB50[,DN10S@RIU\%,!P!:HZU&[-3,)LO ME_$>>S$WS.J\F(\E:+R8E6BM%_.SK^F]F)EC,O,UP[@/F.FN7+BU?9H7 M;));OPK20HV-SLZ.M*8Q#!SL9JP;9H.GB?UH5S-=E7/-RI6.S[?OT5VTHCO1 M*,H13I;4FU,_OM\@D*NHE<#F7&"IW^"%. M$GKV_&4 1K8D[0R84):46]EHGY-EG.5I?+X#T"K'A+S= 2SZX@B -U7R,ZV=UF\C*. ,C!'Q+;EE0-#H7N@ M*Y>4*JV&44\XO2/ "'>Y74DCL/'K=+UE5?&QVE0MH/]+AK8=+X]?L7>WO#9I M, MP&_Q),E[(?$VV27Z5XJ>8;+/5<]%"O.1,RI&[^G[6W%Z& M[]A6F,Q4>^5R>[>5->.'9JC%@DH>U# AQC6M@;OBBGAV-F?8EE(:JPX:V5!) MI2YJP5!-!VEON#;OZHF0[3UZ3)'F:<55S7$*.%!6>S^OG!V]]MD29W> L=/4WL\-U!(/9P=+ (K MFB8O-UXY9?DFK:4 ^YLE=@+&*MG/M7BTNOV-7I#B_;4X^PK^!W6X#F8AWQ9D M+A7]Q4 5+.,;"G*J[C\5V.VBBLTVEDT#(''?'FZ_G,M6 ($.<8,% -3A#X?K M50YZ+MQ,/2C4^1W;J'+R(LPW3O[^]3IY\W/@PV(_E%0]77M/BN%KEL<+]V$@ M+\%^'-A(&,M=\&T>;2384@SB)W;R7,:"-?/>^(D>U%P9A0"U% M7>MIP M]ENTVK)\U'E=#IAO_O%C@3]\EI1)+9Q1N;)7W]J>WM&-JW06W&\/1FO@U^NM:.C\<5)F_KPWNTG W'N #F[_UFZ^;L\DY9/,T M$0?L,%;>)N#YF%"1Q2A5P"^>=PFL.["1J0('\M&H%CS2\6>?4S'FG )QAJ'% MM+J>J48O\'7C2""CH*&09C[7\<0:_%:N0,>@>[<2?7Y8.WI-6#/>6/7%&NA! MUPO,3M+VU;PO1HW+R^2O<4;OA;F\/]ZNMZN"Y G3A>K>M7O>BQ,AIRCQ:-T:S>C(9#24A&,VF*G[PJ;WD>Y0HGT8K6E"GO MJ,&%^>;5+;.9 M'UB]VDW'5.**XH6 ]T6<$KSJ'B>MR]F>3U(MHUGH%@.,F8I@^U\L4BWO>)3 )(\YI8[ M2:./DKG?,/[9S@LQRO^>0#.0%? MAJQ% %.=JJ<1)@] *-^@.%5#WBI'AK[0QX@]G_AZ;45/]4M/R7JS1GF?4%!X M:K@>A]K+EDBVZ6WJ,%]0?^M+C1GUN/>VK4 DY'ZL1+Q5QQ^]K(Z7;61:=ORD M6X]%#*1I_W'R<),7@Q9Z]NWS9AGE^.CG=W_^^==/>'V'4PYO5CS5MS'D\;( MJW:!%- RU2BW$C,)L_G-9T2?'/[\*_I2/IS89NQ 0)SZB+,K(][&U(*!'.@< MR%RC)^BJ>4U%B':4J"1]17"41O@A #GM:N%MH>'R?KXD&SK:%WI_%4GU?<0D M7H:FTNHWHI5(EEN/D&%&G]*,K_HY^G)"UE&<3&P7RMXB)E^7P[R(M('X2#T/ MZE&E"NP@0/WEBP.!U/79PV!:QS9?_GV;Y:SR]0>27N"OC3.^2DE"Z!89>SO_ M%O,K-DZ\];C7CM=O,.+23C_G::M2,2:QDC1KD;,MSH*A%8Y1EP5]H4Q3CU"< M4$2\.IY6O F(7_+; M M5+F,7"CB;@[8!:ML$:84G:61UDCT)9&.QV2']14-1AO>5 1B18"H3O4/#5 M_D:J:6?RJ_S[UYWZA7UEA\(MZ)?B!EG,;T0;]^O1WO>K=MU>W:^3KM>?WM_C M!3VWM&O4=93C8T*#U[:(7U6%5I+PDQA[QNKKV#!ZX=V^A7[.S4J?W#PLQ,QV MM.V\*DJ.KC'%=[R*&2G+/U[@J2M@.6"&N/-M3\:"CER'P- [""KYJ M1Z$6I7,9P1D!Z)J<D1;>.F WQ&YRLOCC+,NV>'FR3>D.'#M$>_,8%3;&7EZR))+L]%N!A#C# MRWFR_(W>-57,DN^+-N5IO"BBP^>D:.(%SB_O2];3;PMV&GHYSZ[**\\Y6QU? M<=5[8RKV\F/C?R& *<.HC98[S!&;,:M%T,RSC(I&9=Y5>5#WJ11*7Z8[L17= M-F&'?-G%RP4OTU",6BH5J!B=;$HE!]7+:=WP!"9+IC,&SMF/UX F0$SHJCQ" M2J.WU%:TJ?6(MIJU1YC=[,1;]90EKY=O=FHG@'NUU2OWD':29LT[5-(SY]9^ MRCP:XPGD3((;EHA7%W-.PTI&8_?!(AEJDF2O% C(U4U_;U VZ>,)P.R=M3-> MR(2RA9%;',*8F5IA:62E.E3JJZN^55994E0ZT4XI*K2B2BTMC-XRW,_E>+K0 M35]48G;JT3Q#50/>QM%CVL>K&DG[>[#%(UYN5[A2P4IG'Y,UK;]9%M5.4ZJ1 M[;R\?VYH*OUS>H&J0Q:J;EX/VBJ%$P+4,ZN%T=DU(STLB\2W!:*V1'3WW"&L M<<3$AI%L"?:!!+X!'GF\Z4-I:%DV9*/A)L$F:[N?LYOMW29*\P\ED<.>I$R$ MQ8YD7\3@NR^R5L,<@'!L@=_N2T^@\/-C"^1QV3_[EH$R$.9E1X(FP'R QXNZ+;XIACZXF)V>%^U8[>AZEVQ"B+(8 M1Y!=+]B)#^B:(:?-Y$*GK$WM2O)Z;/=9O(]7N(T6J&[LA+KWCD:+32M M'(XAT&WHZQ^OR^GV=RP:N6C[ S QE5I)-MYK&&M:L1U>JMYAG[5 M:>26![&-=_2VC??RM_%D<[,7OHWG-@^TR[*F%^7B"9*LA].KSK$>0N\0X6:X M[S-W>-:W<_#^40[IJHG39F\_+1=R_SVSXQUR9VCH8A938>X[R#&7-CV@%A$33YRD*E+RCIMFU%\9(!)]UE'09R MTU9(J-LH7FPV"@DVK%Q@,&,%,4F;5L($"4.->JLT$M0$C'+GAXY_&<,>! XK M!/6LV0%_O$6;B.C;=6#H'22L&"N&@7&9_5_0O19@:H/-<- ,(_!4.P:6LQ C M)GX6HF&"&?D9M0QH%J+393#@4XMHS4*JW;GP@XDA-OJ#0AM,]8:$2F;!D'!Z M+ XS"]&K] 4EFX64%"\9(9EV-7$KD,XTU,S-=8U(91 [XTP4.6**7;M*=6. M%B7=2X*/U'?# "@(#UQM'!FZ8!UUUP?+J2$L1]<6$"^L4*(U&2GOS@_7^^[A M.F)MA_.F9(@0SI)D7#U3F@92H"-W$UW.V IF_QP:/SI?[(V@(+QQ9T_%T">; M\70]LXX'PIC,V@7BI;6JM/:DD;#SV/S&=[B>VQ 6O/U9H8FS035OSQ*G!^$0 M?MU HR<: ]G 'A)G.F\/BK0@/'^U=6(Z#M=0<^-P*37(H$G3%IAQN%R)?JPD MXVW&X=7.<[C>7-OAO7&4&4+X492$JS^*F@12@XS#5;J&-_3>)_049K6NF7.Q /L;,JY'Y/N7] U)@E?;07D CKVJ!M)8WL>_C>,'JI;#0!U M.3NYGL&ZEK-W+JB'3A\?)(&ZAPNJ)7KYH.GM9NJ0W6G'( 9D'[1I-9CZ6/;$ MM[2&8C>0P1O4))JX3JT5)HA3E_&U M9DUX6]5D0T&@8<#ZM<1@@A\*)[Z\U52$-U;LBQNC19K\AA)MBN9VZR)O53"A.D';@ M@;Y07E0Q3YS Y(,U M#YG -PD-1XA;U />B"JZM^4/C38=&; ;CC8&(3F'9R M7 RYDF71"G$SJ^+K_'6(=DR[:RS,F#SOH+!IF5_D,]:ENOC!2,2LIE.LHY[@ M18JC#*-[DM97^DR\>6()$^+6B;U+$$R8VS<8! /+(996+33[PI1M].&\4%Y^ MXG6TQ&A9WF*5/^(@YE'#0E(:4X8!Y;210]*V%.-O,;O@XRPI/5+MF3C+<.:O MOJT#OY<-.[<78)SIHEMNSO;29KMXD^*G.(O)Q!EU[M@AWMW)F;:UG,;*_1$\ MN;D;V;21X0YBG3 #/8?=$=FNR&X@1XLN!+Y%8KK6:+4EHEM9'!$ M\JV.UGIT 9-05J+]4"$=(;GAPGL/8[2]"Z<]B_WQ%J$?T M)GL1UA)Z>Q$6$H!69:W;#+478:/89#'67%YG*5:[;A/H4JP]U@1+L:Z [2_$ M&DL2+<0&C/J!]B+L](/"G]^+>#, .QQ,; (A)^I=%/WFD-#=9S-*WFNS#9@E MTV_=D E]'6VNJ3(M(2;YW0UYR!DT I08YM)(\57;L"F[:7;-Z,@$C5)62OTA M2N/1.4D>#HMFK?OXOSYI2'*T/-F[P'"^8C!.:@2P]>KVFV3_- MD.'E8LUN0\ ):Y,."NKAWW71DN/B_W$N'1"8D'*W<8I)06X-5+7";Q"@T:"_ M[D_(V RTZ6M4O@\G\!MU;N\6/P,HU :C8NG?PC1W?(3+ND?)D_XI3Y>[P\KR)DC#-Q91 SXNH+Z8B]#,6L)7X^5JM#;B,: MUAE[CRH"U*((I-R'84<3N^[@3$?-U!C/A$ "];D&JEP11?TNHWA)L)'Z7!C@ MA)@&L;4&A MF5CJT*2>7?:X=9/,B6 XQ%$B&]7>L)14:MJWA0\XF%HNN?D#=: %N+X>JW4X MI]5=L4Y_C![MRUHO( SM5N, 8#CIVMSI>K,BSQA?XQ7U.MHII#%]G82DI_?; M1#=MCV?:D8$:Q5ZYEGM6DQRF)4V DTKSKB?6O<-OC^OX6OOB4P,,-GO(2)L' MTLKMNP>8&+^&Z%YUF&\^QO.'YX+)H^?\)IT>F?,WR_79W']SS4(415W]E/E)>I0OP* MOS#AV0*Y77L)GM7,6N(95W4Z%":O9IVUW],% MN%Y4G-ANS?J9V/4&;WE*II9M38%#%.YH7!2>Y*P'M(I\**ON MM&:P<%5K<3+3DED;BAA9L/;9[743:Q3AQ,#R&)N1G8V!+-#E>"-E[A"C?K_\ M>L=1FC[3,G^%_]E.G>P #RH7AVX)JV"=]7FF/$)K^]PRL%>3UA]*16AE\GI6P!@ M9DHETN[M2X6+U+OZ 69:3WJ\S7*RQFF5AZ%3M>*IOI4ACY?M6+7+SXA, M5F*1U::.TC]P MSE91J@3%9+GK!L388Y)DC_'F-%8+ MX40J#K9W*&?5GX& 7-P#1/GA^$/H;9K64?.A^@^V,FU/LF%'4H>UOUTI+VQA MT)D37YZ^>,3+[0I?WBM6G&^CXI\R^,96*C<@ -<>]._@9K8P&M6ZS# RNHP[94"X%:-C9]PZVR9T=% M;K Y)>TLQ=-O&YQD^+]PE'XH:,VS3 R$&.2_JX0,EABL;_FPV0'J!KBE!BM$ M=L_4X?+M 2IP\^=@DP5,T&64(FR,TMHGN DS2Q0.#.U0NZX>VJ'!KD^6.>CD MQZ/3VARH!$1%O&:;<$J='\XJ]BZ"%A;J'T%;0MPC*!,RMD]IM7R:"%HV -2I M4)'R"/JO>^(UVP1D! 6P MBGV+H+>%?O]):$>*SRE,L9V M+$V[IXFE3#^H5RDDRN/H+WOG*UK \O$4/7QZ>(FOQ,M'3 /S":-GI1P8Y;Z1 M\RMYO;8 &3.]K6&?XN4%_I;??L6K)_R))/FCQ:E["V%.$;0O;$0?(_LEH\=4 M04.@W$Y/M#S*'NV39Y&BT-'%:%#MYFEXH:XN)R@KF28D"ULQE)&X!VDJ"96B M4"GKS:A$T G2K*8-Z2=XD^)%+"K6*7JUN_6^_ M#.("XOI2JN?CPJ7%R0-.%L_GDFI;-BS=JX->-[$QU4$J'9N198V! MK+$\N\D!*0/VUPDR%R=N";/)G?<&I_GS58&,?)XL3_^QC3>T^)BHP+D9<>.X ME<2^QF70$F^GK=:AM"<5ZZQ^?X 8!:N2M*,)HJJY85<3NP[I&Y&"J6-"4T$) MVDOK5+EBBGKHW1.&IQ6.,OQ(5DL4KS2I+"AZ@AY<&+I6/!H!7H/Y9L2OC5=7=.QJOQW6K-84!'HC,UA7T3 :F-IX8!O'HUNLI^@% MO'+>&4F%+ZA_5];7,V'K5M71L M0.6*S%H'55E+J\VD0I%&B&XH$,(RG#4Z!.6(K'!5VYPINZ@041"('*A\EH%2 M?V@:C%-?!S@-*F5!PW/:('*6/!4-(>DSS8?+BA9_)&3)KTNHB:HO)2/R,CZU M9C_G+Y4MMR<)RVSW_ #5;Q![%<1ZL*;[B-G'Y@Q"3-S ?T0X@'I>A0I;7-2Y MP0P.#_3)/N- ZAK=D!"(V_L;2?\X2PH/O<"]+3,U$>_V."(8G LU [D]7K8! MO+LL;;='WZ X0=6[L/R>N/_Z>%?UL=G!85 '-]U]/535& BCE99,2:]*K#W&&5X>16E>7:!\\O[:YSA] E+ MO:*]!-YEVDB L1_[-@,Y6RO%!@9G(:_MI@LVM.-C4[P=)V*L]%Q23JLGU^R! M6*X#V/IF[8S8GL6;2Q*X@Y!A/TQ,L=0/BG\:C2CLUQW8;W:PWU".UXER?60; M">>.,7'Q?(=9H'MW5(4Y^N3WTRA-XN0AN\+IS6.4XI-XM"@#G,;:O(!&]NTP.O_]C&3]&*?OB,LF3H M^V+*O,V*04DAA3WZX44B]&@L MP=GE-L_R8C!:_ KIT,132O5]G:5X&;AGV_W"C+MRN0=PE3FK&5'%B4I65/&6 M#B-#+>Y@8I0O D0&CA/X2BM<1][91*@LW*?-H#;!ELKYJVC;PY64?2@^O_K M-ASI,' JTYDX1W>]69%GC&]P^A0O,&OG>[H:0>_FQ4G&YL:WT;?W.,'WJP#3'5$.X*&:I!CBPZB8%23HKJ1! MU!N@_+%P7-]PNH@S=C=AEI/%'XAL*%>Y(/F$,WJTE+UDTX>[:G7RF9W]FG@: M (MS,@S*^,D$B/#6A./EV"786@Y<:X8V2K8F5$E"E:ARH'%86EJ;YP!1"W[? MMN#VZ[J(WYM1FD!L+\QRXE1^&@[.LFR+ER?;M @#5SB-23688B\ORU!Q6L60 M)><"'J!B-R@<33NH5B=;VXF;5D^XT9_<^ MC$F,!ZZ(?T_S.=C6@EK9V/[X]MB1O"C\3.6F3N*TF+Z2E.FD&>'",X/F#-4W M,F'PLE?S%OD-*8STR W1@'UV02-X/12HJ4ITL;,/@1QGL\ L>\ESK;TC(TM M.6#-PW8^1=_B]79-2^^D\=V6&FEANU07+:_/8=6,N/KM.F(O>S%K"QP8M0NEJ2HQ"_HC9> M+8<9'SBW05'[QDWDK.)#.T94<#:C\6H07C&74:%AG[A CA\&"0PB^#(Z3L): MI77VQR:@AC@>VJ'M@9V[?[,(7SP$81/>HS%'M9"C-(\F@)O&46,:RYUIW!>F M@6O3*#=1ZY,9YVGQ*QY8L>;WSPW)59G#,_\:IE?.(&UGP$0 MZ.=QP'Z1I^^!:(?""_F+G\D\#VJ)07?/'0]5B4),5D!E9 &!3."AQ#LO;\$M M-S:YP3GZ4=C"=3Z-@(_U=()=1ON'.MH_49;7'LSE=>XF"^>P9\#+I/3+^S+! MHVI.,5L1[%UGGS@NH,#0]!?ID;WK\ 9A7:JQV*C ]W ML;/J&-;E?7WDI&)G2W"%@,->FDB&J QTC0]K*1,GB?C#D\ !A4\J<1;82C:9 MRFS\XSEL8(5ISI #619LWX:R P]EY:$[J,&L]W*X)&.S'$:($C;GR?*W\A - M*RR3I_&BI!W5X+K4ADIU MJ-17+JM5^U=UKG.3F5LH1956&G\;O8@I+NN0-8%YIQW-L]IA!#"('^,S&V=4 M#VD:9JG8\"W09G /\Z/WQ'-9[?WI1^CC-CP$#W;TYL%>N >3[82^: _6WV\= M:\D :C#EV8(AE@OH<.=MP0!FP4 ZL)AVR< []'NHALSC\6S&(-9SM+.>NL1! M5B_*L[2>I+">76K/!C\5(%OUN MR3&K_<.>7-,!+6>-=DS5US-E\O(0=BV#&=<;ZY0;OJ&(66L47(Z;&25%54E; M/674TYJP)42(6P=RAFG&W!AA0)"$&ME9:/.%(RO]_09(KOM&@:3W2,I0#>2H MR4*E-S*/.L@L,YFW-3*KPG;ETY32UZ,>5/AYVN1 RD,,#%G9\&8@R((.6W;# M)RJ_MY-"\Z/Y%$ +#CZE0,4!,Y_1MPDX24"IT&""HN!OS4,8V>'[_G8EHPQD MCF& A_YDPAA$O3F#G%,P.9@2>>!K31I57JCC5H]>(>[T:SY R(-;Q5'H&&2Y M1J//#X#=!1@&P#+_8M$&X.8% U"[7 (%P$G/.XE&.]-S&2Q4@_(=CWHL+D?1/ASI MZ>[:T2N]2Q?! 7TP^;X'?N3RI\F?U/W>B8X#*9HU0%*E5)M_AN5!G#9D'K-3F&<<52\8L-Y%9+ MPK:A/)#;'FC#A"-?!05_#T.; J9X>U^G7U 3"S8HJ=ZB;U5'9^ / ^^J;NI7 M+)?V98UL :6@DOB0'0[J#F7RK7J^6QF?]7VWW-!^(T%?B-X0"[ '%-L)?_-D M*?2EV383^BXGWG;]$7->_T1HVW8"IC);J-8D(QM+JM*)ZVQAFB.\#\,*-T01 MKXX6)>2:RN"2:D/$,^BQ(BNE0%ANCO<8H)FRO4(LJP_(#(QFF(,JQMH@=SSL M-4.!^NC-1=OT]12PGG3WI#/P*YNLGS^*Z$2SR"X=W-1"I!]P1LF)-YQ==+CX M&4;Y,A#3TO>E>(*AZ';A)*--+YEJC(&0X::@/2T.4.D/.UX.2,SFHI8PF?CJ M,MU:="9;C&;_N2T:6$0$NLYP$:WQ"5E',5^"9T@5IIMG3BJ&W3_S^-4#;Z&Y MMST']LX?ZZKCI1/IQ[C#8ET\QTP?WLRW@1S4&6Q#_8RK';<.D*N M#1S7?.DHH;1<^OK-?,$@MO<&/.UPJ&G7MYA/\!>^J[XW]\[+!PGU^(5\7J3< MV+N4'1NE3R:V4'$7$.67XRRB0]- >; .!/7^?G/ )OT[-HAACU'CK^9WFE>V8,53'Z4VX_$[5FC3+J#C MU(8J%2<+C23,"C*QW=49A>$D$MK!@SCU'G_ T(2W=<0P%#""G; V5N8)1';* M^@V*RE',$&#T/W)MI 7TT+6Q1E],'KUALM>!8V 2="#"A)\E]$;+^ E+QQXZ MLO:"C) ,H/*T7#MDF6BA%EU-9P%378"Y?A62+6A[DYA^>6'UX3XY7RQX-(3 M7H(@D6^/CM85 R\3'YH*^RX( :I?+Q ,OF0@4^( E*.7#A1U(7,GH$R::*M, M^5(FEX F; R1(&61VL0G)3',T@>!I#3HDA&,LH!DV_\#=B3HKJE5MDL_3V6_ M^U0:H".&\29&&1@<*1[VX=:%R+OQ6G=QUGRA+.<):)]B.*4W=1R$F>+%UAG76>G^ *$5U$5-#,RWP#3N:V'4'9QIJ MIL98)@02J%LT4.6**.HZ/T7I'SBG%8]0AA?;-,[CJ8MGP\)(ZF-A@#2M']XU MZ"S9;//L'#_AU2_"]5<#RNK[*"F]K,:@#7Z^5ZU ;B8JOEGC: ]0^?X ,0KT M2R"+*"9]2RPZ@3,4!4=C)9.@!M31ZO0XP8>MT\8/27P?+V@NSN>$W&4X?6(. MMR1'WU=H"N5 /12Z1H\\]TOOZ[P2SHW=!^]YVCWWVG][OO C82OF^51B(&@LI$WIF8R."H M&=SOOG/VNPWG[/]L"2T6=97&"YP5$$+S!=MR+I<9,I:&?K:D&ZZ+:(7F688; M1_PN9$?L@C$K1VR#LD <\2<!;(CZP:7OFTZH*UGJR8R!-8;&EB'B2/&FH%02V-- M>[#2YNGLC;QF1.OCSX"8#B1&O7_N-Y"%4D'F@QT3'Y4T3# 6;M0RH#BDTV5@ MRFH1'0MN&6H >_B64.C;IPV$>F:I9!;8X_30&R:JZ%7Z8I"/(Z\)A?KP (K# M0 )".>><)\OS.+J+5VR_NXIGR\ODFNZ!IW'R4!! M@&VFY[]\Y0MKJ(<+R]P M_KEH8+2*_XF73?[9QV):?4XR<1$T5_:ZSJ(UNU\E/\?60I3ZLU>MJ 5H*VS6 MT"#ZBNY^%&]Q]@.Z3-#\*8I7%(J']R0]S*("YC>[K,Q =D><@49\.Y\O46@I MIE7%,&RP0YTY=M(+AW56&K/A0053*^F6H;\$_P]HGN=I?+?-:\=^%:64Y+4" M7EZ5/EW[=E6W41T("I'_>43% .P*!E8$:OUF5DZ"H1 M'>/^0%(LOFI6+T3*)F-V3-47-67RLF>[EOG% M(6-=0- MF0:3G6&P.?'MVGA5"'WXB!.<1JMYLIPOUW$2%\UE#3_]1B_-Q)+KXEQXZ_KD M=KQ^Y89=VNE9I=I2I:(>L96D645>6&[)P%*ONBRHY@ED==X-1L2K=_D2QS8R M6G6/0P4Q[(7.UIJ!T,SJ3QC@^?7!6%[4?00@^Y=_M])F51/^":=W! [,FE+Q MEK+>G+-I5T^!ZDEKU5_C#--3/D4C3^@Y'[*A@\6JA<+!EP5']36-.+P,VZ)- M?L,K,T5RRS7AG]5$S$I;9+6)!F*A-D @#CW%V:(!9V.!04 .=#!DJL\+>W3@ M(T7?RT:==&0#C3OO48R)#MBQBZE&/^P=O7K/)QV'@&-PTC'',^'H/NL=[D4<[.E)Y353%)A!71 MC&AWEV,H:3VO-#!HA^_5&&H5JGL,5)RS*OEE]Q[5!($4?3+K8V+5%;W;#!0\ M[&P]K#%\)BZG59ZD MJP_2'9,D3Z-%GM65-YI"8-)KX7Q$U$6RG$3X%>#Q:#7(:IIC Q1%=5P$MC.O MXB9+Z'#55%[YR^Y,,/ZV>"QT8W1/TJ]1ND2+6L?$A71\$$@@$,$7QW$0U:J# MLQ_6 %MYRK4!L/;0/EPL1_L!JLWC^;4"7UX7:G3H>^^D."FUVEJ1#^>==0/C M_DAPJ/ZXP?N.-\C[2B?@4Y;3:U?/E M/?=;FO%&]HZS1B\9]9%%-QE^I[]\VNUYB-%1M>(8F)/$6<6&=GRH9J2[&3W7 MTF*>^&R8%^8(" 3XLV(NLEJ'QO;% F /0CJW -@4?F\90[HSAG7+&.XK8UC4 MQK!LV-'W<8*><91F/[Q>NY"?HIS ,J9=GOD4?8O7V[576/624?6 HPPOI^+5 M;K^PZJI:[DO<),XJMKT+JWZ8(R 0X)R'DZS&>>R-!8"&5?<6 )O"[RUC6.'D M(7^D!I#':S9K>L3+(MS2V+DNIDJ/4P?/*=$O#9Y3X-\Q>"Z>[S"+B.^.JGA( MG_Q>WCU)BQTTM92/5U&6Q?73!2EZS8,X$9*T?XQFLG94\?3!:N_WQ&!W]OIE!>=^/NY(> M9E$GEAR@!\J*=CM #^Q&C16]46/J$P:V/U9TO, = +VS!;:BV@<+7)HQ-O3- MAE2_EM!/\ .]=@H4_.JAE)/ V74'UR1!42V&GK-!S!K6HD'6JP2_;(0T,O@G M/:EZE9(%QLOL0]$1M+WS9-GD,LM_#&>%GE*J[^\LQ+;=;V'#7;G<=;C* MG-6,B%HE*[#*2@ZWS]@(HNM-($[$%X,$"!"<,W&4UGB4O;(*T!&E3QO S8.. M+;L&PM!?V$2 75J6Y".*Z>R!MB$7KF>BRTMTWMY3R=Y^;,T7KH+V!5VL!

X,^!8%KXNRVF2!.JV"GOVWA-6T#7:ZY(%K>!6YF. MGK!;.41("%$<0=$"J$0FA1YME0,1VZZ0 7U)BWBP(Y.H?C_USI6V8_D"!7H0 MU*8A9^@5&A@3,'!).TH-+F!IU[UXN7#1%:UP! Q "HM4-&R"BE*-$VZ.&MRP M*BET-X3N^J%-_0%#*Y?BBR%Y^H<7AH:(K\T"S@F^RZ6+)H;4W4@KIX8P!5U; M0&.N0IG6)J2\.[/8K?(7$SI*$\QXUK3;>:,PQ EG%S*NGG%, RS@V*Q4XPRJ M=I1^-;#2!6UO8$&%;ZG\ 6*X4I<[OEK1O%U*=$GQU4H<_7Z%BPB?/T8)^M<@ MRHB"8TX3Y/TQ-W$5;=GT?[XH8N9V17-R6%I%MW[+>TR+RMY&WXQW72SE:3=A MC.4-M%1G^7N&6JXV;X;+XIVI=-U*7DL.8H+X0F<'Z(X)0X6T4-?V;!%LL-3G M9A3Z=3]#N2;+@*YV%K@3H]EAD$Y,*,_#B7'R1G=BPM\SOA/CFP'KQ+K2O9P8 M%;7?3DR,8"\GIC(*'R?6D>OGQ"#M[.8Q2O'[*,/+8[*FM]Z75^ZE*;W4B:X_ MO']N2*ZB9_IH3B]ZNMQ0PNQRFV=YE"SCY*'5!?@36]Y'NF64M[B;_G[0MT?G!L!EEKU%IA4/^<(^]O\ MAB)PC5%X/B =LUH07=]S.0J/OC")B(I$3.;$-^1"PYP,A#'>V\%(;_FX@0S3 MPZ]UUZ:Z<[UZ@^H3;L>=RLCM&:NO:\/HY8#L6PBSM62E5^Y.+,3,N%T ?K%E MMY./OI0<$_L#!^P0]U[EK-I<0&.X 6(6:M?*4B,$7NF(_@VQRCX=%;/>NV 6 MJB WQ"S5@D#WZ VZFHX=%[J@N3,RO73-R&DP)&?4#(9$C(.8J+R%PPZ&A'KM M+50@1F6?E'Q?[%.!':U]:G&GL\Z^ +UU3HC9H0=#$HT0>-4,AEXO8JT'0S"8 M'6PP)% UQF!(HA8$NNK!T"N&KNU@" BZ@686&>^V&V^C#[8_/O3&M^..MF:K M.M2]9YM-9>O=8I-MX,%P,E*5-^#$KLC\P:H<2WNJIWNIVAP_&OK6?3G@$S3 .\ M\3/$1%$'KSA^JNB /M:T!9 S+9C6#&D[1QW;H6*N-/)D!QI MH&O3F@%3@L.[RS+$Q%[0H#-4:J]C^A_08L@)3N.G*(^?\%F2Y2G;),GJ K7O MG_^*EP]Q\G"-5VSG)'N,-^^?SY(%6>.;O/AEE/R<-J]X^?Y9).PZSOY@64&] MG:BQ%>]VLL93[+D^._87\MV3&+&]JF7AT9HQ:UZCEK*#ZKPARK'V;1GR*%7=])"B^V_C;SDH AYY!7H M-M1\3=*5*1&T;[,PFI\S)%W1D:,]?UM3L6MT0 M+EVRA8F)Y2OP96#=;6XC&QX?F)9+".K;P6QT>B.4+@=,?Z/ST*!SF\T+:="ZQZ 5^V"#G: T5!H,-T"%;.T>K M/P@!V:S!SZ!3;_YV"GWD4^CRJAN!GD,'2)4?:S47=-@T7#[5 .NN9GJN3OL+B @R\[J3JS+ MZ;5=W;?7?RSD3*:MG;3HD92N\GSZ(ZG7I/C.T$NZ"MB=+J<8$93XBV"0#$9L M\#7/4<6JE3^DG N/U!;=\)'$U;[\X.+"%@0C?8W '?3A>ZE9E0PM/.I(8.K? MRD!,"*)3027FK,P6]IY+0EU19Z@1ABIIJ!2'.O(F7B.-I7ED;'2+J[6!Q7:6 M?#.W+NH5*5@10H,(K]T&7E:0/:::]K;W&]0'%8$[#K"I L])]DPRZM4>%7B]SLCVL"F8\&K1(S^H MM2>H:_A9$(25Q++N4=C\9B5'4P_+3!XU;5#=",7IMMZSF,ORR@$"Q'V0Q"I8 M1L).(:RAH;9\>MZ35UQO"\A3R-_%WS[B%.^2XA/]7-TGRV_LGQAT@@'LDB8$ M!TI(5.[!HR+^AN[+QCG*<%GRA(YCWMG!VW0X3!S1 _+ZD@@@8#B)$4,@[#L1 M1F#=!=S[>&3E&E;I8K,AA[1(TH=/)&LZ*M9OH,]V."D.F6)R ^)6[X>$<@OS M?6'>!<('#NZ)QA<.Y!V5#-@Q0MRPX)6E<<7DR"8]EWQ8@YK13"9E*.@28/R( M'G,8UX[O/*ERJ0//RUHPZYT8COG?/[MH5,#U.FT'?&XH:!A&55$=LD.XC,7- MVS5EW+ML,]=K#:HWE!P6!(R[]64'%2N;>P^Z;@0A_@;G=>!$>ZX&NX%H$J$& MKYXRZCSN'#_.Q'!K^M['G]4H"$#3T+2(,C">+@!F73SBC+F1&7ZD[B./T6%+ M"(I\G#RDYX+N]75+VAQ?K?Z;76W6M[^ MV[1&%QBX9!C8"$82AGEK_ 92M-$OHBN,D_SAT<5S(&,AEP1QT=Q*;X6FT>VO MBYLENEE>?[DY_W5QN[Q%?]0/9W&16*T^VB%K#@&.&HG7A>< 2WO%\IY/O>?, MT>9%PD@PI9B;0+4A<>$3U8WY1>FR.=+F/)W6;37:(]]6?M&^K/#_@K:C(3D2U M#EL2A:FO4\\"-==6ED9I[5A$MT6<;N-LRZ/\E]\*G+(-E(H:U>2HHC]#JW23 MX3C'/$"Q98=*?A,KLQMXB-_0BBIL1=S1WE' :F\B@*OLN4H&F798A-4U_1B/ M%)@Y"P7L!_ZAIS:?6_Z=33[*N*RAIY_@VY/\N/^2I ]W.'LJE^=<]@")82U$ M&:)F=,21/)W@>\2(WC.JF<0"ZM]$$8UB,4*R^!$EF1#OH64_G8/3IA1D52%X M8I9_XFU[^R2_(?L]U8FO='J5YU.LL![.J/JZ(8R $I#ZOD&8PQ0DWR:UJ#/; M-IJ7S$EPE?F^=O>7V@]K(&62%,7>QQEZ3LVF5:1DTF)+VFF)&79S0W M;0HJZIH&YMTU]R)L#C)(T*6TU1!&U5/4?8S8\[DDGK487>(R"KW4KFJ2;C)6 M!^2,F3R5*2_;AF=!RG1BP?D5_98\2KE7C\NB:9VT5-LT[%JA12]@K@_J!6FN M">H(>3#0E[N/Z#ZFY!N,X@+A=,N(R$N*%/@U)Y^J>"WI& MU)5S]N6H_I;Y+Y/\[Y=4I5<%?A)/>\P-FW2 ZH:!69U,/0!)W*01HLO-I"2+ MZGW=54K]LJ?RDLT?[#GB#::^0&X>5V(_ KU$22J";C8D:[Q,[VM=)/EF3_)# MAE5ZXDZH]\.DA$-X99H>#N*CR>4Y>VPR-AK_K6T^(QWTP(S)NS/CS>#K21@8 M/3]XK*J- USZ2JT$'Y-?)J+L/$7L\8SP!F/S-3DC0ZS^M&OL7K]DJVM](Y4? M!+&BUDL&U@3S*EI!(D7_'!;.AH%3@UZW6)8WUD!]\@7R#7[!Z0'G+%47"S_( MTGA_?L@+NC3)6/(\=O9SF;RPPDPY+G*5JQ/*IOJ._FP",YN$]3XTZ8FW=%T^ M%$^F44V)F)Z@FA8UQ#Q2A1^;]-"Q^[+HY6B;1#\T, M[93(TK@I91#DY8%]:"!]AC['_T.R!LHSPBR0&Z;.4ASDAOGE:X0ZYI?69UFP MTY@'GJWHXVO;I J.6; 3P^6WYZ1\F[)XBWCJ#\VW#@* XQL6$P#]?@!;:I!] MTH0-@$F)VE_8%C8U&YN_(_+,(_;+^7'+[>X6WY>7MVAB\7=8NJRC;Y (L%CVRNLZ,BG6REQYG &*XCH)1@0S3PZ MKRUAVE ='0IWSZ9F$X\Z!=+5!1A'Q/JT,QWM9%)@/@.OTH*B,+G?XW(N7CRQ MY(G_Y/VNBBMH(]TA6%7C$,8JR'9 O 7 K!C8#;5)"6)\%/C>;8[J:AXL)+CE M6^W?3FM90'!)(/$A6)L0EJWA =69<2-@<);A;;52^/C:63N;/6U/ZC86QHTZ M-"#&IZ\ UL1=LC8^QHG7D]AUQQG#Q&Q@M0)'"4^]$R+ER. M0F9&A/2X*9OA[X2.V_6Y9&9GJX0?N=GGG9M=?[OVS6=G#[Y='N(.06T'!/=A M&#>>JS^G?[_G418]AUWNV\_M"NM\''NELD[OVL.D:1A/[YUB/M2J-T&O9S.[ M?_A3Q"6B(Y&HJHWZ[I+D^4]GJ'8 :NFH(YZ'874ZT"EK=8;N&W_@#%7=0-U^ M,-R6/?GA+TRA.-^GO] /(QIT<0[E(OB(!5N;,T>@688W!^7WKZA#=G9\7# O M#V#LQ;IRGA]KN3[QL7B&X_7N!L?[)2_G=YV19YP5K^+IMZ%9?0 M'GC"I^:N.<93$47L"=L78\]0^1#53R<^CS,-(K']X.+9FJ)YYPAM7&" [BII MA;@CA&<72[YA=LE]E[ K[]0Q^TIGO$=R8* 5\3_L\M3KCN_>-O[)_ORW]RA:-__O#X<5&TT!=&FN!8::8!VLO?UM>?5FB M\_75^?)J><J7J]6GU?GBZ@Z=?[F]6W]>WM"?%U<7Z)?E^I>; MQ?6OJW.TN%DN;M^JF;:_!A]LJ*?UE7XA9/LUV>]75%N2C"V$V8ZEH OZ1M47 M4C4*TC^]9 !]4PI0ZY>")*I_1TGS8%KU, P;L?O(@@+(&[>0MX3!H-[([5.\ MWW\\Y$F*>UC6M#CR/H06 %Z'5":$MR$R-GD9Q^UK[X+_BNJ?Y^!4R >)6'Q5 MJ1-QU%)T'B"'VY!J&_:BM84P[VSK'_X4O?&LZMISG/"LZI->M[XZL#ZL=\(9 MT 7.DA?JD-"^_HKWXEUJ-Z*Z,ITE45CE.:>> ;@&U@(UE>/L6$1E.[8W39YQ MRN*Z^6DQ_K;A(9SL!Y[7?,-R<\6;J8.\'4%"_(90K/)F1=RIXC8&*.7>#M1Y MI8:[JWO*%GSUDS/4/D/LX2F[J!BJ2;C$#'=B@0P7J/!D%>,*)>XUN%B\I=#(1+:#B- MW50'-2LY2 OUC)A):GVC7A!=IS5BS=^R5Z0T5[^G>$/%FV8>#P["%.3$ 433/?H,."FY23#'!(PI(** M.G!H%7>6F 4]7W.5"P)>YIVU"-US%.^_-YPJ?:RAD1J>O$$VG<&F45)*B3N?CX8],? MXLR&'M,AO\ 8G+VP5=H4+7>5C MF]9M\6-]Z]#ZQS9]@;@&:I2DK8&LI8WNLGB+44H*:E6RIM$9VK/ 2-JQI\DK M(5N-.'$8:W21FD=89:'F\+<^H+R$"H@S#A+OM>]GI. MMB*P'2B.[B<8* #N*UCU">+^@DF0Z3Z#GKZ^WW#4Z@SQ=HBI6-D6L<9SN/5@ M!P7B,5;26Q%:2O&6A!OH!M6Q3PE5\D,W@NM(H?J/C[2G^QA 5?K2(/3BB*M) M"3J-:\2SGZKPH#D 6S(DQ/09I9!MFXGXU SKF-OCBF1<7U*Z!-TG_\3;7\E^ MRVXJQTG*IO9UV@;;+K(DIX\NZ)_I0UFLJDG))6ZQ#RVGWJ8?3LX@R1+!WG_ MQ,<0?73/@1@N-6I9H =*G".6P/ E3O;,ZWI/F[W/8VIV\H;=_',:P^F+,1TA MM&HV&QM#R3.G&(2W F.7)/UH+BCX42PHN"Y+1WXBV0XGQ8':J96F..DP$NJX MH2$DA!:= V,P!NF8H7XIL+R(4[SG)2Y1EVTWD20+X.BVJW@CSOP,5>QY M7MI: #LD*T5,?55C.(4A(R"T=S4$7))0#W5@U3\A:_P+*VTRE"&6,P>RP2+S M2_**\2W.7I(-EK_8%>%7%?&6OT-^1XIXWWU^3O+BBA3_ MA8L;O"$/*5L$B+MQ0\NIM_6&DQ.V/SCT^P/L40S91\VVY6!2^1Y%_1?:=$WV MAK9'&=['E"53ZY2D[TL!"/_CP#9-2_O=)9IX[W1P!2*C857#2S M,.AAQV*[I58FK_YSF:3XKZ*=-;4[.OZ0M@,X!]'(AS@0D;,WG8S(J.HCDNK' ML_H?_&(J6D]].=4\FL3ZPTN/4"3MQ;,4&XP,"OJ[^-MJ2QTH?A>+ZZGZN,_0 M]@C\RK8 "F#H!X02J$68%$%%62L#V^X];C"CTT/3"!.G@9 JA8)&5 Q;_)S" MQLFG.,E^B_<'5N#L\%0N4I;?<+9)6AL= M"5"Z$'.OH-*$:"79I ?1,#A*"\+:544<6:!#IW%U)WHF%Z&M("%)!F(-I$;A M+4AEZ3\'3$W6.<#GH4Y2DVU*=R%CN-A^7Y=4"R M<8[6Y0%\+]=.E"=B>>E_X>U9Z6:=ZKF5KTZ%.UUAVASL@CF*!W#(1K8C%I,/ M;$Y>6X%A'HJ8NNS[]5$L4I5!>2G3W@*M,BA^HM_SICR\NHXS218*8[OJ.VG: M!:F<47[8 D#'7JU3:JJHSDS)@(JJAZAZ.JW2F$>26']T03F4[5N-& H?8\T< M;F9]N,TTGVY/[^#Q"8:[=%7 $C[5D-"3\>TTB>C?JG4G2GIFR:2H[2>\UA3M,5_0"\#R]+\'R2%TD[)VJ-Y=LZR9S.$DTC*[\9%V/ M!>GAND"B.%\W(6?<7".'IP.?[B_P"/4#_LE_KXM] M7U.H%/09T_]GIO@"IJ'9MME+@-B&IJ0 ?;O@S!50O=$FN( 1$G4XH2ZK,]0P M0W&Z15UV9ZAF2/_%6)[Q)@W7R7-CP(*=# 6T?JX-$/9'23F&4= QW(1S^L]U M=D>^ICH/H=]*YAQT6\'Y!7W9@"[!$7-+;Z!#TW,$V#/F!["G,_(!).,GG_Z5 M RV=^=O6BDE?@XB!P,TD+C(<2S+0R!Y5;W?\**R2ND1*&& %CIJ"Z-V&$858F/-(UE-E0H2&<&97V M -"2BOPMC>DQ6<^>EH\1?3X#%%N,J-RJZD9?:EB/"!2V58^4@?-^%9B59TU> M\$5$G+8-^ :BPF:$Z:3A'&49LM'AXR/ #V_5,ZD=57#+9(=P2(E+R MFL'!RK!Z0L9#I.SH9!"!PF')./H_D.=R2?GLKQ])*L^FJ'IXR"KI9(6 MYHE(N*J-0Z]QQ']!_*=9W(=2#@DQ?49!0<1F+:R-PSH0&"_(AA\=WE']R1.F M(3?XF62B"VUJ5KVGNED02$W2P\"JX:X&K9(HJI^@]A$JGTT+8N,0$MO/+8!: MU;P%MS4L!@;Y(DT/\5X+<%D3 =S'34" +9,* VJ!LQG01P0MF,N?9P5DZ5#U M0*P94!' W:9]\&J'_11N4%0.T/I0Y$6M2AZMYX:0!Y?? MRU[[;4STYO4><[O[UP^5U66__'?IDJ]W=6UB,0A<^;SZGI+G0:9)*0_ I,AX MJTU!OW54K6S(#FWJ'Z=54/7H$.,'%12BUZX%\N!C[!9AO:V\%JY.=@-MB(66 MM8_N'C%*^P/^Y],;<64\L,N8 Q>TNV'I%]:[+SF[3X^+__[@@@!CC+U9EFV) MNSYMQ']Z3W;O#SE&,?LU1^^$LG?YQ'DBM"_1AXSEV CPT5*I"N%)F ,;$R93_].F')B";D5-J=J]'5!UU=ED4SK]H6L2KVT/> LJ^E/F'&T$6,[QC(>PD% 9O;#6JT!"U^KI 68+X:PR[JD;Z\B]FR*L ]AOUR1YF7!/%T$ MQ1;8.4D+%MKV>U(\UNYJ(_0"[S"5N?T]9OMVQ6OEM@@H#F%11\=[L0B+H@_H M=6"TO9]D352^#\.HID)?*5FS0FOG E13HIJT]FPGCO0/@1N!&'[QYH 'J\X- M PCHC[A&J+M4=:7Y3YW.70P@M6Y?G\:;VX<=S=OV)_"2!TUVED] M/*O_@=IF$Y_G6X\\<1X<\:3?1-7< =H)A;F SQ72\/O0> M;6OH?JTGENS[GEB4?N/X4\N(WN4BW9J4T<73=&!GXW5:L1O.4CB\C97-8)58 M/&V&75<\K8<-\XC7D9FQ<7"!GIVA< >SE7E4)9OVP(CO4;&B7CRSYQW^5GRDXOXNZ+.A5?UM M5:W"[L'H90=>AU$RU]R*4=!$U5X\>U1EFT7L*>*/)TX\:QI!8OFYQ6LS\M:= MVS.#8,*X! 1=C]E)"]@+8#/ XHD<6)KB#&_V<9XGNX0:&9Z+=::+K2$V!Y3F M&G)[8$XG]$PSM$?RW0;2,_BR >#Q55.S$.](C _2W.$J9'*MPJGU=O+'D>A%JE MO##0RMBJ,=MO'=4_S0>PZI$AQH\IP+77KD4K]/CVY_P!0X<:]BX^V7'X61D2 MM)E\M/V<,LMH'Y-;-I,='-6>C6J7!LJ;!-Z)L7,4CW9;9N+K:;P[DSI[C$.?%-+4KS!>1YGK^7=J>UA@]%3DB9/A]K:/9?7YOF]HF?*D\41MTD5 MQ"V-B>_N6@.&N ZJH$(FLE:C!@:EKQ'5AVK8&L\CHSF# H;/\>\;R7Q=&#- M8+737^*A/@RXB[_Q^[KY)Y)=9_@E(8=\__HES9IC@>4WIJRTW4>V M_[GAC X=U@ASWKSU?<4=_5'RG_B$>2#5(,,"LG?S%U)(][KPH*I]"DG.ZBOU MB^V6?X=X7]957!P*N@R2Q(J.("DTT9F-I&E2G=E_@RF3G5GU.2MGNY$RF$2 I&>#6P+34@<+FG@_PZ5 <,ORY/,JJ5D'B\:(_@^KK^S (,H+^/08X%/(2KK9B'NRB MZZ,#2!9@/=?,3P'8(N&C+5@'=T:M!3@!C$/M*WA*AH0XFXQKD/]6@US<>$ E M*:IH44W\/2)>.2..B_E@]Q;,S[;; /G74A=27BYC.\*24[]5 BCF:,FY[3#C M]].[:] ?JTQ;*)W.*K._\W-*YX[5?OQ+G.Q9$!YUKW]AMVFA#QT-8J!.')5B MICUN-+S]',X:U5T<\*!1);1SRE@?+=9M^%I_5SHC]0'C6=7JQ \:33H"=\IH MIXU@1XP*<8#GB[9Z'[3T)]O#IJC3BEWC+"%B;(:V3;. E[8)7+]HY,+L-JI$ MZ%8B,HJH^KE)OGJ&RB=3KR1T(T>L/G1O-2!IVW7XX7$ I4?-Z3S4,G>8C@T_ M,W7E1?RW][Q.-^JR11V^Z/X5==M5O!%G?H;:>:T4@%H);V/R&C(V1@W.@2:L M(2)A9"\!;_OAMJ=4S!WM?KG)]-8LOV8GR-WV#X0$R.@4M017.'SX4]1D7W\N MO\Z[)$6O.,ZFKK(6! C5_H47(";=6;#9@KS"WXH;LJ?"'^Z^XOT+_DS2XE$\ M\P+@),WQY,@), .!USM 9HUR[8!M*@,WOF(>JOQ,=4Q /1^6\J]B@DHNJ&0S MIQ0)?N!4Y%((07IM-P(XJG(SC*DV'J<:3O.5S;K5JP>@!VP?)*?(BANO,[S@ M.M$AFWHF'?60;=(Y>+%]P5F1Y+2/RV]LM2%JF;I!]=5D#<(.#942P^8W*5_- MZ5V_>=3Y#54_3GS>IAX=8OZ>X@E8KV'G+,L\RC/S'"\.>)56\\U_4:?_CO9 M!%PP'P>O4<%G<)]1V__A/4:5^#!_4<[5Q5ND'!!=#M;^(F.".)?Y.XMZ1#JY MBC;@=G$4I?S S?0_Z"MMU>H-9>63:9]K@BK#[+N6?'^,\R2^3%*\*_"3NN _"NQHU8-Y! M!FJ0]PRS6M!=4ILR6$D18U?&_Y^ADB./7N[P1#531%+4L.6MNHP1YXS^8+P1 M9SYQ"J9AM($,"D+!1(+*:.WFL+H\=W>-VA4(=ZW#)L1=XVS&=]HE+)3L%?#%=MDN'D M(3VGS'&Z>;W+XC2/-RP2Y) \9QNXH4:./+HRBJC6JFZ-.>\0( MT#M&\M,9JJDF5B'KMY/HA\>@BN"W9M%!MI/8L6 +&;OK*!8$NQ^:Y,Y53E . MXTT-XZ(ES=$#Q_&>X?B[0*\JOFE@]$X:SU1?@KC!S^QF=?KP)4UZ*7+TC:JO MI6H4I)EZR6%3AY*W6M$4))W+L&<2-V7UG0!GGC%ODCX@#4^=>( M< 4$\Q!:2&0-) ZG#@GE!.\'BFGKT2GS1WS)\>ZPOTQV(A8=*-JKQ6:*T"M& MMGT*OGAF(4A[Z\A(']6-SA!OQM>F3<,S5#9%K.W4$=CV2" >0]6_JV2B/+JY M-#WF0$VSK;P@\#&COTSNC,W"$)U%RQ!,3IU(7#/6\7K9[YX6G[#V2;)<;Y*RZN#O"[6*BVR M),V3#=^R$71K3)&AV7V<1$Z30,'CJX1-D"/U=( 4"RX=@,BY4,D[0XU$=MI7 MRCQ#C1$*0C1_PG<-,^C =4UOP(>1%#5-457NQ=@VK[ZP MN7F0!;/M#@MI:AMC)(Z.6J"FR7QV7ZS'GKB.CZ"/)K)6N9SQ->-0S,6N MP!G0]1DI+\^@3('7J)&9TO< V-H*[0=@T(%QQ>9G ,HK;&2X^\9,NQ_A[ZA$IMPWN'P"(.,6[,2%@"S#R+,D@9F MS;$<_;KLI.V)IT2;^*AM ,BI0M$ (1=:'G6 [03H>HQ#=7'4#3R>I[?\9_S M$]7A9D,O*3?T6"7%C&WH94>"SA#N[.AMNSMZ3>!G1][$2>U.=2M/.3V M;%U&BPZN=W4OCAO]GB4%OB!?9<4FW4]+0J38GYCX21G: (>\^^ G)YZ="S*^ M7C)M3U"886W8]YIR$8C)8.UJ*?QY*6?VYC=(DUQ,,(#*.AAA'VE.AAC$-@28 MXO,X?_P5[[>KM#+^B\V&'/J5<(WMJF^K:1=DT(SR8;Q"G1BU<5%31>P18L^H MSC=GI?7C:;7:/*3$^NL+FJ5LW^K&Z$"!VDC1"_ "7/BWSA,E'YP"%""-T;4 MG"%W1/12?/#RH<++(\-+DC8+MOCMX$6UQQ&$%[_+=(J)\^,A3U*M1A@%H.J&8QHVP+($@ED(@1[$,(R]:$G*@607DXP7T81H.8 MG_1#AP!U2.F53:]%P;Y=D'!(]R^X(P,ITXT\4Z#3 MM?1*B-G8>M +^78N1AF@*7A*$/HF,,-MQS% -N&Z[B/^!_K@@3W&23@PUV5 %F]5PXK] M,0=0'7UIHOQ(,CBQYP*8(,<'W@HT7"T&JF,!3F2H]+JO&"S8R&/IS0>>#5WB M!-@UUB41Z#2&O\+3Z\F "02ZLAQO[[2DB@MB_$1A%JZNY8#KK^JH %*#74]D MN*0S#J &O7-X+,473.K[AF\53FY7#9T!-+NBDU[ZD-SOJW(HG^/_(=GY/L[SJ_@)EXLH =B> MU'7I35?JL#H5?GT-,_#N0C6%*AQY127!>TZ!6I+JQLP9XE2(DR%&-Y.5LB^H M2.!(BX4KW+ATJE?,&=:P);\\9(/AFU<2^H%PMT&?"./3IJ/6=/;C:]M=R4Z6 M!Z5Y;NM3#F4 5'T<;$Z3"/32]QX?@Z:SE,E=79_#AH\/=FP4W \"]46.5BI M]72H'6O*DLH%@:]YJOJ> >PS.X% >-I9Z;(N@;'J5,"0;K-:M*R_G*YED+Y: M]"%L5M$+4*NACBYJ'J+NTYGL4M@,*W'X_H+V:"A:;9D$,* &W23'"SG,8'\7 MV%':WE#TS+0ZV1T5+=W)NO_= ]"]_)@G!&=J_3^^LBY* M]GD<*$S6OTLQC![V^S20]3\2Y*%^'7H[Y9O!HM<%"6;54\+'J'@MI87BC8FY M<6R_("\(?-:V_PW#S]WR>P)P_"C4Q6['KUGA[3*E+_X#WKT'5,K;)T7T/=H [*ES0(B_Y62@P,TY?QU82!]YM'U6^( M_SB3M9YF@(CYDXIQXKV&G8#QX0<:-MY?SMYEQ/D-@#!KUCZ_=)[)+1PAE$HSP[M3&P$95I!@LF#UA(5C@UW7CS# JSDST'^8/^@5+^ ' M?.-X>X!?P=-- 30=&]W:?Z+L)C?W32=@[7W%EF'__YH_]F6]A['XQV,,8/(9 MPS";7W=I?.^&KF03G'XPSAYS".@9Y. MW:FYE#*O.RJHE[Z1M/AXVPA0I47)86ME)6];'6Q(Q +&9TW!XCGI7&_<% JE M&%^YKM2-58HP" XLYQ3G\ME#N#+PY;.[E;.I5O_?<\*8?>^!7!G(4M?A5:[! M"ES+E6A -!^)<#6 33&FYSC9LLHZ*'XJ"\PDZ69_V&)><:=XQ.B)DM%/R*A8 MREO2V,T]XX?V27R?[),BP2=M.2T1:6L[I_405BE+;DQ!?4K'][A[.FO AI] MR:7NL@TYX(1BWUM(%]M*JNW<8\&L[Y;71*BB0@U9V0(QPCG-/ ZP4LQ)SL"4 MSU5F-JI9;'!H]XP*5"8N.6.'^8#Y1I5@(LY2^%P4RW#:S.WQM7&0TZV<]IN%GI[D>2\'!0]39X+.F[^SLS0R/P MSJ.+5 !8\H/\[QB8FKW'X: Y?GH$L1^2JW6Z)M6WD3<)4C.=U##[KN"LUADI M@4PY9K QKQTL8O-Q!;C+FK;('FG@04VI4H ; A0&\J0QH#1Z[BB K3OV\9 G M*<[S"YQOLN29>=F+='N;/*3)+MFP=#,;OJF5I _79)]L$IS?Q?=[$6&A;*JO MXL\F2#-">P^SFQ70"[6">3.-:DK4(464%G6(44N-:G+T!V%]VK5$X,26!VL +D@^O(&R6^J$B4-"8C9($[TIZ"X;]GB]^\\#]8]QMG_]E*1QNDGB_2K=D>R)NUJ\IW?X6_&1 M=N;O@LH&\:C&P9-'D)$)ZG?8-.PK6FU5_#A&36/4M$:=YI7=0(P"<9*)34@8 MU@C(T NFPXM7:S=.!OF@NQS^/0!6 >:!&I3@^T6\TK6< O, 4=EYD26; F]O M'V/:DD[/G9\**N)+FA1>%8W-^Q+NPG6G)&Z\HAO\3)OA\IYC:]Q9.N0Z\)6@ MK&&!>I3U@@0+T=L3=CM6Y1&Z$TKC7O6$D-?T+7H(&>MJD&=] U_'1HQOS=DUYNKJ2]M^ M=@Z>!W14]_+M85>KM#T#YTBH/4.E=D,4)7.H+H MV=Q)O\'_."09G9^^I%MJ:*](^IXNMS=XSX$M: %JCKAG=:5C*)S;9IP 1OK4 M%70P2^^P_/:,TQR?'[*L?S]#VZ:IDB-M$UBC1",W;(I1L=:5'Y%11-7/J/K] M#%5/IBXNHALQ8O6!>^5#)&V[!4/@Q]_U[L-X=^]4PN&NW$COWFWK.S:4%4;Q M\_,^H4_I&)S0#;Q!KMWXW< #O7@SK1EO-PDN\ Y3Y=O>Q=_*6LATS739)N"Q MW)SVXM+;GG;D K1-Y]5WJ"UJ5^$V.W1N/%MOD*YA:E)$:>L"Y&RGHD,^NU5- M* HEVW@A<.YOXSEQDVWDG8!>#+2![=X'< 41%TPR%5DKHO'WK58BY;5%]6V#%)_BSZ$37UZ 6KMU=%%1SK9>7R&>(-I]=%F M6(G#]Q>T2D/1:LYP@)$NY(!+@:HD.*Z^RW*?Y?H;ET\F-M4AZVY-X4[WE??D MR24SMFJZP.5_5VG5R1JV56>ID>>0+4V^ ,G-W,3[8V M 9H/RZBF0^]JRI]8PEAAQXPO1TKK5A).GDS(Z2MHVO!9HI M"G0Z,9#J^_8VS$ORD*K6<6=F$:= G 2U-*@F MXBG44$F&6KII%=X;5B1TJ 45=V73*O?,H>WF%9FC*+WDP\&\S';;Q%+&*?V_ M]!#O$=[M\(;G3DYJP//S3+)#!5>,E"M&UDB9.(!R?.0KI[?QL!_LTSD+A+R- MYB4<$/H?:ALO0EF ?%[:^.?OUL8K X9'1+I?V+"#\T:M8!E_1X4F9&OAKRDH M-"Y:CP)<>15]&DA;^]+0#HE$RCU>C4Z MZJ"N]MN*"@(=\X 4KG[3$EV_8=@Y^3$AP(-=@'])65VGAS3Y)]_N^HA3O$N* M7!X<:]>X>G]3XR#UL>M)F-X89:@5QD :=9_S<]^ZQ3Q":BW'F;B-AJ 7>J)6 M)0;%D8V^ 5_XLQ499HZ/+_>QPH7B[']2:U 0"^WB?P=9Z+Z7#6G=H/=.+*3Y M6CJ>;*Y2Z&>2\N"2RH";RO2-^2Z5,Z!3#&+WCCPL >_1-8OKC+PD.;,V[ZK6/Z%/).N8IJF#=R' *#$ZH[+SG6!@C[,1$"A%V9@,2[^?4< MP%IX=\ ;(LHT23E+Q&C/:=VXILD*C&:-FGLV!Q0W/* K.$X*]*+@@*->& MPH]9/P;N!%0"L":XKW1HC:BJBS9DN11TXJ;6B2\L8.))<^@:64,/%/UU%,KK#.S!$!,(\SZMMXU5$1L_)I=$?G.MB:1;C+<$]KK/C] MSJ93%_B)"*!2-Z@3=$L:A"7$5$J$2'@I8ZY):-EO'K'_3?.B*BR?5 ]YWI[) M;]%K1HN8OZ^85K+7L),XC8KDG]R+5NU2B: QYZ@>DL;@B @V_<(P)Q9 M"5,CW8(\ZK1!<:<1WS[8JFSAM!KA@ KB/FZ"OI@)6_V9 ?J@S*JEI!#P,;/; MA5^W&5J];; IS3,LW&#-=R_!I7*O2P"O.V$_IZ21$"K1DV4/P3).FN5997\R ML3G.1UGM7VH.9F>3+\H6,;+T46YHJW70GH$TM=2P2+50>N"3$$N)05/!T0E' M[.633'RP,= \H3JP )XG9G(SH-P+_HCI0+?[PA?T/WF1;!;I]A/]/7FPO1P0 MQ*T7D^O)#2@N-^A=0&-S?7MB$Y_KQ_LH1K]+V,=[;J^K:YDO\?Y0_L%^_\IJI?'B M@-O:(V0Q-CPZ ,5%D27WAR*N2IUOZ1ANBH3_A9^>219GKVB;["@AYFP8N'5A M"!//RN/XD39920?P)(.OB3J(@KPRZB@61$4^=.MC]E#Z78!4Y4H.#-*9N);7 M&6&F[/*U[^&KI2[J1]YQ'6W(@;]&MMZ#NH;5H&W_0DMG1C='S1\H5 ML\+7:$D]C">^C*PY-#L,;T&-AW*+*T] H'VS'O3.E&NX4NA%IJSB35-)[ZSX(@,0T$&RZM\=L2F(@V3(!%J#G&0%@I$ M-E^H*H_-[Y[=L(!T+!82"LD9A/I=T4]=YOKI]%.[PG$EZX8%6I&%AXTY] X@ ME,Q.FB&\S(9)%7+6-IUU05MGG!#?,93%JUF0"U%LPV/3TB@ '\8Z2 V>2HX. M98\VBRE0L-XB[/DA;+A&\<2IVD^&\9#S$@6>W"0,Q)H M6GB;&SO+.$NIN[M(MQ?)2[+%Z39?[ZH#GL5NQYO5U>8%K1J*O<,M;S?V@]_< M\WG;X6_S.?8J[(:?DS#K6W]GJ.++"Y(UG)F9JWBCAOE97;UH_C<"O;3#Z9Y@ M@/[5E@Y:C-N-PA$UW-8- 2TDZ20TW(EM;T[(W=BW[K/J;UD,XK5.N\ILMT,7 MFTUVP.H"]\J3-%O"WAF:F1#H@,&VAU '"Q;R; X4C&R.#A*JUK->='J 1G)V MX BX_IF!B8'LM& V8 6=7AS%0J!6/ "K<5NE>9Q-5-^0"+4XUQH"H\'Q1= > M&72LWB#]&V_!XY+HY,>29X0E3U#"E'DL>N;B7GY*TJ3 EVRK<$55.'U@,:CE MKI:EG^G,H>=P.G FLR=^PPZI[M(MYG:[?D=S?!MVUF<488@2C+7^\*R/^5; MX+JN]H0!!D ^QX!S&56PM3Z;4%^7)RF?LZ=:A[Y M_DCV5*^?GC/R@MF3B2L0.N^@Z;GEQ^DN/#H MI+:KRT;.;G&!:K*ID_?H73>5;A5;4TGGL'IZV77/WEQ2;I6+%ZI?+QEGCU.\_*$K0Q&T$^BX9SJB32$ M4YC)"'\'F)/[L(YH+$< WZ@B+BO%XO?LHD3) '$.J,NBCE^9WQP+ %,"B!?1 MJOAS[%B64U0@L'5H8!<&41X^]?Y0'SCU44_+$RM0<%!9B&S(+%:A_1A&CS[X MZ=$/I3G&Q]R49B9)M&KO^[C+MP7MXOJ9_3-?L& T^[1:H0Q[6TO^#('6TJ%O M!+JH#NB,S>K:F_U1QE;>'I4$J":8RZ(Z&*"2]340Z/L+;5_&LC4WF"*-:*@^ MQ4GV6[P_5)$\GW&<'S*\7:(_QQG?\=E,H);1E]>;6+;=G6@^_+; MAN<(9#]\C3/F$:5%%F^F/J/UQA\)Q81@45S9M/9CYCH M8;VD@NG &RUW*K M61T\6M,A.H\VE'S;>GZ!I>-C7;DB'@_MP6O?S_&WY.GP=(VSA&Q7Z>^/R>9Q ML=FP'"TYE8F3%S;*'S$[L[@X8+?UKAKN/F+5:'?G%E4DJ*1AJ5TY%:K)4$N' M2D)$*:=%N.-K]@'N/=@"OAWYM/#VZ, <%JF=_7$\D:Q!V_QDG%3@:C,;W'$!%U.7A44"J#R MV\C!B.^O3;VX*FXM ZC0B)9I\1(G>]8;NMRXC?>X796HK(\#15WWU(8BK.Z8 M?9\ +(6=-$W),0OZ(XV7KAHGKBCF@ +B,4QB13$S9:>DV!SP!E;KU%)4$-QX MD9ZZV?L=R=[G\?$6Q=R6:$/A3UW[%!B!TX;>LK#@O.#W2JBLQ;=$S-.N;E!] M%UF#()U22PQ3("E?M;9(FD?M;XC]B/Y@/T^L )H!(N9/*H"[W[#%LL5 CPC< M*_RU6N4EZ<-U1E+ZSTVYP7I-]LGFM?Q?E?/B2UY]+W?R()7P[6V8PGA(5:N3 M,[.(4J"6!!W3G*&R/?JC^N]L)B1O9)'0T19TV95-J^DS1S=H;+>7<#B8,X>+ M[5+1&:6#]0O\@O?D>097L\='L]+Q&@_/$]^&DIYIE\?9BW2[2AE:DA?,;@97 M_1?W!?TYU'N!/AS"]O_\^PRQY^S>5.JA#I4=6 MB&DGQ^8PFV='BM--$N]7:5YDA\YTKHJ8LJ$1PZ3T-#!Q(3;] @H%,8BRB/[0 M: -M)%Q,YXTF MSM5L./%R2!62N'@0TPM2YNH$P-JV- MOL$/+$:&9*]-8G L]^$M6E9?2-LR2*$L^A"F2GH!:B72T47MPT[R?3QC+]QF MJ(G#F B:HZ%HM682$('ZU"8Y7FABYK@+HK8G9 :?! M-)L;5M]'US!(:\P]"+/%6OYJ%=&019UG\[6]%B-+[,= T!(U0:L@$R &U,0: MQ/A AQG6SE,>'_(KWCY0&_(6P*(TJF%PF7HK-\?T"SYV0E<7*8\J.5 W9)= M\=5X"!?$H]G^]>(1N*<7T._0+6,_T;KM/Q^.44UVU@U>/N.J6].BFGB^LT$8 M @D(('J;D!Z\NMN3)Z(/P+O?OCT 5HPROK\D++.RM]3?+]0U.^[C@WWB@,8R MW5=9E87V*HO3/-Z4J>O2+?]SSX,R#2N48#YUX*,_G["HL]#^!P9(!HC7!*5Y MH2+6JUJ=C]T UU0.B$VC'U2O8%IP=\@S?D(4U8_TRK5LOVS0K5V#[0^[;L M3^C*TRQ&YTR;J*.J">JTF?/"T18$Q'F<>CZR@:[K#T\,->!%G8VT ,R5B[4> MZMX>LC3K+SAL36O%?R%D^S79[_DMMH("(KG?5QE0Q;^E$5'>]-47]: /4D7O M_H;- CYBU1KJSBVJ2:I+I'6C*MOPF>RGN2/C1(>C-P4:7]!X#+I G]-3Y"_2FG,R\K M1;JAO&IY_P9;1O;$>3G/ A?CLK%^?I*K106";+QK+?@L?.IC>BM?>AKA,T-6OYJ7=*01?4SU'TX6TMO,<3$?C $%5(3M#HS 71 S;-!C ^&F &6 MHN@M0$5I;\/ $EY4O2FOTQ9":2LJG._C/$]V"=XN\O,X?V2EJU_B/5LX#%E@ M';!/-G6C0J68Z\F@EAUUAQ%CB#H!VYGVTC3;4;9,HKKE M&<_36_#U<]-ZOJME9\00W]$4-[@LR3N;7;XH'5%O537M9"%_98S?8OL_AZIZ M3/SMFF3\MZ+(DOL#-UUWY#JF-(6@4<,+JL9K2$%!UF3X+Q!F?P;MG]IB#2@V MDA73K-)>O6-5&W\Z0_HPXT;2&>.F4CZ]MD^OXE=^U^LK2\%!+]DA_O,Z2#75. M*?4326\+.F%=XVS3M_##"^K6-!E(4'B-B$&_ %2%E*$Z:2@Y,8S8:/GTO">O MF*YX-W&*GBL"E+-&**8:_HC1<]DX?L HBPN^:&8_[\E7.D-4?SSQ]1=Z9I(0 MM?+LMUV2Y04B&;41]+_;^+5N3'8[G+%L,<]EE?AW<8[B6LQ/,ZAM,:PJDO% M+ZN3,8A H9S&'$V,[9H"=-O526CXVI3GBJZ?\77I)::?])'LMVA%9V?R@F>0 MW7_XA:@Z-&>PI>CT-6Q3EH!5OVED:M:I9RMO%ES55B<];!&FX:ZO<"LEBIHG M\]W0,8XFL?WRDA*XLN;'A7!'1 BH3=8*<8=*F1"Z?#9Y*?IP2"A-IS\HIC6- MLJ,!:1B!N6'U170-@^!O[D&8B=3R5R-?0Q9)C\_F:S(MQIC8CX:@(6J"5D 6>=DX(7)BO87:#!_$:/4$#K6A;99P-&$'MN;W$0%0R M*Z_$Y=O%GM+^#X&^:6>%+SE>[Y9YD3S%!RT_T^_[U+Q6S=?:9-EY_3>GO59@(R>@+E>'R8K3K M9!VHXV8GZ$#8<>=D7PSBV'2*SFN.7\?O3M3*9 [%MN;U/JN8O=_63M?)]-HC'EB/ MWI'.T?>IV3RK>1&VVJ&UQ$ /BBTN>C[4V_63U 41!_"4)MY,I[BG_=G&YC2[ M-DWKK7-MT[!-2HM>!&Z4ZR5H=B)UA-'1T_FN/ZQ&F;B,AKCUJ"'I[#A.@R#8 MW6V3(#\H\3Q769)NDN<]SIE_=M3ZKC^R9NP+1(X#?-&\QI ME++W<7J;GDQ\86N85&IG,B&P>6,)XR+)-_L27[(\.(^+[)X(UYR M]:2VF4)DU,,IL+JO TXJ4J&>FBSA9:?0I3ZC/VJR.4\X&D39Z;@1DE:JWN=B MJ?,6F!YUD_+I*>'7]7->331EFZF8]AGG;4?5VY8^Q,U&IAMQX,:43T]#-SL= M9>KVK)Q819WV597J#@5J26;D9'IBB82-<&__RX5)=T=LMEAV?D^ U6S9C@'9J4_2+/JJ\$Z]:%VF*"#/U*N? M(TQ05EZI&Z=C+9Z-U^F'%#=]-GB<3CP<=7D.WJ9X:J_065,S1<@ND"::I,,& MYEKIEY(HNEG^MKSZLD14IX9N5[]_ M+F_0Q?+3ZFIYP6:?NYO5QR]\1_'ZX2#*> M@\QF1>9**9^;])20VFW31]"9R2#06J6U?%ST>39.H@]Z5)KM #V%6NLX*+7: M";SDQ8 -N;5K:^7;-O@ZA=TN5S<3KVM/@2L ME$X:)+"F=<>J[CUC%H&HW%@SM#JVT_U6$)JCD@UBDR7,C7%9&8*[^)O93;%IVN3'U34-S(!J[D5HGERM!%T" M5 UA5!4'H8_GZ8=8#2]Q&89>?E0U23='ZF#066PVAZ?#/B[P]@H77](,Q_OD MGWC+TK*6I39^B9.4%6_YC)_N<>96 ]!XY.\E7HTV#W;1XB5.]BQ=XOL=R=[G M\7%-OS_*AA/CT/6]^MCT'VZ:KZ%T*1G+(N M'G_?2I6LVM9IR_1MPU)V;>2BEW:@3I\$1DVCI:#HYM0;$E&[N 8[_,HKR@%JG=#1 M1?7#>:Y%;<:5. R H!P:BE8Y)D$,L)=ADN0%'N9C_+)>7_R^NKQ\&S!1>A>A M0#G%+!Y.FQYJJS51SV>5O>.#F*6PX89J=NCB*'-'73*X%"YK7V7NJ!-!L/*1 MK ^(=Z(M.?PC6>&T^3M46TK?6?X.OVTM19+=*GJ+R5_NDZYG$]\D^*5YIY[ZDVR0O"RCC[3+.4DHLIM$=4D2% MA&%$!,TR0[YUV"PR4,_4L\0@ J,Z/)D;[PY?U#)&-6=4L^9'10US/CTA<+V_0[:^+F^6TNF(>2&+]S06]4+9OM6%T>+CM4:M= M'+T #VRPC>G&X:9/$7\\HV,-"* H]ZI#H#+M&;C8+86/8FJF,)= WHA).JPN M6/D;2B*IC9R-:V$<1Z42&)P(57.U LS!76B7 NM=]X+;#>;A@^V8]Q MCK?7\2O/3Z)R*H"X55\VF%N0R@&]"X@;$]X7M1Z'\HZX?K__N+CE5TX_7R^O M;GG^DFGU' J*!!@/@M4(Y-H:EY-6%BBG#J(;@VD*<4(UJQDYDW-3+Z5C.A<%F[C^;M.QHUOLBL1=5HWK]%V&QF%)O*QZ M$IC*RR1#D]!+3ZJ<&6?C#%N.-'$;#S%OEY:HD[W+#4DC:L^G.,E^B_>'SH5A MI0MLU;;Z0H:V0:ICU8\PS3&)4"N.GC)BCQ%_WC'?+VR\WR\_+J;N+K*9 84GH_$"B: MUG.1=4WAM]@TU5A>()_%IA?P=M?*7]$2JK1D-LZ*U?!J]<7@J.A(]+H"!)TA MHG.@ZR(.UL=QH^+8M+!X(@<6P[Q#]]T(.=R)D"M8^<,V2BZKH^2V=91<$7]# M^Z,H.49R.(J4P_6I$)7$GM[2/^)G%C:='^[S9)O$V>O$=0Y/-XQ..?6=7B!= M\'V-03KE="/#<)U]L Z.;#P^"$&U79/A:"[DIN*'-0A%Z^E;@TF3*%+H:4E;-.RE@]7Z]G;B^HW6 T]2LE5'=IRG=4)P09UE6?X38HUGM.,&CS-MSF\8I$V?VUOL'2[6.SKY:')Z6U)H#'F/ ES= M%'V"U[>^(#>%$^E/T9JK *!5-#UJ=)HF4.J5S02U,0.I<):\4+>/]8WVYE#7 MYH)6[C/X< MZO6J#X>P]:M_GP/7LUZ"->M;#WX1(SA#[']1A^Z,.[LMZ5$:\-DXN2%H(P## M+RZ6W3EU%L^G@'OH(O>>/0!5 >:E?E[<_,?R;O'Q]GPC; MZDW7D=$]K2\JZYK" [5I6GU+?=,@;;;I1=AT99"@5DHMH5SW9N-96@TN<1D$ M0:UT)*W^. %G1#599P]QFOR3!Z.=DS0G^V1;EU^\IGBM ]76NWX^#I4^@?*L ML]' \ S+5P/Y7F&J#-453:X;$ G1QR^WJZOE[2VZ6-Z>WZRN^=T<5D?U=O7+ MU>K3ZGQQ=8<6Y^?K+U>\D-CU^G)U/B?[ 0MF,@B6Q%P[$+P[V7@&4;V [%=W M\;?Z[E]U,_".\)M-^>])\?@KWK-,I?*K3KPPM*#<4.RJ40AG%V2DH-X&)I09 MH#=J$Q7,/+K!SR6 6/CG+'Y/G-D/S M*I6D4U:F9FZ2-XM+EZ'XU^L=>/YABZ2AWA<@\GJ(OFG69.#2HHHE(C5/]-PF MMT]X_GJ>>W[333[.+&#UX'TY<&C;)+7?ULPG7@,.IB5D<&"*JTUH.9TEZEO7 M=>A[6L-T<$259SNG@@OT-)P-F-@3.D4CH-S+/24SX+D/[+7X>S1Z=V5;IR6@ M*U.KA: ]TP&7@ZYO-L:BT*%/ODM#:Q'1U8$7)Z4KPFKEUUD+'JT1VQ9O96WH MC'K+%:*G-MFM$VV9VZX61])2=GGM(4W*7;3.#;8RESSM0'O/C96:YHW_B;?+ M;QNI-Y@%ZI-19<6-3AR$MS=:NNE%RYBG8JM'09HY(S;UWS MGDFM9MA/U=??H= H:#*LF%:CX;L?%J7Q2 %/?:?%9L-V%Y/T@79A^?2\)Z\8 M][+9T6<[G!0LXT4E'WC1 M$=3?A&,/?N@B1)J8(^51,FSHHX27G&"((V7 Y; MD,2-)*[-N))U-/-6LS1K4,N;>.H-_$Z20!$HE(E!(V%\.P$DX1V<,+=C039_ M7^7Y 6\O#AF[=XZSA&S+N;]Y"=;HFMJ!1_HBLH.F0"YU-DA?+F%I(L/Z'I@_ MTENX)K&D)\^(_X9*2E22HI*VRBB;GZ&:'I6-:PZ(LY@X'V4@" D0(L0,EG[< M.JDM3TDMW"9UP[E#2!_ ]8/-X(PJI@!D7C==]#[1V3OG>G!(MW1*T"G'6;6* M_KYU1#D;3Z4EP6F3EKL=WA3-K6+J9=_0I3;SU---LD^XBU=E95FDVV8/<;V3 M[#A6&Y*@69.&ZI^FML<@$MOR."S\O]V$IYHHW;E_%].6]1;_Q#?C!_@B?8T< M%(ABN1)X69U*)\.\2)"67^&"Q8A?9X1)VWY\_4(]^E6Z2E]P7AQ=73PG; EP MH+^M*?C*7M2A8E#970![HU9C,"$1Y53>XJEYH?M7](ZQH\OF?ISUL"S^3-.^'7X,GK>1G]^$'50&'&JJ#O MFG;WQIG=[.[(WCB[>W1WPME]\XBWASU> M[V[P"TX/..=Y5K_157,:[\\/>4&7&!F[\7E)TH=+NNK8EJ=I=^Q&FSC-@S"K MY_M 9F$3/\B;!'H H7W0N )AK*.:GNTNU!S*9,TU#]0PX?L1C,U[SJ<^@/^# MLYJZ1!,,8 DL;$2'(8AIQW.8AT+9;%]PB9ZI"TQ[YJ$=L=$J+]:M5JUW:(&. M6[/?[EAY@R(N#G0R>$6,([HC_-=&7IUGEL6NL 9S42_W#Z)3KA (*97+G:E, MM?RZ-OXB=8QS*(L> *]6 \^@OM^UJNNYTZ"KU5GN=Y4'9?)P4)=H#ST'FT@/ M%8?ACK/U?1[Z(%LIW?,(6\$OXK^CI#(?98CH-LFH.:?_Z(9PG\!1M0%E=L?4 M5E"U.J"6<[(\G)X+WJ'VKWQ%@\*=^YL6\4S=2MGG1SK ]K7H%-N)U_L^]<$O M9&, C9CEM,EG^I!9TX*!Q0'1F#;$HL<#^]QP,Z:.G?V$.4O#8 ,L*Z<:8IK4 M,+)SIF<"\('G2)-D2'R;9LCJ[//D)\B!]Z#Z9".%.DPXXAQDV-]/ZS!5B MF6XU'H3(W&X,F5W\N+A<7)TO9[(0MAY&M2TR#F3X+FV7F5, [&"J@F\M!G/2ZI^K=)-A.C]=X/*_JY1/9X]DOZ4N/TNS7+S>D/V> M.@Y?XTR<+SRIJV_D3!V$><^^ADU,[D+5JN+**ZH)T+N:Y"=V5;5+];]128?^ M8)2H(IWX(-P7521PJ 75=>32:O>L<0UZUN8C&PS@_'SM!\0=1WTBD,.X+/?B M2FJ19>P^-[NK_?&U;5)=WUXPRB#,]0RW;:O=A!CX:Q.=1.'BPD)-YAQ 2!-<2JM/3^:4W>(.3%Q:; MDM]E\18OTNVZ>,19E;WY4DMS00[WQ>ZPKUM=DWVR>17LR1"L MJW&%91V:RPG\+0$\!N!N:1,YP0F*ZK]12\9#21M:?MY04Z.Z^>0)FN"!3H8$ M6#\U$YB(H\1,PRGIJ(><576#RR3%*_K/?J(758/FD++?(/",1B4Q] 1&PE=W MOM)K'C6_H3_8KXC_/'7$MWJ B/F3]HXPQ(;=(XK!!QHXAE/*WF7$RQ.SMS+F MFH,KEU$/7X4UL<5E2/%'S/(Y-.'%%_0_>9%LJ$FM[O>'!,]K[ % -VQ"YWVY M']U)J:+@[SF73DS\&:HY<5>BXE7=14&S*8X9^#4DZ(;"D#)ZWHNO+(#>NX-S MN$/7RV;'EWE\EV;]S&_]L2/JG\C?YZ-4>Q2#,>W?L8)@#&3K(-P6] M,@34,1L[""+JZ$I1&;>IH2L<7=[830@@*ZY-")<$5'F3WZ+F% ZGWZHF-957&PVAZ<#+S; M-\#8@4&&'W&:-U=&I?;0F:[Z5@YT0/$$1K>E;W1P+ES[7:)R"\UYP=D^ KS::XO>\ M.%:Q[$D9%KK$N$D%L,;,U>DT M1KPU.FJ.+DD^%^]G#,.L])&&-,W3>E+G/+4#5S.IQZ1\7GTAR?.P8B\J>6&> MCHRMI@A+KW54_E1M_LQ#(]1#0XQ?4RQ2(K;KE!TQ#G! +4*K',PLNJ=,PMRM M-M2M2U0YE+VJA$.QK[X>//OA4\1[O&V8Y@W0J\"<\"["(F5**"0DEJK9\A.Q MHSIHQW73&MXGD"O>1S7<$L7[*U]MNJ#%.":('T^]>X88U/V48(ID[^48F M274M+X=I_/B:;1T1ADR?;*BTR>HQS=(]QBC(>$XHY M@R2O_F1;KVSEUK4>/#RLS\R&HZ\T$[LRZDX5?5^#- M+J@/H9;@:'^9+_$&+;#2K_"QP9[^A6(AWL9%E-:(A9+OXSQ/=@G>LOS&'_%# MDK+SOQJ[-5X3G-^1"J.6$5CP(GIQ6) B@**QX-\:*A(5M&L&XL-^HP9ZI6&^GY!K$.H#:2H*[!E+,Y#QI E"S :T 3,,55&6$2 MR!??$N6M&5U;\0*-O"W,%0M=/X"NU2A$6-RWD%+VW Y6+88^F-H(6(UL_Q:& M!1#:8UH-C>1FQA"X&4!W!RIZ -S!<2=-?LWC\/049Z]LUBP>,8JKF3/KS9SW MS =XX&Z^/(1N##GR+ZRV$?LVRS M^69/\D.& >W!Q)M&)VP0E)%4IV<00C>MM.[&,!=WE9(\?4K99M;;\RK-UWP# M_,JI4[)779/6ZI,^%!=9(*6_I)* EE$6M>Z.FW9OJ,^B!)U\'/K@U9:(.VHD M 2?\. YCPUK6M@,J)!TXO2$U&R#MH,[$Q*QW_5QT8J%7T?+8T(@&24\#@V^; M?@&9+X,H"R70WZ\O5Q>)N>8%N[^A_/B^O[F[1^A/]:WW^'[^N+R^6 M-[?_\K^^??C+7__UW]'R/[^L[OYK-H6&W:#25S 'A/6T3D/32:LHB1;Q73UF.8C71 M%RZ,>#7QI,[ FJ1HPRJ+L\A-_@_<,I@X\L$'.B1D2,4X!P<6G?B&><(6*H>/ MLTP8U/((RQJG_!\=DK,JI6F3%K>35_A[P; Z;G-P%$\<[[Y;?-(TN6 MRN*4UZF\_V(0J ?IT?4'6U* JPUNO82XMF MT70EP9)1==V [<+6['.\F?UJP MFS^T7T-G@0SJB5L"-&S='<^'/N<*1"N';J,.73EOW/FV,UT[V$\QTX= M%S^X:S?MNNT*%ZP_UQEY2;9X^_'U"]7+5?HI2>-TPVZ5EJJ8]"ZVNQ-67]:% M,$C=W7L8-J,ZR5/KMP,;OH?(UV)U:U9^YATC0$GZ$VIH4$LTK49[H(;XCZ>@ MR_8,6DV>(5H=SVOUF]^.8B%@RR8E!EP^UQQ*K*)= ]7XNX*JKZ?:^RLG7[ZAM:M _25>O^A$TH-F+4"FFFCNHFY;[& MT2(*-X(W-( M7#X$VI06'A)OLUQ$K-(75NO!?1&A(=0O(J2$0[AEFAX.YY3)A3J[9#(V?8MF@6>\V5'-?[P)CUG41 M 83:B1<19V$&UNWK182Y?9B/9]N?P$6$ MA1B-:V>DCNHF#$%5(]2V0F6SB=TZZZ$GSJ,C.G4FNHY3-S7 +">#?RTAEN(' MEDE8LXRPDA> -9XN>KM-R@4J_8[/M$.3'U(, 2[UF@$07C,SWW3"><99\7I- MX5$LTBT[(GEF34QVW$BH,N@:0EC%,_80V,3KY#GHGYJ-U.C7S<\0)SCC!XH- MSZIF96PD9K'96Q47-.\WY'L/?_U*<[^CLO,FGG#84;[JX9W-6RU6H^V M;M?5P$2Q 6LA>CQ4P]8X MQUJEB\TF.U 7N+T<("B*"TGU)>U(@A37I5=A"U=+26H=M6(02>XCLA.NJFDW M"^NTRND$!^(S7((ZVI"VBC@3Z %'9EN+#$-A5>J. PY_8U'O;Q=M2O,/C[>Y MF?SZ4M%B^Q+3+V\V^"H"I;GO$P!KG*I'T*9>(L=%Q7KD*C-?-T1UR[FIG1(" M&J4SP$:M<"*A3MU&A]K@IETJ, 1UY8XB_W=;$.6YV@![BT!SL.TA4)N;7:'=*%E_!G#?!3&.7M,1M<9Q+^]F5PWGIF>JP=<[ M41J\:/VG+IW!>1H38F.XZ3UY 6BK'/026,]O%5ANKKDGM !S<+=)6->[I@;F MLEP_?<0IWB7%T-?C_;I@A_/1A?A.,E_Z5ZQ"\*.^^._.477KWZAA<<:W?XOV!7[-?[/?D*W.QSOG%9*J[/,_)Q0'?D2N2 M?BGHPOJ?O.5Z=X-S3(?RD2?&>,%[\ESF*OUVGN%MT@NP'%1&-3H#R0BR5H.^ M=Y@5&ZIK:NLVC,2H88L:OJADS!W"LGSE19E?AW)''?;,--8">)A'1P0WEI60 M:>WAL,I#1L&J8$$'D=7:UG%,P:2K3A9SGU)Q-B='DK;*U>916^!E@*0?T*O, M8Q$N/G^74K6Z[+29F_\O&V.-[Z^&A-KK[]#H/'XX! VBQJ"Q7L/U<.1IE"T? MVHDT;B;233.1EC5WT+:<2%/:ZG \D6;=B73;F4@+.I%N?DRD4+!] U-I\"[ M,+T"SF0Y7"?'-@Y'9>";Q.3OMMVYD=7E>I%8D-9@O/3JF;)9^DSZHP]ZSNQIPY^D)P;K- $Z1^'C\G1;Q7U%%S M)U3."&I"8.4T]1!:037R7)14R4:EJ T!JBAF4U+- S4:O;5$G%IW50QT&CPY M6@>/4M$*A@ N+\E49?*F<.U<.2KS0?"+S6W ]+]]#YAUF'$@43MQ 4]I6GU! M/_2-ZA*=BD9A,3U:R8'!.BK>FB@<.4FDJC$Q<;2,?MB(W4<6(URDC3O!*^/! M -@,:X2X(H*'7'4PL7DCF%#'/7FA J@V1_*"F^ H5C.!5=Y)-W3JXD*6WYZ3 MC-WX3+=?TJPIRE,7[:$TBZ+(DOM# 9SM89#.F2I\@(J+ZO;<'SAT*-I:56Q' M/FZ(T+N8.@^(3G4;G!83%W"$_B)]+1D.?]*"(G""Q*(CL*\PA*VW.X%K-A + M9SNO/SU3$D77U,HS)<@5]KZ^N'G2=E]U8.1I]X,+HLG9_@QHO34BG%'R,[6D MO" X>J/P^!D6'C_/S2T /OX?I'\C>@;,ZI4S?/S KQ2P$_YM0L5DF!WLW^/B M*\8IRO SR0J>9IE?,F!F$M>7#.[K2P;,MV"_;HPMF=XY?3K'^B:^;7+D-4O*S. 9IC]73UZMR=Y_E.90(C5YDS2 M ^-;[8FPG&^U?U-O+6-7MVCB6(43=(14$\X).4+]26[R?9T%JRO[P#,4?GQM MFU2Y]Q9?XVS;U(B@;UK"?Y66I<.M-H5 )&AWE (E#.!W@+SS$'M9H1US=73" MY"EWT5"'+S/]W785;\29G[7%7#L"V 9W*6*./A:,PA@<-$BMU/MV09),CB&L MZH]HC>L)0G&'3[ UEJVK\3"V#K)XEGT)LUYF(6I+9**-Z@;:FZ[36@;; 2>. MHR)HK(&JU;Y)(06Z!VLCRQM;;(?THN/P3QUV"0TCY6XD%)""]PI-_)W6[884 MH3:R_*%$E]1W3'ZS@GQC4%*MY\"@-.EJBZ<9S:FW\8ED%^1P7^P.^SK.3 "N M3=.V(*FF:6BR:&,O LM+Z"5H,T"K":/F*=J1#-7/F\#(R5,\F\>6N(Q!/X&S MDN0H8?,4N $^CC>*\H-0E0R_ M$[MHE#N_+Z$\?3ML93_,;PI$ML'XBH:>.7 M+O S'<)R=X[^>X_Y.C'=+IY(5E1WB'K+*WN29HUE0Q+HRMCW*G2U925)Y\M8 M,(BZKC% MWP'T- LW:/"-$L+5/6NA#;Q6=S"GLIJ>A)V_*AE_WR>M1X>KC%/5PQ,X4)6/ MJ-_1J4D!/ Y)Y2S=CD/5W9K;*1OP->ZA>CCJ@1N;'JNG:'THJ"*G6ZJ.U=D9 MWIZ5(6T3KX%.]=3,,51ZON=F$]]/H=,+[_AZQ^KY?-J3K[GB/J1-TSJR0-LT MS'A9]"+PK%\O06-#=(31^?KJ=GVYNEC<+2_0[1W]S^?EU=TM6G]"YXO;7]&G MR_7OM[.YQF@UV,1E4$0UU9!T],T%2".J#=/^##]2 ]#,X%>8=I+.T@)J+5I6 M7T;;,DAG+/H <("CEZ)6&QU==6BSZ3:IO-UI]<-F6(G#]Q>T0T/1*L!2KL/C\'@G6DK M(9 11M8" U'8Q!H1)1;KK=IX1S6GL[,[]6[0@,A4;:8.@,Q)8Y5T/71S3]P\ MDV&GA5'\D1!7Q-8+F;7[X:Q=?DZ'M48-CJG1O(PP!Z/R+5;M"=QS';'SML#D MY3^XP&E0K\'>83@^B+KS]QO"7(;*6U#[K)6?\ ;-EI<_X(2TV7H!'_&.9.S$ M]YK%>9"TNQ%U1\IM* ^&F]%7,;7^:>,RIW M,RM>L]S5!$.OE7'QT <;VV/#ULXXG8"&.?IE_O.G=6>&4S7FV=FNURN-.XT% M^S2JY>5"CJM<,$[HIR2-TTT2[YM#ZHNXB/URV!IF*0M1!OTPIZE]*P]ENL&T MEPD+8+TMR.;O7]*DR'D TX(%*R;%J[SJ;Z4= W&OHXJ@N0.5PP9]U\#8)?!. MV93,AI%U5$1;E:OD#+5L$>>+..,R00FJ6<^XLC:L9DBJ;0^A>K4Q!)8BJ\D] M5]WN1G/R/E0AG6W1K3P_/)6_J:J9PRMW8*_AWOY?RTZ[(0!IH=[^8O3:'=;].7A0=43JKWC[D*0/JY2:*'X'*F\LC[3_UHZ6&,*[_E?XP@',N%C?BF(Q+AC M=]QF#ABE*^T,L=XA)A$QD8C)G'J;92*]D]C_"?2^/SN,T0G9['%2=F>QV1R> M#GMVP*@_JAK65_3OAHUA\.5^Y UVF"#CL<>,?3^OCZ%3]D (*?77BZ],(;T[ M./>367XU;R44F5)O]M9[;RVTH%P MZWA\Y*(,;N='6LZN1T@SU[#1HN=<^C.HJNDC_)MHJ4K9BOC;Q)45YZIB@8>T MXRG9;&['ESVGRPC)^Y@OS+M0]^_0VU%#7:MWZ2O837M+H5:7[ZUX:>_CKS]? MWRQ_75[=KGY;HM45_7LYFUG;%U6RR_H>L&P6$VYG>YRM=Q?)GN5NXEO9>2>SBZ!8GM35=W:F#E)_S[Z&J;^[4+7Z MN_**:@)44:"2I#F<$G+V5(RF57U?1)' 8194WY%+J_KC8GJQ_9]#7O ]P3NR MV&[YGE^\OXX3ZFU41:*YS/O^8?,_#DF>%/@69R_)!I9])1P/EX+>#BVX5?0Q7G',^/5'5C3W]*11IK AP=YI"W[7UD MPP']@\3#4_IU=-'QG2)<=0EO-(1/>DE/T=E>+S_&>;(1%,R+5K^V4]$.80+T M_1QD7:<4Z:SU"DZN:SI.-4N%-Z#(I.Y6(#2HNIR'4=&GQS!P+GUWV4!P=O;5 M.-6LY[%!8.WJI8$">R@/32'-S3_3[SBX2X8"MJUO]KT"VM$I@P7TI [9,LY2 MVI.,1$H27]"C134BIG-6?N@RB,_$!A&1:5' $"B%-O^;]<0 M )X&#-:]<>T!6ZL*%B%K+ ++NELG3"'\KPTS!\\=.W#M=U;<[ M_SL)Y0^O?B?W^0 U6"?!V6MG>G35J@O],.7J%[VO77?T+DG1(=^VSWXZ;6]> MB59??WXPS$ >CNEDN*.FK&)8+O)8[==#6K0G6V\/,#N M%OQ)EUJ"*TJDCM8;!(BMAV4%$&COJN0ZK&_5RG"%B-&O>H-PL?6HK. RJ3=U MM%TAH%'ZK'ICX5D0WJ5R ,R@R%>-[..6'3Q/BU'Y !#M=Q,0>=2F1>)@PP<< MC-3G;3F(@G]3FJ73&4VEQV(SGL$>RC$WR&V@/F?;\?QPFFJI]"RL!C+4DSCF M9N=!V"Q#^GQMA_'G$QU&U8QO-8S]&3YD&/\&LZ'09VH[AG\KQ_#XT'N.93B< M1OAO(2/\MRE]N+(?=_&WY3=VK0Q_Q"G>)6))\5$" 5F'1R7"&1%LSI<$#VI$Y53(-!8C2Y?2% M2+ ;JN+KY)"J)T =>W=\?&B,!LMX5CU$[ZK'$R\]@K&A\F*]L3%IU/4529L MG+*#5>_$#1!3NWHS1-TNS.\SR8?8)-'(T#B$2BJJ!50BSINE=YQNRSI3O!SY MQ ZA<4")];<7W415^X[+.#9,H'+KZ@5XH(3OSG0>-FN)ZOG4.S4 ,%'OX 0 M9>)$LL=]DNP8:UK4B5YE+<+22JIE!B9BE3+69'N4M(_6/8A?3K\3J1LF8O%= MQ12*_9:=E(AC##AL]48%?Z>1[U3/9M^\#O@EZ=3E$SV'7IT_TW'PPTL12GA" M'IZK^+L-?[L4Z<,O="V2Q?M%NEULGY(T82'8 M+(!4OAAP(ZISFEH2A:4R=>I98 936UF:Q*5V+**JW1FJ6O*5Q'';>IT]<8)2 M-V00OW$3TY%:$7>RD,X'B7> 7O"?/[-Z/?**P:EM],T/;(&6TZD?8;& 2H=8W M/654/^;*U6DP#X-O-\+$:2 $)=+2M+KCAI\9%)WYDF8XWB?_Q-M?XB1EKN Z MOW7<3_0.5?TX)6]LV)YF,)<.RT:,$WR&B![K*+?*V&C9F@ MXNPAF3@DRW;@E);$-'3!>^5=7I![Y")?N\'[<)*#I]KR-@[>I%O7T06JQ+E199L6 6+@FS^_B5-BGS!D%JE+'M556 ' M<"Z'Z)OFX ]<6E2S1.L=B_9[_QME0;6YY80XJSK_Y^O$IX2P'T!RG#@4UL1S M1U@YG0-*^!>8\B2S=)IZAY;'/S?GD_7/@?N?Q]Q#3QT;;KJMS*I1=#,+-['W M@8GJX_2V&\O'W9U%T$$!-=Y'3,VC4^XIG\;X:#:$52,TK:J7;D93?EB1+]W0 MZNA>J*05P TOI6R(^UTRYJ;;77T:7?'L]?7R9G&WH@UFD\;;-*;$<@"DM[UZ MK<7;7F:4C+H1]O1$4CXQ*\O)-?MBYJ;--IFN:>"VB[D7H9MH6@FZG1@-850^ M+7W;LZJ^S5FWP,W4^S06HTM<1J&WAZ,FZ6[I3((<\/T[@R@_$)6[>QQ&>0FC M?OVO>=1'@D.39D\P%$_3NA^]GJWR_-"K;61HI;*W=2M8A3F6#6QE&^8.NE'1 M*&QK^71FBB",GUH'I .M!'_96H/[(1$QM/7L2'$&A])F)OSQ3,VE(TKLC:0E M3F9F&A>'XI%D;"_89![[+54FLML25BGZ?0 VE4<"'#2B0R4&%!J14NAT8PQ #.T)14D>6%':5'CILE,K:HGBNRMJR..9F-EK\AUG/T6 M[R6Q,)HV?O/ 2*RTT7/;0H!%EY.!=L?7G,RS MM= M!PU9WY;.=^\A'#:6)M0%.-.:S<5^3[[&](M](MD%.=P7N\-^L=FP4H+Y#=[@ MY(5%1Y\?,E8O1$"N%VWUW1QI@W3+JY]AIMA5I%KUW#A%37->_Z F0#4%:DG. M4$4TK4[Z@8@$C:V@NTX\6H6>+81!0\;=)0-AFD>!64R+9Y_1V-S8.4 MV;8W85.0A12UIAJ)HTX+GFZH_'U:Y;,>9N(Z%(*"F*T%["5=]K^R__Z]N$O?_W7?T?X30).:=/A(#>MY3;::J,2@BO14!;8T>;* MK&SWM_]=V=A9%G.TP;ZU>=6A>X31!S6:SF929QAG:PC]AE]]6=P) .'Y%OHL MG?)Q/?/\#\MTZP0#?6HN*<'_W]ZW_T:.&_G_*T3N<#<+].1F/+D<]AN@@1X_ M9GV9M7VV9Q?!XA#(W6Q;V;;4D=0>^_[Z+U]ZBQ(I%D5VVS\DZVF1526QZL-7 M/>:?%U\7%\>G>SG8LE1=FH/M-''751(O,5ZE9^1#_!QDNX1-LU<)W@8O-*:2 MSKC'9(.:7JX73T&XH1!-=E,WP0;?X*5HWKJ2 *19W%^ T#0\T@9\+].;$1A1 M^D[((3C,;8*3ND9L=6%*MU MC@] NWKH[]X.;60X BKR:DNT:3.*D7F9D44UNO62HP@<) M1HAS0IS5#-V]Y18#4MA]SRW67OX8KW4_Z:]U;[(@R;16NY]T5[N?]GNU^PEF MM?O);3:JC.@G7IT&2414,5TLE[O''(+7X;*5H%R]0Y'!:KB#81HE58E, MLUXI\.G+N#38?9ZW07DC]*[2#(EVCETL-#0@UA^C5FJGH8[5I$_.-0V\E(02 M0Q.EXPG A-IAT>P0%:PG>QBDBCGV]2GED:U,Z%KD F>7ZW9%IY&]=@PQQ_ H*Z#QCA:$6UF$O^NA19[OLSD2H;7[KH\AMQ M(S.P2QTC 9PZ'[74^0[?AQ%=.;Q:I9:=TDRFU$XOETIYZ''Q<1QE8;0CZG!9 MU*7GQT"\'1$7IZ?/61+$R2J,@N3E/,./Z0493EJN(&9E>\^C#!,K[,XJ:Y53 M+3.M)4X V6VM?@, ]P&[4@ZEVK7#5S@SA'Q)*HZVQ;\R2LF']+QVC2.>4 L[ MTP1;X=A,->RCV>O."%J'XX-G-F.XPRTY/M7WB3';)RYK^T1:S>:5+3ID)_63 M+3J)7<=SJ*DF%]+GCG)QOB" M1BIU$E2DH8N@<\P4O\>$<@^=/'&:+F2AOEI(Y^_-/LSQ__:R2I M#_NFJ2JIO@9TU:=\!,.I"(:S$,"'F6MC[( %=E-7#2MOI1T0\>0U"T2%[77E M[(CB"',+B?W,Y:44;JZ>H* WQ-R2ONAAMGQ6EI'64I=Z @+_INBQHZ^89V!X M_'T+]I&4.1IN* W^ 2IV-"P!=#"04LFCGFXZP4'>U#Y2&.@>KZJ!"DCR#GT^ M5M85"+;^9C^;,9K$JF+*(XO^WR%HC$:HD8[.N$^A'6:%'SD[9;O'T;(=8Z+0 MLK*CE[8TWOP-R&"^SYE1WW1- MKB[@QP9]?$;I37Z84-6%I3N\NW41WO,DNTE#-CB?MG"%P.1U@<+%.4"E! M0RV_AS0A.K>4JZ4B2XU+,3L5V[#9X7:8JSE/R1_W;Z3"M8X^-* M)6MB))]QA-=AEG:7NCZ.6S?]-EF(+VV'A9$)V7QK,UNT))GI8M9MX"CUMX* -5B6@>H@! M%8RWE05)/>%19VZC_9A753(2=?7 M.,7)$T]5Z(^+4Y_4G0X5"N/0]IZ0=JJY2O22MJ<_0!'L@SQ&JLX1<]6AS_/0 M#=:")N'.VQR,"O5X_9JJD%-_7N;\4P'$]@<2ZCK<4'R9OH;F.2)Z)0!(]""C M/Y"MH;N;2+E0>>B/;2B,9ZS^Y;LR%G1V:"0>F%9/0"?D 39C%(9.QEQEO%F! MP:B)= 8V4Q3CV;>'M-;<.[ <'V S2E6.#E55>K.@C%<5I[-L1:3N,@7R!NVC M6YAL[7*.8 >Y*J4#.IK/:_.E%P4 >H:G:SO:G\J_W;!S:VIKF&T=-*BEU^_L M((X=Q?[:%9GWD!W?-7=B6 M;YC]P[CAD6SNE)413]J^M4.>3C^ $]WT\QFA*J*T"%,6S$^G_3B0,U*0H:.X M42H"=0C701ER%]#/98R*'!VDB@P2VYEYIF.-7]Q7/8=%GJ;R35>]X(6.NKG*%U7M#6T7C61:+O])EW MVEX;N1Y=[QAAN:;3QGUZWJD)TVZ76 FRJ^"EIQ9E;Z-RH]39R'2!T\/9>(O4 M3;MW1=/5I2RE)Q[XLS/J&[=8[2NW5S,=C6M+F:GT 'XK)&.BJQ*U^HI;_FB? M=:%O^S-"&T8>$2U?[C #LH]' L;H+Q54O0F>:&Y0"JXW>$E]G?[TX>-??V;1 MVM*96Z53:R;O[P0TLZM(!G AJ,Q09?KO)5%=#J2\(=K29<%VEZ2[@"N.Z(9( MOW>__X!^XWV]62XHJ4O'\D%#S=K+B;[.7+FC%)E[HH&.#N=D M5B-"]'1+/@*FZ!U&ZSAYY*ZS6YS0+,0T#P3YZ(F^,L=KEHR0I5N*@@T9X2<< M[3 ZCE<8O:./Z%\__/&0E;TO';0%=?OE3JQ-@+O%K38FBLFG96^GB\^ MGW\]OST_O4&+BQ-T?+K^>G%[?%''EI__S[?SV;X>NI*-+^8Y74\?W MVBSRHWDP4_LQ/X@1/YIMN&N4#0]:9,[_ZWBG7/^HZ#V7XQ5QMA00]I1>SI4 M:@%Y$YJ#XC8'*.9&@YOQ1ONH=B DFO)[HLJ^^?=7<00D]1ZPM"LV+77()SA0 MG\P*R:&50NE[&7B_8I"?G7>N&8R=@C31"2KEX!BV8%,GU0?1!57[( F^I)Y@ MRM0SH507IYH+)]=N/4>X_HN2,;SA5/RH5'&#I=]K57S9]#J9XKN/EN7S2W^@ MK*Q--4:VW<8\EDW&%R RMH/T0.!:JX>(6,MSL7@5"BL=L5CI W<%JS7;-N+4 MIAA_X,-:.0]-52@C77U8>)HH0']HJZ8*N#T;_1+'J^_A9M-0K^;/XCW+GXW4 MMDG=#*DJU.0:632:YW^Y5;_6!XYE'Z>A8OGC4JN !P4T8+Y&='AT*$3LR_A( M04 ^0L8K^(*0UM)\$.)K9!5&Z6B/1DFV>.T9); M':T8(0%KG2Y%^4.5+H9U#-6E,IL %#GU%154(# O6Y6K69RA=T730J=^<%TH M4$,?XC'CU2K=-]RU6H//"]T#7B8KLS130SI#ENV("D;8\4[*GK9)9UAX?7-= MDRFF]Y0O],PC6T0KZCRQI6;#;IY7KQ%(0;&OIP%B,QS0HCJ M"WHL2%'WZ"#O^7X=)^]3TIAGY M%:?I[4,0W7['FR?\,VG]D)X%8=)5+=4RE]PQV187,T#RM+ M/.>+]M*NI#U#)754DD>4/LH9S!!E@3+" W$FB'.9(J/1L-;^3J71:>K1A+9S^ISA:(579&6VVBVS7X,D(4NS%Y8G M+=B(?Q)I>1WJAAZ/ZRR^H6YG(UL;)RG YD.;L=P@-4G-\YCW%2MA%&P<'^6, M5);8; @;!JM'I#1@CY45RJ]\!%)3C-:0R:A6VQ6AZBD M@3B1UZ3=TG.=:?0;-JW0Q8[Z[5ZN_V<7) 1--R_G49H%FPT[/3F/?GT(EP^+ M[T&R2G\--YM?<*L\Y'@"XNN-(6!DX>,E!IB21C&7F_H(AUY#_#/OA<)* M-^I2_YUV1 'KB=@E[1-V75#10--B\[%OV+H^H=+>]T#CH>:UD9PA%9[.;Z7* M%_U0M2/Y!V)=$>^+:&?TRRM5>>D$-ZW2&U]R]&_\0&^F%5B-W>Q3_?VYZW)X MAC9Q=/^>2/9X2+M]J?;![/=]2' B24#;]:R6[@0HS6@7'XCD)TK)96LMY[E[ MIA^99#L'(.[];IW1SNT$H;:&ST)HNF)&V$;;1I$@'^*&=(9S('R]?T#=0DHE M5*D;5^0-VO&.,"HJYP@6Z:B"-1W-&S&.7L!.S_AT!;?U U"[86=0FZUQMA?1 MJ 9+G1W$H/N$3>/&7"6:46'4W>+5>?1$9(B3E[;+=->C(@RF^L@PY*#-Q32L MI4:Q+VZ@TG!>_,L#=^;.3Q_W?;*6IW_9I.K1;V780)<]+<)JXUD+QJW.' M7?5![ G8&!I&XVUYC1AL>&2+M.)0'I7&N$^#*/,'5!A$M_Y^HE["-5[B\(GN MU(E(DDVQ0M-&;9;NIB"5.?JD,-Q!]W,8+LW1V;$LSU$^9I.-)TM?I=%M5>U0 MT(5B^];3I5V_8V+-L5391B\J6<.*27_B"C MD:ISU*DZ,[2A#J[!9A-_#\@0,Y>"5;R[R]:[#0KR#O$:_>NG__S/?_N7Y\6' MOP09.B$$V#7.IX\S1&<6YO?_KY\^'$F;?#@8+>TINVFJI4Z7 EV']=TK 866 M/8ZC,&BN( .\RZC**J"OG\Q9U(L5@,JH]EX<]<__/3WZ+XRLZPOPY#_$:93J M2*\>#T-GM&X:=;3&[0';<9 ^L*C4](&&>#T%&WK%OLB.@R1Y":/[KM@HK3[B M:RGV,3(@+;G,H%>5E=R2U"C,Z7.V=&%_5%K.$%G"Y(U]"//1TXIXU* U3$^I M;VF$WNB@'IQO<1+&J]-H)0=T=:Z&"DE!OE#))?T#EVT1K[CSZ2\(DZ=D1(.HQD5KI\@'^"8+DLQ4.?LWCJHT5)3S#M^'$2L=\AI45+87 MM**BIB44U+A\ ET,J_,T5<]//>IYP!KX:4H-_.3>84]2P++[8[[-/ M(SG@M3Z'017T2MBY%.ZTAEAEB* MG.1*KT1@?GQY<7/Y]?QD<7MZ@CXOOBXNCD_1S4^GQ#J\@3PM58C'#%7#I%2Z MEH8V2NVTC2_%RS_>QT__L<(AL[M__HG^^9[_R8R-_//OIQ%YE9=?XLTN(KN: ME[-P@Y-FC='>-GG,?'<;LVCC/KZ&(<42TCUQPYT]YOQG5/R.^ /'(;^] Q8K M?=]F^&Y7VTJ4[E3##QJ8).>@J0RCU"%R"6$SJ(]BO>;/X:Q=^C M&QRD<817+#Z\61-7J6T-X:1M 51]0 X(Q).S&-)X6<]<[^GS][_3!BAOP=,? M)#Y8P- 0QUHCT6D/DCY-NW"@0!8PLX_32$VJ8.AKT*4!=#73IJG1]FIWMPF7 M9YLX:.[*I,]KJ%I[#F ('?P@T+-.=DC/JZUSS>:_(?:C#[K<-3#QX+?LU-A* MNZ:6]@WO7F12K286O$R^QM$]3N SJ2IQ,8)D4JWE3T5Q@CB70\BDJF9* )E4=6RV.("UPPTBDZI-<&C-!1;6I4WJ&G-T M9?VYW[/TP,I2;9Z>>@4IG .O\39.B(;>TS/27?=!9'_3VKI2UA1 C_NE@%AM M2CD,*;6D8Z[=N;-F\1SQ!CYH^L#8QCICT*G]W5V:AC"YWEB PAY&XQ2H I"' MKD(#$&JB1),#:_SX&$8A( IZN%7H4 ?9W@X0)J,@ M$0C@]O,9M)J^[H7EL$:(M9HAW@Y5&GIA02H:T+0C=:UIV%)/QY9%N=0T&Q ] MQ,Y$Y:IP_0J5;@C"@=1N:CAGMVG'08;OX^2E$[\[6]0 N]$"P&XZ>4) ;@MX&*;OM:X5Y#O$$9^ ,G4 MQ]YQ=L_1AU*+Y7+WN-N0MV _R_R-;=$W/G&7TG=TUC[POJY.V>5BV3A?EW$# M.5FO$.>/?/&,M&X >!TKX"0*]C M#.@1F$T9)W=4HT=QK\O\_? \DP?_[JGOV73W+.+:_BQ,E\'F;SA(3J/5"5'0 M!J ,-1/?7=[,+''( '?#;%]RZCTY062=YKFW"'^$Z#-$'B+ZU'$>D*%!C%4_ M>,/,9,TKZ3VF50S0*:J7B;Z&L"1;!ZPC\K19H[5D):TJ?L*-=M .&UT\P7Q"&J1'O3(:/0H7##X[X@]0.2)#W>1LA%KNEGT#FS] M-K+1MN5* 3K^U@Z#H"J\VA70P7DK2X4#<$'&3F6SVH*_?6NVKUL ?\YI+6P# MW)_4&B>&[(0B&^Y]'1PTYX^J$]_AS"!#OGE:<\C42Z%K?!_26]THNP@>FPK6 MUZ2V$&HV 5#H;JX0RZ 6Y2$M;G3(5;C\&='??5!@R5#%*I^V4WGK39NZ"SKL MWVYN"7RFN^1E$:V^Q$\XB6A6J9]9E0^H)0N6);1L@W[C MK1S[R_2^05M;%$>DH3B]O4H-&B1NI$PC2M!KI4Y>Q602)[0".L-W:MI(">3J M-XK@_/8!HXCUI/F2_YGW16&E,_D'^DZ[HX#U1]\) ?1$*/S1K;[JOW);B4TT MH:'9^J1*=1\G!O@\:F%=V,% ;T*MK H/9$H=6!'J3*K3K0=/!*25IW-GY)>F MT\5 *_&^TE9&"CW VVQE("FAT8L5/W5#K26M2\V> M5!] ,:Z/A[9B4*0[5-608MY8Y7"%?%>LIL0P]G6TZT2_6CM ?>_@#XF =?*J MJE[MU5)U_M _9>\:28FZRP>]6]TK[64*/X%^6$3$)I<1BM*%BH>E*HK8J*+U'J=Q"J_WP!.@?L992]PUL M4YUK;=NJ;'W\K>!=FX.F(M1P[F!481#;=)1A.DQ;$-XKAJN;H)DYIO-9'@Q0 M?V9VX=_%Q_"*OD&RYU*]UG)>_!/1?SN^J^[\_G'O9VO>"%?;5&YQ;8T>K,]T MB[+B,#)_ACT=2/GEOL)03K\6NB54)4N@ZJ/&RH<_ IGPJEQ@UCF"XO"LQAJ6 M4QG]IQ_S5^W+MZ:MCG%ISE6T27N* AXU*ZN3@K#:\-76(OLT@(/+#?D0C@2) MY_BQ053I:$W62RTU*)E%!K*U#25OJYM$])2P0G#C<_B!(?W$?HV/@T26D XOGU6RI=FQOR-& E$:Z!VE\@.JTJ$FD5.: M(4+++6S Z&H,JC(-H#&B62*02TM203\HYS1E7F8S8VWMMWBM<^/@0A)N=H1= M>![OTBQ^Q,EEA.N.>T)OI<^+&,[6<\,8/0D_F,5B%_F^H+QFZWG^$R*_%7Z8 MCAW;Y&,4#W[65M1=HUTUW,[R2$,!7S=AC5'F,9<=X[Q_P]P37JD^T'80Y_9[ MW(LXK><-Q*D\!]'#%C^08. V[6%%+%O/;\A*A:Q"EM2'L5#)SYXI9'ND6@HI M&\RF.A;MVNIH;;SU<$=]CJDST!CV&OZ07WV;9W3&>Q" 5$;<;7+>QH;A-@FB ME*S#R/#GVX7/F*S2\&WPW'\ H-*S>[O?WQ-R*[MF>?4/W[%[MRI442+8'U] ^R8Z[CX)T?^V'ZD*M M+759@F@NG0]:YTR5#M4SIAFZ8]T0Z??L*;%0T/IS]\#E*\.HX?MYA(0X6Y(EH%EHD!1 ZYI@.0G],Q MRHD@084.FJC7\IT00@^$$@5V_B-BQ%"5&F+DW%J%Z<=HFPJ<%C7LQY1P:500 M(KJU-*UPSH&U#X@P%LWMB)O;-C>WI#2WM#2WPMK8;^_OF+4MJ]:V?;.V/DWR MU]K:H:(3[K9.UVN\S-++Z&R7[1**MUM:-7 ,S+(I\]A1L7^ M&D;X/,./K;JH4/3R%!7F],SB<*'>!R)D%T"6GNA>8^IS00+1;*J,2''ERMPX MBKM:NJ80E!!%#D1IL>4"^HV20XR>X^,V.$V.P96I&9EL2K<2QNS8WA;+9;QC M4+K$X1/-V72!P>YHY<1[?'0E?>;Y U0^F:%@3=,'+S;D.P5$L]B,?9S@%5%O M#]*(=;U*6TL'AJ#IX=O5NN+I*R/F;LK[%NW27;"Y3,ZC=8+_N2,S-]/+88]&7HTZ,Q%8T3,JVS. MIXT9_?%SG#W,4-D5_48[(];;=1Z?$4H4&XQN,\./.H5*OA\#]36XN[Q*XOLD M>%P\A\UE9L<3\9ZU)T:6U,'#S%+J!.664&TW%_] O]%_.E;=KJ\>]WRNANI5 M6I2JU3=>!JKSW_%=>K/;TGKG@D/G[?=0,_$&\F9&&C;$W4S=>JC+=4_::4Z? M(/$(%5KIQQ(]!&'4#8?U9'0KS9Q!@6.<# M H<%R4% %"U+2.0_^ &*C1%HPF+G #6 D;=I02/(^,GT%#2>J9>)/N;07=9! MHXYT4S4>=XS/[J6$@5,L]O(9H2M'U.%@2UZ-':)G#QB%%9?H+4XR8D3TP(E\ MPG]0I4J%4FV%4F4/089"FD\QP]%*',"+-G>[-(QPFF)^D(4CLJE-@GN,$DP: M,P[Q&N''[29^P:31:I/4?XU% M3X/\NF/Z_$*#?"_7O&GG2M>0BOI]4C<5V[=(?;*;F>9XYD:719TTU:^(9G1. M9/'@9.KDO3Q9\)LJHLYUD()&:UP"=5'3NOJQ8!J]J 6Z.QGF-'*2HON4US1- M2;ES\67Z'AN9!U2?F930A=9N?*W6\^+GPH] M=ZO>\G&)!S]E0XE;[4K%M3ZZH'C735UCF"FNE0.-]W:@I7BE,]3FI9Y,/2N@ MO"!@!+'H2,1J"KRY$MEU)9*7.?#(F8LHM"U,E&,T; )[8PZ[2?X@2P$ MPR=\'BWC1WP5;\+E"_]_F;^@;K<\Y8)R-[/(?$WI(!(TJ+/L">!7)3*OM42\ MJ>.8?EV-B,>.5C/^7[%[)2V 7UH(EJY&AY^Y$K(U68<:SA!OB'X3__7&/]6^ MBLJ35%A34K?+M&;]Z1-\EY4UJ"LUI;\D<5JI1$UCH&7)+D!IYOGQ86B:!8! MOA=$/G<@>7HB3$ XS&G8!;&%]UGPC'9EM7N:7,-UW FHJDI+U4-80(Y$(+3E M!>A=&-;/.",#%=^_7"7Q:K?,Z#',#4Z>PN6XV[9A%R]%CG++4"(P+UJAO!D[ M(LP;^I+.:?AEVBJN,V8-#1[N6JJG&AO;V@<9]*_(SDCUCM15[R U3^;9!ZQY MX[S])*[T(D+_*DBR:K*9M'\?K]FK\.A3[&7H/Z$E&PRRJS/M1IK*W<%XKK(VE83ASE>AMM6Q1ZW(#O*:+PH4>6CM3*1'SWIL#/7Q*,^3?3O MV,FZ=LJ6*]:TL[UPT=/.BSC*7>1.P@0OR1KG)B.$Z0VYG0V;(D>Y;BH1F)-6 MI9]DW@ZQAL)SPX\=V_#;M+519] :BCC,U:GJ&MH?ACNHHOJ=?5 MR##'2 E@H)ILY8:J16A>-J2[OV7\^$@L.*4D9B(_HEM+':4SL1ST-"G""'9(.?&WLX*D^+4AKS\B<^ :*D-,B -?)J1AQ4#=EDJ*A3DGE0 MUELZ!5I2QN;5;WGM>QS38^Q=O*M<^-(DD5=Q&M(M^L>CGTF+A_0R^1I']SBI M7!/39F!),:T*J.[V ,EW7A!_OXZ3]RDACTKZ,U1R0"4+EJ$3Y4QFZ.,1XGQH M0D'.:88JO'S(Z&GK&PY[6UC0XP$?##".-<"I:-Y8YVAHAE37K<8KGV^D(99>A[QB>-7'-X_9,1,GS#- M1\P>G@09+K9&728U/?>JI4[)W>E&<.2W4L$50N,N[KV0FEQV>_M(75GF[#>T M(C^B-3T=>F*G0^_""*WBS29(4IJ4F]^=.2XX[LH<^<8%'.*" N2J_W&'I4O P\X>CH,C#,JS.' 1?55K>QRX'% QD1_N\.. M GY:7)^BZ].K;]?'/RUN3F\\,":C34Z_TH[:YKB]A&X5Q;X-GFE%[(=X0P]N MI46Q)?Z<8\DTO#SUR8#X?HZ5OE3+5[8\UL M>:$:ZGB.&&/)M3U6)[:6R^P!)QTIG0@_LK2.CG=)@J,E#[K;\-ET]8]=FE%9 MB817<<)^R\@,>;?+V*5P?$7DC%0K2*M:E&5!>W)TVV0\%U304I#A@?2<#@H* M0ND,41OFV7T=IP.W]CW:5CJ%=C83E%MC64!=<1OSAITYJHGG? M/&R9CB,UQDI_-G'*_"Q>^Y0I-35WDZ:QF8SWH&IXK>:I=D$W?W:DL^&G*.8J^]NR6YX2U0AO/H!LHT;^$= MG8)DEU16G;C+'/>EZ_6^XJ!<;2$]K =2Y0-R /6J]B'Q_LWR :]V&WRYEK_0 MUV:5G-S784S?W%-!KZ_9$?P8.0V]CS19]IS1:U&:Y\WIK5AO](='U9O&Z5%L M-+S-.P =&I6+ 5^U&/9V29LSD#K3C8$L,.F5ZJ_\%FL"#7:[+%<1E04JC9BF M:OTTIBC1S[IAU^2S/S7E[,SLF%/1F9)8CSVPYKJZ:%EREZ;IV# /P=2R7P@E MK>12X7X16C%W@^Z4G>1[B\,TF\^/OE8VO*C.'51M%^D21Z+[[5N V>/Z,([P.,UX9 ME?N"7:Z920D/L8:A@-/-ZS_"T34K$@G]?@";#TB9>FI.@G&9GSXO,4V!$CRC M.]Z:UTW.'G#AF=KR675\QA)!P,;1MCG1C59HW^=<:A[3L>J/& MCS#BT?WS(K7Z_&/EA4F-/X9]SP91FQK-NDK^Q= BC-9Q\BC\8'&2!6%$ MP8)HZK( D4J9'.9'6YG-Z0\Y=<<9]L5V)U1Y8RNOAKM0\])3/F76.K3) M.XD?R6+..YN5*4./C?;KC]PB&_WZ+'!(Y:9TR2S'F2!!CZB+Y[!Y:CNJ;^Y6 MJ=?7[ )FC)R&US":+'LN8[0H:=LM[>7Z;F:4&L5&H]N\J=&A4;FQF5")K_$2 MAT_TPCF]38(57D0K%O\DN*7E\\5F$W\/R.64B[8S).I2>EB?$N[3MDSP;Z>\V,>;Q(^8819?&TE M[E:4OR[J3\3,S);5T$TR1='834]V?SWOVF4""D/7TFAIGZJ"]A(V8,%-.%J"6X].>A .)$>=\,+.PIN M'N3TL?(5.\QF F7NRBMDA64C,Y&UU[)CZEF8Y63&],]9BL MKNYI+IKC.,W([Z?/=!76M \C&DI&+*5AT:('Y ;8KH_E/];2913GX@'57/HH M9:>PXJGCE9^9;BG:OIJ*J@&!A)8J*JAJNC<0\3G8T)^T(*'11PD"BCX63;XA MEXJ);UEJY=-H]!Q>\AQKUCF%N?@#!1G"Q(#):IHG?O;9@INJH&BQW1JD9J'Y M9U*TR D5#^KD4)V9H<[1$X.B87DYEXIZ<+SM#(G6AZN'TI,$&YH(FJ<@3;+* M3$#^U9P%R$\5L:+5_^R"3;A^":/[_.[M)$R7FSC=)>T8C=9LH-F_-3,H]P%ZKQ5K%B56BVAP5-AV]2@_UD0\,62==6IPZK':63;OA7I=-GZ6*5V MN@:\7)_@-4X2LE8-GA=IBK/N0*$1/:7KP9Z>P)/SH(Q6MG]]7'5F:CF=>=V! M9B6:T7A>_W9ZPXK2,TNK:IE\II92Z)NOU55T0NL]CYYP1(B_%/**)46GQ2JV M%M]OL+6192K* F"-PYSD%CC4MV%U\5U*!&*UGD0_MY:G.N"QYJ@T+&R@5VE5 M=E6JF4GH!-]E93:A2LI>EK2Y3-#V)0BCSYB,'R:6#;53@Q-&/6GK6!YSVK&2 MT&K6D>]JABKT4"OM-24Y0W>,*,T[[U?BUU$?IFT=P HVD.YU%'5YHM?1PDYR MMS;- 4F#G_G%FN(Q2=G!MY48]!7;R/,2DTLVM]D=>;&;]#(ZV]$HO],@H3'W M5-+C('TX(Y*G1.3=AH4&LI0K879%M*XCX >"5)Z9R8B463(F@+B,;CLOXH)\#0@I) C 8JB/ ,3)0,HG2\B"<"T=(84EN:J94,2%:R M*4%:T(1X=(V7FR!-PW6X9.!)9:M,]K*B3KR:4\:OE5I+(&'@5FB+T0.F;1H, M!O^>QK%@H"+UAH(!%!8C23B-&=(4!77G?YL,.Q80FQ5 =M! M7W \:E%?%NW82=KNL5-!?U)O$*JME-^&5($2@H.\&U2Z<%-A5)*)F_&HW/7YY5N*5^?1Y18G M0<9N)[/PJ5H&B/PF'I(M]KCZ?W+C!)2F+STG$),YH<3M+J=%H]C>47(HC'Y M!454DB1+EX(H*JF2'9R@ZSQ9)\3':1LGM)ZUTG9"D*_F[H02USQDM96KMQT. M][D9#BQ8_/(GP LT.](-1*D"\VN&O[%#1%Y*/DS3';O! MV^X2^A=3C[BD@0)*V_')+?@WZ9A7[2EA5X0I)*=&8"GT2SBJ*_D5I^GM YG_ MO^/-$_Z9M'Y(BR)\GI3B'9;11LW)(:[S\ZA9D[#HO5*N2[7)$:D=!* M\]##:N2ASTX0=@,/1[I'V D]M&P=>5"+5@8+'G5WDP5))E^NJO,UC8(ZJL7> M?<;W8<1**KR""#QI/@LKD4^F2;^T8R[@05J',6!<3QV<*@S@"(]_$DN^54\2X:BPG8 MB!=C]1V( X!2614VHV,_^#&3:%)^\GP][(DN0D> 2'4.*@;$K3?O@,\QJ\+0 MT&B=+FIYK407FW[W-:FL>MSGG$;[VG,"P_M/3XID:*F#JGM]EQ*I+<=Y5V6G M^F[5\\8 ;PG_#L=YO4Y*1EAVLFB&3)AA0[/(@WB/3 *N582B"%R@MMELN(BJK[+*3Q>5U4S*;Z^H*K[$+ZH+$ M_.;XI].3;U]/T>49^F7Q]=OB]OSR BTN3M#_?%M\/3_[V_G%%[0X/K[\=G%[ MXXV[D:::*"ZC)>JEMGYN>_^,5,L)CZ@N\/=J#ME7I;)KFPQ" M2WQQ0UJ&X44 [V$:4V0F0E\@D0GE.>E>KPY;)8 4BLCZL!.'4=085%]:L4$& M-*LA0>[,Z"Q.<'@?\6#HY4L>%O@37MUCFI>).CN6 =;4HRL/(KS FE["K$!) M^$36.KW;4G.)Y'9E2GN^6&?T9C%X1A'.T*YT_=U0U]\$+^-DQ6+T!JMCYAT* M7E0?L.#FUO*,OE+;\H!4K&%[1E1+VS,6SLCZVL9-Y#E]W&[B%XQ;44/DV1J' M-) W]XH *M4%(8; *>\W=1[K+6C_?R&0"3+KT*L*F^ CGTQJIXQBQ4^8%T//?B^&_X_[.?[2I86N!I@O SIH0DWM M$M)Z8W\D'?L]'7KIO*<[]*91!#G-RVC4P"N"?YWZ\-A7VW>#_\(S#2@DEH]_ MQR>6C'[1LCWV-2(P1O\]MF3R-<(*!E]I7S'W[[%G0UW(V6/J[6\J,_2\98>9 M5XF876K2%"#G:;K#JY-=0H]P>,P97?ZF[*'(!7'ZC)-E2-;#8'>9XSCW7&&. M(3AGC]^STNJHFB4#5=)DT Q'U7;Y+H[ERI@A07:&9',*N!ELE"YJ%N5A"6QOZ#!&D_+ SP M(W78GA4-A$I U,$$(/>01'0C2[Y,[H,H_#\FPC'!B'@3KO)[U2N:_TKL42_7 M9V$41,LPV-R07_A%1^D*05I75IR5:P]";QGB%-S?QXG<E/>+-:9#1W M(:\55$#6-=[&2897_'73F]WC8Y"\?&UF"Q,@XX] K9!7=P(!K4E=?U'0 %R' M+Z.R>'4FWIQR1N\H[Q]H>:(*38^2"GKPH7K6H2\S7#>4?I1CWHC\QN,;R(>YP%G^ MR=AFJ1I(E/(Z?*3)Y;I=XWA2GOF]SC0\S0YGIOPN$/="$\G;<[HSB03S;XVP M1S(18=:$G@51XQ;'/6L>6X?P\Y+';Y$?F&\1F3M83'TZHV&4CL]^)K6^V(ER M-T^.IN!=.5EZPQHN(]A!\63".H8:=M"L5+==K(EI^?:B-Z< 6NW(&>&6 K4(M2K?]'A"EYH56*@Y2E57CE46'>!P M?$X B*@6YS-KP\^,KB[?L )*AP\&+=S%T?&BXY?KO)9FL.'A?HM=]A G=$YU M'E:G***%*#LESA!!=Z*J/%F"E*QX^Q25S/8T#&_X*P)&Y>GH,U20WC!/@)@] MM1.W_B0?:Z LT66)>'=CET/W<971,8H TUK M85G,GM@\FXSG@@I:"C(H*^F@H"!$5B3.CZ;L?8B.X+@)E+(9!F>-927@S>IK M.?3"'(MO92WU--T]\CP#UV'Z^UF"R: L]FICW9*MWL.]DF'MC8I%AEO;F MDLP5KK+S[4#.&E5XL\#,"G=4LI]5[J]GQ:U'50H*65R._=E$P-GUJ'T%-*R, MV6@8RS!N[_&J4$WOJ#.+LV #/3TJLD7NV6V:\!7>)G+XOE,MD%FRNR:G\.668U(GR"R6K_!//_0EVDC&,L M!XNA0Y?>D/(!;[=-9CQPAU&B(["[,M1J?2GGJJ7F$R *YG M2I./T388&,UIV(X)T=*,3$5S=VRC(GE>HN4$KS&97U>DT2)-<9:6A1$WF_@[ M3,C/\T^$UK]0QSG]$[YA3YI9#G.-4=+94 M7 OVQMN0#@YJ<-A,CG1 K:5A;[D9,1/R,([P.694.VWWEE"HG% 4M[N'-J(E""*Q+07"/;%'R20PM<5"O3"Q1 M0GRD'?:(:L,.\Q,5'^Q07Q9M.]1ET6>'Q3G6?MNAUB=1ML.1>J5FAUK$!^U0 M6U3'3HMWP[X[=TW?'5$/B992P:OSB+]7X=#SL8$8MME4712ML#'W3+3X]E . MB79$'/!#M,%T3O]&3_0?](95I/E_8LT]\$"T:0CQ5$K7Y6]H@5W#S7 *XYXT M14'C9(C\D?]V^DQ?$I,Y!"=/+,N8N,9*BU.CLS@YB7=WV7JW$15?FLF:THUW(!;9_H=?\:8[M>KO*)YS3"68C-D#&;BP?HE MU'6%;$=FB#7#JYE8&WFP* )[9\ 8C 'M@@JYZ&0#$%\A%=]MP+V(WGT*P@V= M/0B:, F]B;;OD\]BJ+V<+6RRA3?<>K MP\_WO3H'/.EW\(*;^24OXM2@3Y]QL@Q3"C(<>S1#3RP%5O=*9\^4N_AU&W*E M)?E'M*)3^98-Z6%8=NM+P-MUC^H!6W6+$YQ-=[[$'EX@=05_T[.')9FK;G'R M"':%I,S(]!))@9&;:R3E+^#R(DE%2 M72<-LY_D_T2911-:)S=$FGC'5<.D;VJ7P?5*29 MYXU0P%NA=<5S-$+W[)9M17KM*<*,^S*V72@TE-RJC\6@'+:<,)0^@/6P_45V MAE=$@ W-X; CZ]B76N,ITY*HB&(6G3_,02-)29 A00T5Y)J=]BA9R<"W:<,! MJ':-"-D?H*T7IJ\@Z(A=X/+E#K.MW</H&I]N,$L11M0O?P*UT0,1PG3O9RB$^\7>Z"^G@L.K>,F*\S#! M["WZQKR#Y96?ODC"L>YSOV/=Y]RQ[G.78YV0H'"I1;(>71'^9E@ 7WQN1GA[18*E'7B. =SO%N M5>#=CN)=4L6[+2&Q>L,[]W@GJY#V2O'.?66U,;Y:XITK?M2-@]=K_!B$M&;Z M<1QE2;#,=L&&.G$==1V8N)$ *+7)* F<9CTQ^&8>)$09)[V]7"ECY&G?CB5Y M6[0L&R/R*1_1N]PQUG'B6I>F"I9\Q1POC'UIQTL"E[(% K3VP6/K])^[,'NI M%%9G]4!N'X*H,W<-U&G^2+:FY_?:;-WLM$9^';(!KKW!=W']R_8I6QGOKQ^+.><6=Q\K^7"_LK6^*+_<(KB]9 M/9B6)K9F%W<+[J\3G-PA^%X#CKS!"M-2D>'=!HO4E]V?YSA.LP;6VF.@40E. MEX%UK_)Q;VS?Q5Q;+C-_HST_-8-+=\S)!:EKFLM3D+2D1:1"H/-".Q5):F!ML,DK>.KZEO91U0% M2W[M)O MY/G%>Y?<+N[>VW(4U^_%HST]$C2PKPDNX8>,V_X]?$N"*:[BH9$%I@:QDP+ M_=+8KKX]L@BPH+<_Y4<]*XYL=;1+S:2WP-MBF^7"^V MVTVXI(FP>>(&\M/7\#'DMXO-0G@6.8CQM<+!!E1"O#/(8LN.?-HX:L1O7O9& MJSQA$.E( \&"HBM*>5_ZZZ;L[25^@IC$$)@"VMT KIIP&@19A\8]X27N'L;6 M^Q-0[SZ*?D]W::A[7I\HCW G6J<8X/X& M1=-J^6N#HG'A?S9=G(N4GZWDJI#NS'(ND*[+75S<([_\W3U8K78*-U4&Y)(G M:/P+9T(+(5V)^G.4$6*<#@#@>VS)4CIDF=&"PG:;FZWDQIZC@]YN=J*0!8F8 MDR,%=*S<&U;85^,#00O/W4E2DP3OHF@GODK"%M@YX*RZ*(3D;'8DLY MPFVR>U]J?U/Y"@"D/C6*>6\^=FVWW4@ E,IWE 1.,Z 9?#,/4OF.D]Y>"K0Q M\FBE\J49ZW')!,7BOO]04OR:F#!8*C-S'*G-1M-* I?([%6 F2_I',>*[A66 M0:^A*R*\HG2.^XJ!UM(Y[AL*PNS^862N[S!\A+LN"2=!M39C>^#EWP& E6]H M%8>DJFP/;AHLK:!*QVL!.TJ:RTE#A+M.>F W[C(NL)OS-A]AJ.U.F YAR9BYN@U4&BLM2(H"%YP%J!T;C)#1R*]P,6K'A(6A)S MM$T.$Q[.U^1,49.@$+S$K&?SIXPP1 MT_O@ >A/:FT3Y-SJ-W3CZWQ=_E/DV[* ,0836KT05^'K[\T18:]\]M:6/6Q! MCP5VL15IB M0, +YXHJ;!'CBS+"6.XO[0'@3/"-IUS>R(QBLO5-78 IEC?M5S[$C7&O$SA[ M>!)D&#REA"VYK&^LM>7:BUE.^?NZ3&9DX9W<3Y3#4LY;GD*L$:*M*HOL/0YR MG!PD)I\P=?%KZOET4+[I)]Q7 ZUZ!Q2$REV\%_!J*_+)@IQMGW66< ZM*,2N M*<0^<8B]?X/8O858^!BK5P"R>W-.,_PF>W:0H_9"^X"O3H^".ASM.Y?/;_CM M/7Z[/G3:2_QN'UM-A-^%"(LTW3W6G4ZF33EB)J$%A%5A# &9);JA"J?9?N4. M&?T1 :%,0Y>AL&F0)0#8*+V66753D47Y!B=/A%ZWI(4? 1,JO8VS8%-]3FM* M7\39WW!&JT;RRAA0X&%7P)X2J!;YSHM*#8*ZM& [ MEY.?F+F?4T+OEX(HC#VUX YFCVY1ZL4<,=^(\]ED69TMOC=/4;F+KC?9/!P9 MJ?W91 4DK$\PG4),,.OL/TAYOYB52^T+1DVR[)WEI6EIVJ(*]S=4;,B[T8=0/F5*3("J%,F8^)(EM>/-/:A#)Q5PD@2I59:VK:I9DHVTJ'*+-3Y1[65F)1VJ[\C@_ 9F6+JI@<%BVN0W:+"@ MN SJ.O+(4_?=VU[P:PEYA\H M$X)^6]RE++?CX4P_NB9O8VH:!SL6)BU%0:Q,:(<*?1ZNDG4D]PGYK!8E><,^ MG[%OBB7['J#?JUCJNUG?NUG4[\=TII]7ZR8+DLSY(MZ'^4NKT&AM1OJ,[\.( M9?2/UU5?B(.('!MIG%-/06YGGM%\.1PY%/AT%XY70>'CA#7/0[!!':.VLV_X=0TYO!:<,KO[%Y#E9SS M=]$JH:VZ.[?"7'63#LS<[EQDY4M-<>,&+;C!U 0KBLXZN2R1L'?+8CLFJC[K MV(0(Y:D'5 B-&>CU0M1D-V/P4ON"4*HW8JEFF3[WQKV#L6@-&9(D1W8ZJ\! MA9WL)7_DUE([I8&VTPXF %::4RV>[Z.--C\-E(7*M0S$/IOD3:VS2]Q]6=/[ MXG>M*[(72_KB7 E][K^;S8L'BW:U8Z5*]6"^YC_/CY3V_$3I0+8"UMQ)?-\, M[!6,:;F6*)8XGU!T/^#LZ W.#A_.;'F=> ]G^^U] M*-KLW5[PCOQ:/GBAZ(MN\9975QB=(W9!>Q\/V6T9*]QMK1E<@-W6:HH!>%][ MV(#EC4_*&+G]P2MPOY0*_]?CF;)W:&?/.V5O\,[X;.'G(/D=9\'=!M_@Y2YA M=R+'FR!-PW5(6*;'0?I R_P\!1LJ/I&5N&T[*K7 M)Z.]8V\YUWE^0)V7&28+Y:U8*)=5B#U?$X][>_B#YT$%!#YDEO"#.U#N>2&/ M#X_5G,ZHI8?Z,GZ?1;14N7P," M[+R065G9]1HOL_")P,DR?L2WP3/%$UK?,5J&FY!)>1HD-&7P(EJ=A$_A"D>K M]')]%B=D(10MUFO6#%\1^8C,H!9O1;B>^K#P[.:B/8]H6^5=J(&O>2<4Y+W0 MNX THP,,'7WX^*,'R_PIO@C@>*Q\0\ C M!@U5ACIE&&0)<-"@]%K^7&[DHOT2;PB9#8%!;Z\W>D2=Z()#*L$DN%)R/;0[ MCN[O:OF68TCS;=YS=/.V=-,A?U'_8"C?VWD/0BU!)X:@!O]) "CG>:CP4_VF M$X%/M[Y/ 3U5SI:!I_F2UF]:R'9MQ<^&[C98Y%#K?K/C.,WT< ;@KF6$>&:W M+=H,:W"RK,+)OEVNZ+WZN.N5L>HVXH)%CY7>%8O^:U@WY.,'BCOG42M'(H4: M#DV;3?P]B.!\1FV(96:]>MSF!4G$:;(IW12D./-A'X*%2$F=5;8 M5[QS?O _7FI?X [H2N -\/88\%RZ9GD >>X.+;3=R;Q(G31*:A_<08_^,/\F M?N$I,WR([CITMT_P8X)] M*FC5O_&4F"4SBLD@JR[ %(C5?F5/ :NHA+ _F-4ML@O8ZI)D0N0JJU@+,AV&?GI:_@8\IS18&5H;8DF!R8['.=5 MLLR1)"=,"]+F0: %:41-%S'B]+2H)(\$??IKA8-;A+'PR=I(8E5)&XAA@5>) M#)9>Q$6=^-P%AD#22;R[R]:[#7D6[PAJ.:X8/R09>.WX?H805>0+1R8:[9_S M0#F3?:Q6W??1V@!@4T=AJLSWL#*N-S_P&HZ=,NZ&%SIW$@^4XAAIT/ED<4?6 M1,$R:R"8.P&JSAD3"^ T$=OX+^9!AK91PMM+W39"'%#'P\KMI)K'(?HM%\2' M^THW=@^60LX8>VI[W$D%@4L[-SG^L1TUE37!#T3D=[_X"NRXTP^9&?H=48Y[$9HCT!MC)LXRI.&-21_6\IA5L@LO#E MVDAC56<;8&*!5XD6EE[$W0+X&C_A:$?>@IATL!$;=:JC7,KCW>-NP]Z!*_$M M035J_7%T2[?S#8""(2;&TY28$=NT M[=>F#3Y9UUYNVSPXJ+3K":<SB5!FT@Q90>U;KX-:&K]11AVF^H6@L_'Y$@_#1:^8VJ[D/C M5$2$0=:C#V_(NC?(ZC)$;L^PU6-?\=UG#Q2/[S+NTUXS]ZIR%\?/I(FE^L;\FNZ M#I;ES0!8W0E0>0;OMB#8E/=M4:$8PD2Y-0(3KS(IH&ZMM([[X ME:W['LR80>M&#$3D0SP8K@<<^G,Z/%(NZT?$VG)YNN8>^7V]3G"A_T[N8]8! M#XQ%0/KK.;T8BQ&3AZ[[=T*L*=_TH>^O!EG]CYL?\T)[ *QNLX6\]C..P\%N MYWE)]A&]#W4[)3(?[,C:HQ0UC=2>D)Y.M>/^;)>;Z$T7\AA\APU$94W M3V5.G->S?QJ%"]/ES1F#5_;G7AWA)LRU\WIPU/\-D_;;^ ZC3M*34^R[I M$!#:7=*SO<1H&#\=@Z )OI/C&7,OUZPI6*HD:[+9"Z62L 0-EOH%=R??]P#6 M@+\O*XKY^95E97)K#">6M-;WD9VV5:]D"9&FBD/ MTY+7;T R@7.HR>( V4PB7H6XD \YKFJCQN=]D?[O#_JB< 9:?7Q;__Y\\=/)_^.$DQFF)1=(9(_B00$+VC M#N,28?2"@X3TINN*1\+H@> .K560/82D*8[0*GA)_^@61D9^\S8Z&&MFP^A' MTBMMV4 @(Q/EO(C!LXLTBB$I"^0*\:HS["O]]2%B=-"^LO?\Z3(V7>"P;^2 M#<)I1-[^A:4A7>/DBHQ72)A^B0EB)#0J7^#8^WJ49V4(DBVA%^^3_O"(0 M3E[M]B'(:AT:T# I3S&6$_$$ ,N)OHO9#FHJ48=@UK8$BH+C9T80"?(6^;=G ?> M\$C3=U1U?3>%T(ZQB9[R"'2Z$^CTG>(+YNB4Y>@4H&V.3_<"8])2&\FNKXI0 MC )=91:_;G.4RBA*-2B\VIWB(0.D].CI$"'2^!!J&BFU-L$#-\O32>P:(8_< M(^0;3-FWB=< 4Z8'<44M+'[Y1P_D@PS7C_B_;.*[8'-.5E?1?7BWP5_C[Z0= M[P!]# V!4ND66>%/.26(:(%(M?=N&*7B><1QP\ M>.U#6B!\3?8(M_$V7/[YPY]_9KG6H>P23!:Y50*QF)^TIW-!">6DZ/F&<&R] M8]385!Y0>H@11(0B^HW3=.P$ _%9VA8)JUL->X0@7EHCE*AFMHB)# ES>5FD M*V_]8$[#%8.RQK 9_+RG/'=FCA M;3OLTJJ>->W4 K.*W5IZ%2,[+IUDS\BH'A>;ILMBS\1AI%B-X_3T.4N".%F% M49"\G&?XD68=9TY5\88PN"?K<@)/NN8LGVIMBR@W:+NN& MIM)OEK[ Z3-.EF&*+]<8 MD5-EV1HHW3R=@^/3*JCOTW%L!:]SS?,K* Z5@RQ(HY84SBRP86ZG:DZ_$XM\"O%GA6 M=D:T-\J[.W;ZAG[M#G=P>WK6=!2'YE1Q(;?Q$D!!H9+0E$JPB44[-11#)?YS M!.'YS>[QD2QYT.4:+1I10_0W&K+]&=^'$0O^('LJ=!I50L!HDR\)M5)IW!AZ M]X=OMY__X#H7Y^B/U!?X.5ZAI+&>NB2[PCO'B 4Z0_*\:J7I+Y;+W>..G7PS M;:D# %^,$T&AEK20XJA/A..YS M2[\F/[U-"+$^Y6)*;H0K!BM%5ILI9OM,E M9/V:+4=^F^$YTEC3!F;&D?3E\Z&!P#Y'?I(U4\3;MA[/1YB6E6J?QD@I\E M-=#%%GDQSO#DK3O>CWE;P[M!>*G,G/&UF,T+BI6K?T2)-@XZ^27A:>YE+ZC\ M,.M>QI5S\$R<@OKOYC[*4+3-ZY&EV3%N$UN3,1SIT,4N8E$+/U,VG.+YE3YN-+E](L1F:-J'M( M$K+8'=YA%]'K#]JJ^H@=%[PAAZFF[RUV[&D!S79!G$5$W2Y#X5&5%Q!M -YD M_$S+7JKS@]/;[3-D/S8[N1 MEF]\6*?*%^"0;C38[,-,<1&+H\;64:3T?:$F#0/6IO/'*-9NIA*#K^1H5ADG ML84)9HP@$',-X?N>,^ZX/^J=@?9TWC&Q9/,IR!Q'C&>C$2( 3$Q[A&*J&T+7WK7P]4M M3,'[/ ,88IV:5^Z>K[ M4[RA015?@C"B7K^74<4_. E3\NB$_#.Z-_*6><+)7=R'2G;EE$.03;[SBHO\ M/>F>\B1G./T!D;U4T/:[3PO*;J'%VD=IX\@$^MD #6L<2X2P^E*>PH&6<[[\ MF,:N@"YPX.@/\\'"A;-J-(U@A"BG/,$$P8N2'1+\$&AF(RSRG-4$Z'Y=T07C"##G9ES^8%K?&Q+VYIIKX'(5S);'Y:5@A[T@ IEWUQ9L1!!Z]_^Y7GQX2]4V_E? MH:#+_Q6O^7_)G/@81_QO=F##_]Q1IOS/W(NNU69+AO*!B"'^1?B_F;2J:NZ- M4;OU=CL.T@?Z/WK8\T1V]RS&,S]@I ^(\/4?*BWYPHV5OR2O=H+Y?\F_^81$ M9J8'.D]1;T#N(]B )3?,A69,S=P(NMU\*;-EV.0RR]%_8E'FE,(,T?]'%4(S M5/+@#ZDG0O.W6@=QXY0S1^]R]F0S7DB EE4+(]'N?!(\NRJD,B6,8RM%+_9454\F( MDM[MLKR<2II_&_0/\G%0RK\.K3I%/\\>%%/I&=R1H2$JIC$F$D1.5S/PHU] MN +,>>6G,X(U]1S\^6I3VB!?$78T,%NU23D:KJRZZ/:L?MK-YT7Q7/JC)W47 M>@8H'OZDS+)LN GO(Y92(VWXTOE-4P$ KIM2O/SC??ST'RL_\FF*/+/OR_("IK0N0@>FYK4\42\4^V)60;*-@_#')(U@CU9("OM MYN(?B/[+<0+&CF\>]WRL9AK$LD4EE6'/:-E5JK,P>3QOAI9V/JLK5OX,0K7J M?$"4JR YJ%ZB9:%@]-_H_,0+'6L,0%/+.L>GH6>\34O3),-G5]>^QLO:0J6N M;GD=/9,D<)R%N.EN8D,C5=10),YTV MD-I0\<=Q[K&.,03GU5Y%KJ%*B<]:3U3IZMC63+0MAAC]IM6.(%4Q[?W0?-@* M(6,%@#4!ENB\:@3Y26PEE_*J9@3AFQ'($Y5/;@;F50+&, 6^ 1DM [ MT'SB M#Q@%/-E0O*9_M2V#_+G">2XKLJ^GMU,K6KHJ$-['['9!:C2.3[X<6HWL\,2! MU3CU]Y6Y,1=5"=9QDM:J]"R*++.%R_(5?>LX6E2NJV[CJX F)&W8^53LQ*C: M9V=X;IOM<$"(-:SQ>I:P/"M8G@4\0WT_47Y25+>-XK-#Q&S[&#T1 M)MO#X$/"W'(^N<#9Y7JRA;D&-X!UN1(W9\MRC6_A;E6N)J2=1;D*;]@U.>%( MST\.$-_'F2#(DES?YB%6Y I<81;D8T#&@[F!VD:_U!\5<5^#T@"F*U&R@M<: M[]!KO3]R+([P/3_)RX*-_"[%3!A]S%6A*_!T6Z*'#B0>@,A$(.(IR^ M=@^AEP+%860:8RJ>H [/BQM>Q3I:T"0^5BS8L" M*%!*JH1(\&LJ1:IJR.2]&4%5AX<0PYH5_?VCTO9HWS<]K@Q,.R/=U"9F+;L< MU#T%J&?2),*ZNWWLS#\YE'9RACY[GD-N?V\1M4@&:O*MK*J=K O"%^<@=+J2LSJX^1EK_GNR:]_4FP\JJP*>[ M#&L HG"B.<6N744$*T?OBKOUO=ZF3WDJ/VI[/L6YO%4+4K%@R*0+$++8.P [ MZCY(I@?(M.P+2\RT]:"DJG='6[K9TB<_VG(:"<'KO903Z-G315@NQ?(L[@W; MU>LDOKMJ)[/$R\E5GV9(A3(U%=([^CB^0?N/E75\H,"]A*&?."F&+! M_.(X39J>QL3CQK.9\DRI*L%8=C,]^>7]Q7BLB M4BD>QC[>%IF-I@O]+*]#5L0O.ZB*-O M::9YBIW!YF:Y%!2E,4R=,\RE M)R_"4.=YW@*5369%2AS1RG$* ]5!CW4'IIF88*!;)0F!6\6"S4RCPFR\AK&, M,[F.)44CM-IAGCDCSSRS)>U?V&[RX/1-GD &3./*%7GUXWTE?Y$?\Y_(_]$R M7_/_#U!+ P04 " !K7&M4TR112-B5 !CF0H %0 &-Y8F4M,C R,3$R M,S%?<')E+GAM;.R]6W?<.+(F^G[6.O_!I^9U5U?9[JIN]]I]9J5N;LW(DK8D M=\U^JD4QD9EH,PDU+[)4OWX ,B],$)< "!(@E2]55A((! )?! ) (/"?__-E MG;Q[1EF.2?KW'][_Z>;O'E_?S=8HPW&4OKO :93&.$K>W68X+2BE M=Y=I_*?_>'=+OJ.L+GQY=WG_[C3*'DGZ'^^^IOC?)7IW2N;HW:\?/CS^Y<\? M/W[\M)C/'W_^]"G^RR_H4_37_WCW&:4HJQJ;%>\N,OP?[]Z_?__?O__I^\=MR?<__9\O5_?Q M"JVC7>'DH&R3[L>?_L\596);DC&D*+OE=\\%UG/Q(T[9^,3[6JU6-O7>?_KT MZ:?JZP\-B6 %0PW2.?Y;7K5W1>*HJ/"B[<<[:0GVUX_;8C^RGWY\_^''C^__ M1 7_ QV_=^_J$[RUV;\>LCRLA3@>/\3S%9_\2^_W13K%!V M2M9/&5JA-,?/B"*/K-$5R?/K**/PH3^=H2+"24Y[5#50O#Y14.=X_92@[6^K M#"W^_@-K@G+VX?W[#S5?_\.,_D^VW3@ESWC^_M,3U3FTQK$-IRT2ULRB$#M>D%6JGI0W7Z@GMB< M0Z>P*T0Q:F!+6S,S^_//[_SU+Y]5PGZ$%3IG6I$6&'TNF-;=)E%JQ""1L MS?@=>D9IB2C)F,(RJU0\O\?+%"^8QU"R4+"KEH3TT%"\T5&UH]HB=.4*D[,H!C%18*C1YQ4 M BE(5I/L,)D/P%0'#R#-28+GS-_=V?/\9K$Q)L1.SR%4W8_QS>)T(ZM9GJ." M:=WVAZN]\/H82,.6^^CZYA/U&18D6S-/^N8QPR?45*B+]2L4_>M@KH-?Q)"3N>)!_:GL]EB2\V5U\-6F?,R061!2SR1 ME F +$B9Q20O<@HRLBV?5.6[++ RJ*Q-XL1Y M<=2P=\L$H6K-\FZ_0[8)(FC8 MIA-V[3@U."Y.NF!T>UMF[?7XOB#QMYO*,6:K\.KK+,_+]5/7+13W/+C=K+!7 M)"4Y:R9;!V![ 34_43E2?R>=G^&D9-!G);L,DY-F^SA.=+$5("7:Q]'B7G"7 M*75BF3=TNMM6Z3HO=6ER #-R3547Y108=_2_&8XKHTRU>L:\0%R\#F)'P$ST M._K,M7MB/U-UJ5:=*Y+,+^FL1)YK4]$W%N ,]*T&190N,=6X^GR@?QV0M-=O M-ZE'F)5H?O["(-EMLZ)+<_UVLBKDYCRI6WMN%]/UCR=H03+4*.!ZN:QKIF> MKDE6X#\J:[F!S07)AM9.0R[Z%=UJ\;C'79E^OJXVWT6BW+[A!=N&5H_C6=HXPN M9F,6"9 P1@Z)S989ZKZ2')2_WK8@G)ACXS;LM\E9 W?HJ3CQ]I#4:31Q@Z@?YZ)+/):CAMV>!+G %Y!P M?UOQVP70;4;;>F%;P,5KJ]1FWZ7/W7@K/MP=FKD82P!1>P=@9S^?=T>=Z9SZ MI E>O%*L=_$#H*0'VEH[0PN49?MMK;O.5TK7:] MV;E% ?UY=TO%S3E&I^;[N=)') MD-P-&$4X:*A@'RYTYX!< :U>PMLVUANG!S=26(6X6:'ZCJ@QS*-T7C 5S% 5 MDU<03"<%39V>@@2'Y=W'HM[A2LQ-\WVX,LXR64#)=TUD<;O)0N&"<2W)?J_7 M=^#3=3Y'F&U5&,!>G3&JW=+7&X6BJC;*RJ)RTU8X3D=SN*U<7!FI9I* M>A V^;Q7GVI&4[1D@KB*'A'@0JZ(5I)E!Z18!JU/+(/6^U\KU@];Z,[J RFB MI']^F\TX8)J""@W =*.93DP7;G@MVGP6 O:H\YY3<%=HOJ(_'#2+7@I$/:S= MQ4]&VF'NM8J-+2,)B0_:3EA^.9*U^YQO<_8MHORQZG69_[B,HJ>?F-K^A)(B MW_Y2*?*//[_?9)3['YN??Q

(V*FP7;#GG,JP7\MMV$B:Q*@FA:DYH*)BVC MFC]Y$\G=+L5-G=;O(B/KQB4RV;B>EAF[_'^+,DSF=>0H[9!$>+VTP8G9<1N' M ])4EEEV.#A1MDO11_]YH"GMO(>;$C\]5:D3?HQ7.-DI&4LP9 />W=P:JFJ^3/&.U' MI[XEON7M#FUN\^=%ON=^&_2H,U".J')2[$S5NR$#@H?T)4F)65.SU31HG=EQ M8M6>4?9(PK%K[2S-_CRN*&,W9_(M)SHO2U.<]ZRDQ?T9,)XGG6G2EM?T.21S MHAT^8MYOF>F;(0U_AFK+*-PD 6I(A!&6F>DVW,1&(!(_Q8B#IJE1 MMCP=]Z7Y1(DW1=DQ ;8C@!JB$A. 6 %Q/+ )5 M/>^V0#>HQ%X,$F,@:;%I" M366= 7N'RVOLS&Y#.IW?H0+7=V7 KH,%!4$L M#9B"/^O"L7F^?DK(*T*;!$G5..H,C0T)M; T)+R;'QMT$"<"4\2U !EJ6BPS M1J9BO+J\NN?OV!DMV7C>H2>6^T_K]>B*\T?-TN(^+5-C?.YP_@WN^IA4;5DB M2%7O%D@[OJ23-&1'OI)6#VT*I+6IV!+A&YC>5$9X#5AM*"!5.!515_%H,*)\ MQ3T(0BVX\-TYG?VPI\2;$QM*WJT+"!3$I;PD!D?%R('1L6%@.ELSS;=O_06% M[9BX3.D(5?>1V"C4[]IHS)!993[$"UC98\"<@D,VC]:91=AU/K"/XX*D@1SU M)+U;+4,,D5YD*3%D,-X.@N8Z\30=V];_X]<>[S-5?+!;)=N<++_A8K5=?VI, MIF'MUATD8&VO"\ 67[N$[H>P^&./J/92T()(>U%H1,2[*33%!G$D,(GU [+# M+2.-V!CF'H0?WZ%F>==IKN_OI0X"L%[+"]#6&S.^3<7B#M* E@$H?C\PBB7! MIDK]9*^;:3HKBD1U1;,9IMJ=YAC!WH+ )MWO,I44K^377N8S=MCP'+D7Y,4$,VFU[H"E:$,'MUW$N*O=: MM-TIPVE)>[S?^6F]:7V0-ZK* ,5>"F3;9Z2: "Y3VC64JW=H>FU1N,O34XMC M4IKA1&^O=KWR*%++?CL,R8@*3J7@?WXI"J"#2?QFF9^,Q))U&.8PETE&4U MR:LV9<<$)4AW[2$EH2[#K#.DQXTO<97<( MV]$78@Q^:!(0QGY#>+FB?9K1&3A:HNMR_8BRFT75W?RF+/(B2JFGN519-2L: M'!X-:8P)I5W$8X]=PU:%B#8^VPG%C9-T?J._+1F8X5I'!89L.94)8!LH(N?H MEKN(KMTKK=L?!*^U^@[W.<;:PV/MJ_&DRR>#R'J^ M"B".?E_%N_EQ'#4O$4:_,?+[1J<;$:\,(35 :ZN.R;6/Z>%5)HZ!+G5,)OI] M&\'\&WM++-W=5C&.>-?0 4>Y2^F,$<"NQ#9$-+N4$^L(-O\)+Q1^X.;3+$[RL#Y..#F#8#N 9SJ/E,D/U<.T&LWJL52(32)7V8RR**F.T1Q;" M<'BC3-FHR7-S/B#W@-?LO'GQ0(UCOF"K:)9.^2:[1]DSCM'L!46B"*C@8A:*1 MP!' @0$JMRT'C\L-^]0KO'E&&>T5^H+8-J,,B[KR//[DY4/'' <>8BX$.Z35 M[1Y@3=[>=#=>&IV>%;<$I\5E:@)/124Y1H65)@%4O3AZ0*NPT0!W7OI=U]"5 M,*HB&,W6-JUJL/5-HYIWX)KZEH:2Z.A8ZEN;+E0GN60IY3.T M0FE>92[" 8^@:%=1WBEX ;T :PJ>,]#6]/OF \\>*0!9U6'5 ,(X MK.;=D)B,-+$6B.+M!DWC_)L-ZD:GD_OS(L+9/Z.DI.N4B"4XK;(E^3,E.W;V M*5=U>8TA53A]45?Q9S5$?.E,!J@.H/\A&0O0D!([&4A,A*K)IFW0-#4=PR#, M[,[^/#Z^X.N][><()XRM"Y+=1R:/+1C4Y-_4AM3T;B],'U,PET?'QQ- #0:\ M6+Z/5VA>)G1M)>KQZ2XQ^"SGGHBH+(8,GGV0;BZTG9$>#9$O2+9+IY-4Y;V'7KZQ!YL/ MAXLE/97T5%Y0EJBL4="[_3%X@UG;48GM #RZ+"(=X#F/(VC],\HP,W(Z9$G+ M<< 2E!L3KG3=M(>5@/)T#Y[O5R0K'E"VUL%*7I#/\BDH."9@:3MJCRP1:0"T M'/@MWJ9^!:)T0!HI?MS#Q@PMQHF) W@;8[]GO4VJ@^;-!\I][^^*N=*]PPVJ MU+*>ZDH>9XK=7HF8Q_N"+KQN*FCFL_J%PE?01H [PKPL'1#V;GF *"(]RE-B MN=2<'9?.F.-CF1BW7/"_7]6_66M6]$8"&=6ED M(MKF3,Z]:%X7[J:T\M$8I3M$Q8GCZK4NVO>O*2[R2F9.)S?+5@QG.N-6)J*( M[B3=^QQHS%X(*T79J>PV+0"5&DO>^^^2\MGJ\2:G+^ DMCNY@]/7+N1&I!B. M96>M =WY<+/,]7^8TWP"\B1*6 #X_0JA(K^MAGV%:'&ZK/HJL<#\20AW]E879#LC)2/Q:),9G%*R_DFE#+ M5)VO2W"M*\Y!6%Y\M&@%2L 1,.6M3>I%S<-NUIE59V6QHCULOQ]N5DF)R':E MB>!2(XU>T-ENT\F2)62,ZM,[ VL!4!I6^F:7,#7.W>P"I]K$S:-]\),NL-:; M/7;M?*XLV[[<)RH[6BA"^NX(@)*F)O5J9Z./P D<4$,.P0E-W7 YN(YGD)!^1A:1T8MZ6G T1A__L"X;8Q)R^!!@M O#>GDXAF]SBY__PS.U8:0Z*>5@ U M9 _6BVJ$$,99,WB"%B1#>V;I_W(Z;A2A%_1W"E+#L,U.5*5AFI94O=M;"&R$ M,9DNQ"@QB@J>Q &8EKQ,*,IC+XO371J!K5Q8=%X=AG>"4K3 A:'"6%.4*HL% MQ?$J2E?QN5(2"SXF>3G@?+% + )[;RGNJ/_#-LJH-Y3@_?5$N(;8DY2JB W) M\>I(9P&Z4A(;1D*(VW>N)2P[3[5U_ >:4REL#$1^1Y*$SJ;L&H.ACM@2E&J( M.<'QZD='X;G2#G,V>@KT]ZL;VZ= 65+G[3/IC>?1#17#BII4*PRIC5-?$BH;@;-Z AM]0!2VC M@(<#+(C8B"PD,V6'$^)(;!)[9<04'P1APLQTMGBEV1>+%5J4!7N6("HVJ2K) MHDJYF.P-^C'YHL_DB_E%-4!?<(K7Y7J3]""_IB!@#B@M]? =)<_H"X7S2O;N ME@.*RG2.AA2]VS7KO(]=1.U/0FKQD"L0VL&S4'TTWE M:2.4"U+*GH7N2LZ!;M3DIJX: J$-JQDU [UD+1VO8N!GE[-&DYP+Q:C(35XQ MVD(;6#$J!@"*X6#'=PR*,5M0OAUKAY!F1Q7A:$Y93U3B&TY9."X &F-\.754 M&M---[IIP23Q/C2R'5UH;6=M=Y&Y\3*ERH#RXI9D==@WURD.?49UFCD8]77& M@#2;[IOC"]B*[?W3?E* ;KI9);9H,2M4#1&T[*DTP69#933PZRPB2T#:M+N! MZ%]'^$+%?Y511C4E>=W=@[E,%R1;5_2_IE$YQP6EY\U[4/('CF^PI,)Y$\94 M_#E=2E9UL0UFE4V$%%(L@RTF2$=!2>R2(3M-!PW*QE3N4&\ND9^2-$;L#CDC MFS?NZ6UOD[.HCL^(++/H:87C649-N.\+;?=HR>:,._3$_!UMZ(*N.!__*"T> M0KSH;4;F95PTL6D6(@HE((T*U1/P;I6T(RZ, C64C"R)C*1M<=2GOLT)A19L MNYVS"T0-LW.SN,/YMY-7]M\+*BJBS5/2@9($UT:41@EP>UDY0+I1XQ.*'&BD M:CFG4W261LEN8CUY%5Z,3$=*,(KDBZO,+/ M:%[??K!3#CLB?/"J(9%1J4 G"75 O6F[PT0%#/^6*U9N4SI M>)7;$/Y_H/D2Z1)/F57F% Q:V;^G2KV6*%]=).0[XXU"N\'P/M5-,UTDRBI/ MGKHZ+%<$GT7RBO%LOF8;D@EYHH5!F/!N3 V1+4[3,/QX24PSK#>2) ^#]&(J M^VF-A$][$1Y>]K]9,,&5U&B]LDP #T2<(<#[S: WG# *DK-A5EP@"M,ZV5DU MF@>%)2)R2)D3I1/*WNVNX>5M]^+L=I';"3^]W8T,596JB81==*=\) T+VD&' M="0ME$=.+K6TP'PYU&6LIW-='Z&G_&17\- M62PI3!L:BR8.)NS^EQ^F[$WHMA$L<^G+*>T52]E(1X(":=5![^3$+'1+1&R* M^J,56O\Z(F*AVP6F3[4>I&A)&YN/3!,V\[431>!H==*#':UIJX%89$-JP8X# M0/@"_"[6"'5B(XC#:FV[>0 @:;I7H"0Y%D7H08 ][P0H M&=E@_=-XL"[.\VY]Y*&D9GSP(:$V.7"#Q-;W(8B$A^WYW4@OM4"Z?KJ*TB4M MT,KQSBY(U[A*$O*=A4YU<(PL6K'PD8Q:&8LB#2/F_CTG(]Z$I^@C.D8_?WG" M6;UGWK0MS;X7188?RT*B(0X'U/[>T&1!.("/-U2F60/V<14EMP":' M#4G-0*\B (*ZF, T X03A^P%CQ2Q_G_R[QID^HXT)KN[2:&^/Z:M*[WRIJGJW0:!Q%M[/ DM$8GY4+8OO4JE:W%N> M#V//\-'(G;2]+#9[P;(I4U.:0Z6TM'<@&@&+F/9?=ND:T&@3B]+&8$_9^,/4 M0Q:E^:).1'6/LF<A/_D"9R<6?SLB:BDD"Q#Z:X-#KM@GOD-=!EPPB M7(EJ2)AK:H-;IGI3(R).0=Q[V DSB4K@3B+OG>[8E9\KN'^_NQ^R^:294N(Y-R M3B4M= #3>:/H/U RGQ4L,K1>>^ZNS-=94NA2:TU*=I6^7*^C[)6N^] E+2!S ME<)AS&RM, ACWJV(K0,8@O#Z\#5#Z%? =T0-]V#8V4.4L),')DWA498;BLT) MO2O%T'5R2-TB?8R2G:H.T.V=.]&UNWL-_NC-KW"MP6Q Q*?1CD@ZT>$MR:,2 M.U1BX3A-6(NW_16IL8.)V&?J/G&.K #>=#_F]#.4S5:]3EXW6<[N4%*?"*[P MT\DKIS/;'&8GKR)B+)>QZD1F> 8@8]03 ]ZG#OL\?M[&R5D.OR%[,*'3*XD( M%"=8@!K"O'>2&F$J3;_0)S;2--&47MAO:IN2[0EMCDKZJ3Q9 ]6!J4@P9U\0 MF.I1;7*@I6@1 ,1M2Q-Z282M9VX6]W3)D0L/M[3E.,@)RH4*L_99$[2S9N#: MGPTIZ$]H\M\F,& 9>- S2L@3D\8F[X<29 8U6R]O &J.#XCF ND*35"+(9P( M.'L!K7K^^C-*63I9VNO9?(U3G%>OZSQOL]6H;:,5C=9;:48TQ@?E+D+J"FK# MMD-(*3G$5HWNJ-RLLLD624A'SGY7:E8R#FK1!NW!A":-Z@(/RUN6H16U'+MK M$8<';_5A0V.S>Y;AG [ 6VEI;"56W@T M-9SD;;3XX%2I5U9AD9AFVEL%N]&FO2NP4L9W*-Z=RK&WY69Q7*[+A&6,NCF] MO$P+4HMW=R?JECW61=)K9'0>Y+ YDZFW4W,CUN>!QL"94O?'[U2.D65FCPEH M>ZY,%@W12,IZ/VL6\$4'ZF;!KL6K#YH-:K;VZ0 U_1GH)J 5PZPZ)+8AP0G) MC(1WXVB"!N)$4!)K!V"D:>K,&)C0YOMNV<7"?HI7UF^25F?2\H-24!U^5BI+,MG:Q"7]0Y*&*B(6:=E48JJ MM@[R,(C;F)!-;"AB=36KWJS:9TM1[L2;59;/]LK*WI&I!IIX9H>+0P)18:.2 M65S9V#2Q2OV;_7;+/FIXNV"#HM:(C!R_0#*C1+*-B!Q@&MBLDUWN4!Z>!#I% MNG,D6S)VJ[&0SI:Z.K8=)>?8US7G9D)G/L#. S=N.E*STPS=!D^X"J+!3%X7Z?1(3=],3!-N">K[U>_-+A3+(Z M^*0+\*SP/L= NKTYR=GFRV5S] .YK?!C&$-@2!48+P"F.B65EM^'=NIJ??WQ\GJ,X35$N(@4]1QJ&D]11UGL[#/6^OUHK'(_20CM#W5^LW MB0GN=GGW+U/M6#Y0?)Q0]K[)CB'=4I?FPNI(W;M9M#R3[T>\;H[KG?'6QS(W M#&>B(2*#O38#G>M"5:YK=E0GH&,.Q.E,T'L M?LQO%@)Y^',_=HS=+&I66*;/-H,:5\22BBS8!TK%GYFDFK!'LD0HPC)TCR:3Q^8IZM.2]B>-7ZL0(=IWAL=4'#"TEYZS+>]^ MF0"J<5],>-=XE^H*L *##*;$8#CH*L2(]-7%$!+"#G87]Q\DF;/;_[L[D(T, MGWWEY#\X!G*QW[1W, MP>\Z6??NW<.FVB[)9%J/88:F8>83)E?+0#_"F+QZAC]XNND)W=P$L0?O2)\E M[A#4T2'0<"3!&SUCV2R4L"= BX(R]JAV\#YQ8'$/YO$.YG$.TX N7"3N$:ML M6P347R;RD/9UE-79][RGWS@^C'U\&/OX,/98_+CCP]A3?1C;#(W>[S,=7],^ MOJ8]B=>TA]([R0N AT\D'^:LO*T21I)4_NZV>>WFNWXFM;UCN]<7MJWE*,%Z M+\]JFS 9@LMCB'@VP]HC7EX;@GA1[;>)>*T<0T"\B$D1XD<:1%0G9MEW7)D^ M1UU8F&VL77BR6#>2TD#0UO$D>NIKI \P^']_UF[S9D#&S+:&!F',NS6P7>^' M(+P^MA9"Z%<(0;K25]1?\+I'^E<4?OK\L$@T&4'/!=#3J"Z!SU&&0#IN.R"@5&=!) M@#:;!U+WM"/6YO]T]V;>+#^-\A5;MSS3CE,Y,4F*=\FLR1SNG%F0.>JF:#>M MZW@$K9KV?13=Z#8.%0]E8A5)H/V8K4%LMKPR($I;5/FHF\)YTTKV06ND:<\ M,^2OXURBRKW\:M%^QXE"_AJR/2'-9A6$T%%Q03M3QF,R"B6VZ:5(@_\2AH\K M[\YUR0)I;A;\SKS(Q;6GTO1P;:@<=;'MX'8>C: 5T;J+(BW\:QA:N#D0?\!5 MNJ9F8*8B[$)16A!Q(2Q]U!YIL(5>NN%KB:HKHA"+3^/T*I6;4)W/0 RIF>RG M'D]&W.ZJ3ON0!-Q5T3[.^T#NK1AN3+%G 6@'YB=1WKJ?ZXQ>AUU6CMY1:3MO MMZI&*&BU==!9H>*.,?/^&<[CA.1EANY7%+.T>ZA*9H+2O&IB/V+W!8F_W51[ M7?^,DK+6E3POU]5/N??$'F+^=4GX097X.PN:2B'Y MC5ZK^\G?HVP.RP'BB+[T-DAG^OX-/ Q:PNL<;J4K,\9*!L7W,3HS%NYC WE6 M-!2-_L4K&?WI]SO63T$&$N&WC?BY;_Z!Z1QF1"T K3/0D0\&5:[]<%->PV$F MO 8K^B*X#'%0.J!P,<_ORZ"CMR1><5O=K9$,M_-X8;.Z[_^'F M."7Z;LB&O"Z\'72.PMB'?7.M2CKLHN_-83_\'NRP*[H!'/9#"A.Z,Z*=\V13 M7FO]#EO26!"&+7N,"$_3^>E-]$-X3BZ9/^IG-K^(<,8V2%!C<^0.Y]\N,H0N M4]HYE!=W42%=8@_5KBOMAK?K7_G=Z:<+K;<<,;/EO$'GG%@#>*?"7:/9&8M' MO;0>(=(Z?WE"<8'F#RA;OU=9B5X;%)F'GAJB[S.\#.> MHW0^M-$0M3N$R3AL]V@PG(S8>,W%8:=$QF*DCUM92ZN.WL@_TX(LV*9^(?(W MA)]8,"-[_K<*5'R@@WU"^?BFDX@A&9F4P&2\6U$0%H@S2"%%P2IYCBL- MP<](.OL;UFK>CX;4&@6:[&1@@2MP0R*$&:=?#&-V%G9WOSVC,6!<:8T)VY4> M!>S,^NS0C.T:<)-.L#5+>KQCWMK+\WV*\/;VY_:[I\+I<[^#6@V-[@"A(S7I M]6]#:J,R*&YDUL'@6#/0TX[CX ;IIEBA;/=HZ2YUR%E41'O9L&0C*=7"5W9: M3%)VYFE_G"#Q!Q6,2"R1:;6F1PBJYL\R[01^%WW_0GG+*),LZ\MMF<6K^DP^ M*UB:SIO%'85#]BQ-#-:!$F>1K"AYLT;&X" N9<99)"@S3[ MP@#;KJ/R!PI$162FS.^C DX,F#:9?R>S)4VB;[X!']*^E3ATN!&(1M)_HIRN MF*E76F28W3ZHTB7.X@(_4TEXCT.3Q#Z_K>2(MO'?=8+ZRY1VH:QBGROM>%A% MZ28RG [_D]5;*D["(JVQ5)YI?KIXP\U^_G''-)#9/E M[I:.'\J*U]LDJ@9C-S!5O#[0QF$0KA9TSN$36 (0:]4+!+T MH' ;?9[H2R >SZ]P4I8IXEI?ALP'RI M<,$G0!&!=M<4:/NV#I)B\VU,"%3"]8 28( :'-B4-<8*/+@8W(!0V=Z$3JNE M8KGBGPR&SLZMBM#)N5'1.TI[<2]EDAG"NVRT_1;0^SF3/T$)JP1%[::2=\0: MH Z"59$L3"WKE>@I;EV+>W3^.O;)?A;'Y;I,V-W ,T0[$.-*=/3?":J0D1!3XW4D3I$E-7KG[C_7@^-,SY$$NT M7J K_,RBZ@Z' '9"!"4@/2/2$QCY*9&AA)R>$^G;GM VNZ*S)Z]?HG^1[#2) M\EQQ8F1!@<.U$07OTZ0%2(D+:6E7^SIVFF@W8N-MP'W?Z^MHK3YALJ0"A[V8 MBG?HVX 7AGV V"3X-^ )J !B7B9TF'!+IT+=\8&P#+^>.2P3,CR5^"*P;IL# M4-3JP5KFL+4)08P%#I:4E7NR*+[3@>,DHX2>45T.DL"Z4X"JC9C<0QC(Q83. M#D[+O"!KE-VA:ANM)3 EM$WJ\M"&U9T$M"W$U .T85Q,Z+;<-6$O;3^A LV6 M&0($&>@K<"!659@"H38FK288A*#JL"D2 5H-C.)1@!",$PI!K$) :1V(U^D%)2@ZVSA4;AX> MFZ-70PB.9RFA*2(<)K7^,2_E8Z\%?QE_J(!" /)@ 5@E.+[#"!CH ;G+^QR+SK&#?1['V3]E)!7A#;;"%L0)+C#*3\LL MDX?I@>OQ=T;T]489'& J#P1D7OT7LHG_Q6AF)**EV'/ " MH[D:KH:UVZ%QL-JCA*Z=;!P &-SPA!;5F\GMDNV&H8?H16=GM>7;\/*'5>*0J:LT2G@:2<(!1G7M36@K MW124IGB<&A0'1*$A (WS(HUEI5H5:DCAN%3M=:FZ&42QV\@.&-4K5L/J_,(5 M7'V4UL-2.BZ6L>"6G:QF0WDY^FS#]!WMVBG]/RZT"(94X5"KKC)*I!I(P0$Z MU:U-:&%J:54MK>E$K>CPUM/.:HYTL7I*TDH O^%BM8U_V[I?KUJH&M9NQ>X" M:X\2N':R<8!?<,. +9B1+G3Y5806R/H*HJT72851PA4L 5=;+I*VIK+:;>QY M-B]PLQ]/T(*PP/E= ?M%KB-]V?%RAO,X(7F9Z1[!!=3@-$99PY^IJ-FZ(GE^ M076(V4ZRN(!NQ/LKAX[@F] .\3"&UPY=FQ,:(5O(8;S%RI, MVFOJ+&6O5=1:=8^#NNPDH0PN+U/:-6I%W"F/:8O=M0O>XAM0/TOQ#ZZ?<#[= M;'_X=]%AH9.-R.9-_"2U9,=,3,=,3,=,3%XS,8W>L3YF8@KFMN,(,C%-&>[' M3$S'3$S'3$S*,L=,3&8 /&9B.F9BZ@VJQTQ,QTQ,QTQ,?4+[F(GIF(GIF(DI M,(P>,S$=,S%-Q95H;NNW'U:0H!A6B;\4I:GD';FV63V,I.$HJX>NS4G=9YC% M_RXQ95HAI-\07JY8_AW*<[1$7W.T*),KO) =A+@@V;KTUX7D>-'O3I*N=*,3 M1SW9]C /=4]75"PHOTS/\P*OV1)C&^V_"Y0^GNCV:=J^;%Y*O4PI:^D\RB1W MU>Y(DER0[#LM(+%H'2AQALR*TB@/>[O+S,&IKQ43$]JG%?=6=B:@+ RZ"1; M7-L%=]HK8;!)U8(%_=TP1[A\0I3*G/*5%8&B<_,GIE-GGI=(9I/-*H/0VZX\ M;31KA#4DNMNL3&@?0-QE*E[T@JEOR,(>XXP]\7Z&ZO\;01Y !X1^)9UI*P)< MA$/JA)*K"1U+J$5V&[U6>]VRJ$NCRGS$);#R5-!O):Q^( ]EI=O1QF&:YX<@ MX.[ )__]_=$K5XG#OU]N?)NX]LO/4_^YR(\96X\96^V<[O%8VV-^G&-^'-DI M7!A9'*@ GG%.&SA!*5K@HKH/=DSF$,"QPL98[KC;7-C;C)/H&J1&,MT)MD() M[0EZ]Q0-+\LZ$UZWN[!=V)C0><-&#!>(=B)*6G)0*X"NEACE\EK>H>P FVVD M Z4D@;,]2P*TRUF9'J0KCV5&EV>T*5-@P^J*X:VK.TV0&TEL"*CK&)K0:<56 MN>M4*J8V7%-+8L.EM:8);Z"4!K'A4E8F=,*@EIB56V[E>D\5SS 9#0%G*2=N MKDBT\LGX3$'N;@7J@*(D@?F;6(.Z$U^W16@G/B;DP6SEL%F?F)E]L\H2V.LJ M>T>X"\@*-,!(:!*P=V!-I PZEB:T5-UV^6"Q8H=^$Q(2'8"1F*HF6 AP&'V M,3;%V:!>Z5C.!J#*LME 4WFJ.F DM(%F PU+$UKT:B1GMQ2P<_>G"_&0L/T6 MUKYF8#8#<;C@M4H@; E*H^2_O5E0_XE[FU$9Y7H=9:\WBSL4DS3&"=[<#3]! M2YRF5$&I/W6>SMD_UJ1,BYO%YXSD^=LW_WHMX9T%^V6DC[JMIM1&9MF2WLUH8U:B4"V=[U[T&LKTC"] M-B1]U&LWHQ*N7AOVRN5][U U^PZQNVVLOPD*KW$]MH:*[J(EF-YW:^EH!GH9LW"M0K=.=KMQ/PXC8:;HTHP0QWTK@,I! M$T@$H#AB\/_B(=V$) 6IA.]K),P\JB_=3#BJ*NT=S\!C"+-NVYT>:-L8<>[= M._2,TA*=4D6D5#=A$?>8]G-!IXRTV#[KD<_2^6=$EEGTM,+QC/F@C7/3^2O4=+EA'A#CVQ]./4>*C/8W7%^517TN(^7Y%JC.$=SK^IGE=5 M%VZ]$R4N[-U(:$>-&/98]D*#I)W#MYW$]"5'(\YPDF=% R/T+QX?]*=M I"; M[!YESSA&@A=*=<4V$I(7\XX&S0@3;8[7@T18^>%-!7G@D8(%VUPHD"N(AG/1*X'*9YD^HVNZZ?\W9DRIRL&B* M-J$B+3H2H,"Z:@43*>D0C@TE(/F""DJ=+%\%W9/C!5ZK"1U(K9&@R%@ 5H"" MM.+IX44)G![H5W2&J:%D\VF4W,=1%:J^40@0N&QI-*%F3F,DP.LH'"L8FK?I M)#EQW[,BY7NG8 8SI+::>+945!L)],Q%T'$6531C>P+1#Z;NT1K')&4=(YG6 M,]>7;B)(57HDP %WV HO*NHB._1K$-M*W;>MKS0/$^LKZ+:OKP)ZA%B_:6G< M;^/M2T@+(:P'G5U9J\ZK9/CB/[>N@&T_AX>=-B*(ME]0M%R)'C#=T]SCXZ/+ M/BR,KJ-1(JI.M/BW2>UH M>3T 8>K@K5([9GHR8SX4X[IDOJ*JO_] >Q!PFF!6F8,^M/*( ML6XE'V?@AK9>YK15-L.QW8U)^7";Y]"=6/U.M#CH6](:L2:XD)XSQ;!D)H1S M#%>*$BOYVNHI1*\S*]1L5G M*C7VM;H%&N6KBX1\KX5]OEB@N*!%;A8/T8M,D89LFU>\8=H>LZ)Z&!UWBCT, M\WM#\,G;"90C0\ 9/);^C DUO\+1(TYH'R\BG/TS2DJTCWJ6Z'474IR:VI$: ML=8YD)TS);+C1:030Y]Y]:0335NP-1)W*-Z]Y/A SJ.,^1&""Q=.:6JTQ)#F MA-2EBS1[TQM#IIQ<,:KNUU&>V^^ #KY%NLF?F2ZOJIO(U3&"Q\W1FHL=4YK= M4$UI3A&EI?W9L(JE4Y(7E=P?Z/"=T.:^J;HK+RWJKJBT=XNB&S9BVF6)<9"T MT[0&4OJ W9:1;B5R&G^SN$)YCAI>@@Z&Y@0X9)H0&!-8K05CCU^3)GO:,1S5 M-XZ');R?#KZ]JXZM,:F6]N<4%ADUO>AV)>K=E)E3>IK9LX^J=HJQ_L+D! M$#&3B@QIG9C97NM3,+&'V?O '$080&M-;/9+>C=46[8)4'E9KW&A>C@1L\X* MHD*E;>S@)*<=W'HC1_&?EN3YIYBE;:T1M_J@ 50<:US_\_O6>CREN?=B& M#S<^^$6$=J")HANBX9<1K(*"&X1&/M;75Y*QWG_@QII]&,]8M[IA.]:,4 A1 M&[*+N^PH[KRDRRVDN+ K*W1P4;==: 3##>F>\=!+B(J\!:\Q"F8J?WHM4?G] M!T[EV8<18$#6#5N59X3O^!&VOV83QCW>J&[5@S0DZN%#ZC M[)%X&NW_?2<9[?T';K39A_&,=JL;MJ/-"#DY"_2GV?_K5C+6^P_<6+,/XQGK M5C=LQYH1"N&2GLIQF^4XTKAM[2(MIZU99 0#K>^:O M+F9]U4!!5Z$%#'F%,<$$V&U[T,@;$$'HKT'L#UI?N03NH%YIK@!W)2>YTFE. M;D([YHYEV]NF>G<^0]A0.5YEYM.7=T2=]45GVY9UUZ!_&?4L2'&.4;R(B/O@+B;C)EE&*_ZBD<4K2G#(V MCS:L-W%PL[C :93&.$IV1R^Z^]1.:?-A3FYH>[QTBKXW\)"1E/XSKMF[R>H[ M&9=ILP2FG7A*D"HPPPE-_HIJ-YK>[:5;$))^A"VQN$YX/[@.VXUG)X=I]DE1 MG;U!C@LJJA!,$D;HBU7BZW(^9=R=SH G$L M5HE6=6*VJ4VV3/81_CQ"K1+&P+@BUUFSO$?2.%*%3DH%B<;IQF%3I!Q7>$TLWBZ7-)O0#ZZV5:B^,$+4B&J$LP6]#UT -YPO&O/_\J MW*3L@S2?!\D)Z1%J77MOM$=I.]/!_4:K6VZG>\5G-O]7F1>5NW!!,H4SH? : MK6CP>1S,:'C7*.<^8A\[H/9]!]2^GQAJQ;+H!;7O M#5 [TEE?)8 _=["TK;H&F/WSQ"RM3!8]8/;/1I;6.-9^');V0P=+^Z&#I?TP M*=3*9-&+I?U@@-HPDM>![I/>H7Q[RB>YYBPIT;@[VBKA'5W.]@?T NAK]2]L M&68QO2%(>A-96D:,(N_G):IA;Z,">L^8HR@89;,S"'^68K=!()S'@*4E%J15 M.A04M#?ES3JJ1L1^\UQ+==(KU(.])X6A!.^( VDH=\2U-*8SX[D0XK [XEK> M^O#8O&] *GJM7%R Z_'O>>GK>5<".\P2>^& -M U?!R\!:9O/ZS==,EEISL4 MDV6*ZWC"LPTK#]%+'O7].L+OP'FI^_Q"C/:;D3E*(%+A3/ M'O;30O,ZE>L6O&L''-QD""%+=$?+Y>XBEVON0H@KD.A36RBT>_<%B;_=5): M_K5 N"@SU4O(UD2:6F%!9(3 [RJJSMBV8&!"6_ZVCN*5Y@:C,[J.[C5/T#5B+ MTR9MK='J2AO:Q%98CK7A2G3!4LM1@(&9\@4)PL],Y=F-4Y9[F\B6%=)RW.) M4&Y:P(0*I$\H*G@8MXMSF ]^]Q:0Q)!J2BO3]C=*3PN?9L(9PF!*.>DCTB& M^^K_548992-YW5T9O4P7)%M7]+^F43G'!5N2^WVJ1LGE_LJ]Y@*Z)15.-8VI MA)#N7\DTZ$&<3K2DR?V-:'FW?;8 $J;ZMQ>CQ X:HN^'N?;2 MN"C9_LP7G+(GT:N/M]%K-;/V'M?W* >#.5V%,]*5#].)\U98D5$_0:3EHAW.V?_#I.9@)R]Q:1M-H1U M[;"XODP?OI/_1E$FVTFUIF.'[B:="0)<*J;>,=YL>4('"/#>TV:1&Z"W*%E# MO4%IFF"7B6H(N#?:[FD9'C3@+TB9.<%[BY MW!N$)HEVF: & 'NCZ7"O*?2( M=?SLQK:W"%EC?4]HFEB7"&H(K.^;GNXQ+% :#RN4H8BE4NF&_#8=.^ WZ4P0 M]U(Q]0[[9LL U#MX\\)C3MSM&32:GY+U$TKSJHGK*,NJ;$3>M\C$_.G>!095 MXK? -95".#20\$@'*UW6>YHGK_LR&TS/OD?9'/9[1(3C1@;%R3]'S]E)!7 MA,YPAN)B(+5"1XYQS\TP!"%O>^SC_ ;A-?IN"1^3B@<(@E4, M'D06_3?$$:R%$$Y75)/69^JX%8QAEN.RW1_%13J+ZJVI#5H]=+C9R\)B H2V M(UKCC?2PHUY T&94^2Y$9?A\%H=EO,.JUV6>2B!#KO,X/O:P_#CV M[(>UE MDLY!R\4^FX+MJW9LRKNNB=6!#"IB6::,)FL'.WZ]L!3"8LG5CX%*[, M^Z(MS]_"E)?W#NA>\4K,96:VO]V)S8/[F7+V1*\8![(KT."6O?3),IUE."[0 MO/KP-<5%?I>7.O?;E$#+ 8<3F#S<.TMU8/S;\"M2B)'Z7@=J#[?Y<&O_9H / MEU,(%KX-Y8]C#UL5:NW]5R6H075:;VXKZ[P9H)O(SA/D-2R&L+4CS3&QXYSU M7S8KJ7+:61 XS$IA1&#RL.\L51^.C2&_006TPA)),RG)DLWSWYI)HO??_".W MC^U+E0"&V+;DVA>YS&'X&7"8R?.3M[_R4/-N)L5X(+H.B/*,;ZD<#'-((00= M!GH3%BT=:N'WQF!SW_T/=SLII:X;LB'?9Y444 AACZC+L$?)J;)_DW)RD-N6Y"4GO"'>4 -U:C/VD0S=A)RCWMJ.? WP+7.GGF+UP;TG# M.^X']'/,!.K/S]'R.:';\JHW1CGM4#Y'>J@$XJ+>L6X'1V(D I#CHFFZ"4UQ MD^%N1YD;;I/7[8U> ;9_N_K7B;U=+9.%!*S=7@'^-$&0:N<:V51SI7ENQ1UA MTSA= &'OV._5.7$N^B$]%A?,]Y3^Q,G5MI*9$"HQ=I;;ZB8[%>85RK3:P;4V M2#7_RN .K\1:7K:G_5K>]E?G(#P=IY9LOA-4'0)1%BLJDC^D#PWUUHZKB4?> MSL14;Z@1Z557>^S$6[H#I@R"^B?*JP4BH@*9OW>MUXHF7*FTL(FC-IN.0]B* M+.1_K\-_#BPPRDZ''_6">>0%<_[RA+/::ZG$HE)@E_1%VNN&_I15MX<1&$YO MW3 ?0@)D?>#X+KSW@= >KTE:_7+'>J*)& ?4E(2**VM.3"OLI=;_XA#*EBAN M;Z0G-*X<[.<(5\\G79"LRA'2\S)1UEQ/J\5VSE'AK48D;#67=T*DW'\)8]5ZZ*=4O@F:2Q+S?7TB MZ1TZ3^A?M*/*TTUK:L)#3PMJ$],PM](=\(C4@E71ROBO86G+[HGDRY3J>I)4 MD1&7Z6\K'*\JB>2_X21A.\XJ+3&G(M(.$RI3U@IK:0ZG#28L;H#_*0S@=YT4 M-Q;@@>@-P"W*ME]$RN.7DX,$9)XXF:(2!S&J_1L"7]T4WA8>'EBLIS]HRR:(GN$$OA0G\_)6GU>%$9)0\H6W]P?2S:G1-7!ZA=.)F8'0IG M5,,^E.W235',Q?NA Z?\NSB>_1K/SLSD+(?G\9N4VR+Q5<8:F%4]^)3G)9J? ME=DN^JS>%1%+5>9KV%/B?04;2A/36'=2'6:NMF%3&*-L'"M%I_1'TL-LNTEG M5+D(^+'$5_O,UPC&X6C5@Q*BOV6*#K]2>X05?+3$"#$U/&P<@6[(SF1!VA%;JI*ZD:^P_F"5KP*%>RMQ1B=_[ND M(F#G;UE9';_=%"N4/:RBM+E6S2\!%V(&;-Y51))Q\U-5>#_C%W;\DG'?A"O, MH>.:1F90N+WRZN-95*"+"&>5"?=L<<#\>3)) /Z.-FM0!$S*J $Z+[1ZQO%I M?>VK.=FJWXE#9I6&:,KYZ92HJ8G9B@''922G3J)^"!="0P?:^=YTW B)!1LB M[K9:3^$NJJ8:4_SI-9)2(=?_#F"/A>G&*KDGZ MW)#FX&L22?N#K3E:[4_9='@8P9&O&5J=@QB9MY8?K!TG>,D.@=,T6AT&J&PC82^,\(7GL<:R-;1-SM_05F,#1>'0;H['9B%9O MA*9@S.&6'3RWC9S0;H?X@111,L@:Q:1IQ\L56--3-A3#CMLH%C&P?@EW-0)Y MC<.1T41SI?X/T53KV+./IB:FWP..RT#'GGWT0W37XL-(XS]O,Q(C-,\O**JJ MB%B^\Y*9&UR/FW8!]2:F4[82&V3" S E='7'')S8^62T%0G1UYI7UUPOA_VB MYB:JD@.-SRA6N_*^" W T'GD EGK-M[2GJ6-9Q5ZN^=@VJ[C52Z@W2G;A@%' M;!3K6T"G("?X8PX1M)'>-=D$/+0"(J0"=6U'.K#@+(&[#0M'Z^)Z',,V-%;] M ]B]MV;(IVKKZ.*F .J.)TVB*FQS@C63C<=H0O_'S<K@_WZ:IT(*Y]1G"#KCQ$0(-O2@5[&*.PO3] ;T2[41^'S\;FR!CL M)FV4/=/NB06WBY*O9)179\K-[ZNR,* /RQY%&8/4FILUF/LDV/[%RLL,J/TP,92\D3!R-B/NQ'+=E MD?10Z':,-*D>2'8/T5?3CJ M#.!:%>^U=^$GPZPA%X*E,[W:Z<#-+&-^(R=.L7YGV*RKEFHA'"'GC;[ M[_EUE+%CJF=TAHH()_D/_HQ)=: V>\RK6VTRBR LQ*LU5\AS>N"]M&\SLLRB M]?XYZ-F:E&DA#<\SJRU*_@NI[=UT20:5S]MK+ F)D3ELKI5R%]*,R!P$AQ'M@4#B*AGLODC=/+OT#-*2W1*4A98LPE#N\?+%"]P'*7%:9D79$WY MI.+XC-CL\K3"\2Q#47X?K]"\3*B27Y%T>447!O-9GJ,BGQ7UPS[LNOD#.8_B M%5?SY@EM6O*^E+A'2V:VZ+B3K*"CK%E4Z(KS"BDM[M%4[89M,_9YO9JE8*16 MN3G>W+ ^L/&4R<4)45YZ'8EZ-W!:M)">)"C;,Y'P PN!$S#K+X4[9Q@Y.L_OZ+0^;/=I&A_\(D([ MT$31#='PRPA6.RP-0L&-M9GI."^IYX^^($'F9MGGAH$X_!P^ C1=,L5!FYSP MB=(P-G5G.8[H#%FE)Q:.MZ94,R8_BH.RA1%5DQ M3@7:Q;Q#NS,0"5@*$K#:_[LR*F-7NTD"J<7JFKA+!7.WNF MX\ 8O"#9?=3D$[8M"ZPOW8'5UO=NB$##+MQP-9.-Q JIFA?OKVJ;#7(KU1C# M%SB-TABSW*';! B"355@:0Z?TM+>T6B.+F(J!*WOIFFYB4IIBX C^Y]]HNLA MB])\44_T=? F3IB'A+FF M-KAE*G05^GK_P [ER^R5G?&39^I ,_Z%FT=&=3B0:^IX1VTO4"1V,I-@UR6+ M32104Z0X]%P_-*YZT$Z'F MIJDEHH3QG M[U _?$?),_I"2Z_RG:R<*RBH-6?*JFG-N^+VH7=.U-IDF"0J[K!O;@R ID]' M8\!2%#1DW'E->\X=>FE[ MWE6Y/TUTZMC#!LSY;"[IHUL'7]JW;B[^I]I$I&A941ROD=C*9^OW]&TD@.TY M,Q+:]HY&PN6 C]*KK.:!!.:WA'6G13$)$K=CL]NJC&6 M@/4S3!FG QVC$U1\1RC=V)//)9Y']-?+M.[9"5J0#,W2^6Q1H.R!/.'XUY]_ M5<8PNB3-*8T;TB-4('D$9 _2=J9.[;!(-]S"E&N4N][S?U&G=IL$]AI]ITMS MED&'Y<[,2$K_&5>9EG*%-V=%@]]X,J/A7:/<^VY=I-B[RV;('$!?6HGI![V M2%NX6\85D*0=).%[**&H,D#DPAK:C28 M!:6DNV,/]4C2J[:^-9+1-;YYQY*[J5O5Z]ZF9*Y16'I^#RB1YBT4?.61XMWN MB$>6Z#H@R$^WHW(P=F;68=C1^X)3O"[7TO$3?F^,(/?=_QBVIPM=-V3CN)\% M!!2F9>F_1"]J%(B^-U%P^#U8%"BZ 43!(078TB< % QW/'H%2SGI@+"K8]*K M@"YNNM]I<"[OWK5DQRE*Z#,FI,+9O8.)XEL[/<%(6K2?@ M#&OQ;R_J:HU77]KH)K;25J0;,TV]&\> M$[RLA,H>98ZI(![PNDJQ<$]_S1=1O!>X[&%.U^3%TY(#\A-5MI[D/XA6NN-] MNI[D:?2$BSI*=!M>=4KRXG+]%.&,[037D8S8439/[;"L>K:U)L,J&+'[)V M1[6I)RZH3E%EG$N[?^UQP?)&D?X\'0U=M@Q&TJI M>^_51N]_&>'S(=0+R$F"63#"?/=6(G433J-\=9&0[SZ?;MZRT^!&]WPSH$KK M3755%8\/"Z&"\4,A^HSIB)Z\?J5 O4PW3VNGRUE,5:!YHY+M#NS>W=;(R2UQ M_A$C1\2]FUD0FDC/4I5E]E#P=O#PD2.>)K0C3$5"ET74HBNVCH1EVCAOEO$. M5\?P(S!I2/#IAAD.R4TF]H#\=>R ;(2^/A!V&SR-<8(.^DN=$I@T=4F@>FQ* M'J;OL*D):]D 8S.8LO;3%]&;?1:I'PKO&G^&*,\QKN1'_YV@"L#IO+F%)]%@ MDZK\#3505>\:UJL>D$Z2U-]=<,;QPS#=.UY!ZBEXVVGZ 4+;!L\0*L MU?)Z-+7>C J8R<^;KZ-A%/SX.K",J]O09A8;MF9&0[6.5A?F M#XDDA=^,2H"DY0G^,MY$'I/Q$6TH'M/YOTO:E7T:U8OG:[Q/H+K5<]G]#:/* M_#4.8.4WHPM6TO2D&U!> =/"KV.=%JH82&H>SE#]_X;P-N'$FD,3O4T^[X=E>"2AGA9T5&8Y.J6IT15?6N+18H5NJ M5C[2!'A0/M28%K6_1_.G\3_+T.[R9?I,!4I[B.0YB %UM/@]J#,YX,HETC-B M#QH6;0XY>1P@#*A243Y%>+[=(]MLCD$N>+793FJWT:N5L\+5 WLJNWJ3P[U:,@/Y*+O&1>ZV\9% N.ZV MZ%V)*QP]XH3V&0QF$!4MM#54)@=T$ZGU#'L-*TYW]H,Z)A.(8GM#9_[,;N7! M?1Y913WN6Q6G!W6U;/I&=ZOU2>W?"V>QK*2]V&BPR>I37A7BFK2J3@[)6OGT M[Z"TVA>A&;ZE'CR:J]7%/H+/ M1:"OI-=3F%R4$<*JV>D:Y@ ^"/&&^)A^&/ MP*]+R&^7&1*POF(9 /1[O9=F)\PE:1&AJARJPK"=V[RON\R6Q&&* M9DSW[T2U1LHCRJ/>#7^K64='X:)4E^ MLY _R2R_:^".=OM2@@O:WM7*L9J0?J5O-NT9=H*[RN"">=%IWDCO>#E$C/8[>3[[!T96,D'L@L_G>),V2N*N84>$TQH3!E M1;&6Y'!Z8L+BI$ZZ6SVG4J6B*EYODR@MZ!S+PG^?6!&HGF@)Z-1$0> M:0E4 MCOZ41,%AMQMVH>O()15WNL34/"CCI<#U=!K1KO>6%$$C-7_X;S,F@OUH[\+! M)=AY6ZWSUMFD-<):CH.IA@F'@#UJ\RRH(>]17^ T2N.>]J@MB<,4S9BX=R5T MM$?=3:K][%$;\Q3"DQ5];'T5)/YV4]F/_/P%93%NY^LWKJ?:Y!+7\PYUQ]"5 M[6P!I&8VS1@R*-W.$C/F)(-9(*#?^)MW*&'^X -YB%Y8X.:*)',J*K8S89*M MH"LYR2+%G-R4-<>-C(=3*&M^NQV !K;2:=J5RSPOJV@2Y!M0Z+U JP) MB=$ANX.$.B+;K&4W]QB#L-CBCL_H9)9EKW3>JEX>- *TI"X(R:VZ$X&P6B:] M8+?5I)-SD:=*(RAGF?\'*WJ'[N_\"^Q'\(JDX@^^QG<5:_B>IX<[1(,_<+AY MGK6D:^HRQRG*\S.4QQFNE@1LN8V7*5[@F$7!U'DEJ!QN28)C%K&\^;^_1Q!O MLF64;I[XV+_56+/>!,/-8K/\B9+],XZ:4TFGM/EW-MS0]FCQFDQ7.'A]H.@[ MH6U^DQDZ0!7>NBFK>#=J;A%"K$0E,7E.6#NPC4J6)O3^X3U:,B'M#& MV+W"(&Y4ET^B#:L[7=#;"&\H] -YF]#5N:\YNEF4[G(=LC$A3A@\X6F MBV"E.(:"*L_$A Y!)%LC,._#I"YLK^OMF&8;X0WFF,!X^C"4Y;W#8Q M70WK<2B&TDJW77"R*1Z&)DOO?L+F)]/J[9!'8/7I:I>E"(?2'#A[$TKKMST? M.B7K1RJF*OQ,.5OI*W#(5U68+M;!8AH*W2J&1'C^ZSCQ_)F0^7><)%1,_&7G M[2!J.G!++J,S/9UP)=0 M++N,3Z$.C?1X]XHZ> A=L2!BX $:H :G%\H:T]4 N*"&PKJ2(\ 5H/:_-46V^ZL#<5VG#;G%J^A)@?Z>'P!4[ MI;W,HC2G$F&+>"K!ZL^DN:;7Z4)G>IR.=* W7=UQ)>2A=*H#OT)=&^G!]1T5 M'47/ZHR:F(14.\ L$H6LGTK*X#U9%-\IIJ!S3@=:K7G(BM9T];KZQX M%>K52(_2SU"&GR.6\ $X2>DKA/@>Z:GQ'5J6":/^>IG&9(T>HA=-\#6@ M1LM]5]28+K+A@AK.%5=P)$3UT >^KI(E15E*IR>69:3*KP;S3X"U^)1(NEK3 M1;B9P(9"N98KX0VRD9X=LW5TAE8HS>FBH]9JDPN^IM5;]]FAU:>K!)8B'.Z> M.Y0]2++)D9X.7T0XJY*=-,1VF5)AE>M]C(GLP,"D+G\X *L[7>6P$=Y@F_XP MWH1Z,-(#9'&RV9MM^U^A[(QE: M1E+ZSQ@U9D'88L*63"LQMRF9Z6F&(Y$.-168LRF<'#G17Y!$4L[ M6'7ZFNT8L[GO#!413CPF%-RQMT^,J,L3"*DB6^<(JP03/,8RSC.6\BL*$ MPD_ ."QNS(B4.F0,2,J[D0/A0AX$9B,QB?U2<:((ZP)R,*'%^NUU'V>K.@ M8BVB%W;;O'AME3I_8?_T/X.*^Z"90V&50#LA($O")TC[)G'$M,R$/TV1+8#9D M1[Q.B?,GP8Z(CQ#[OOXO2GW_\I9&6;94YBWLPK;L!D4M&9R7,@A_U2\8$EYC,6AZ0^ M6"JM^M[,DL70D^X2XHP0G EFCBP:=V)R$M]+E'VGMXDDV351=M$M>T;Y VU_ M]H)EVVQFE;G)%UHY8!C+ $DZBL@8RAPCS0D6R@!@ V]JZ#XCZPC+MGY,JAHA M>UO5N]=H"$TPJ(6RD;B(,![@>-ZV'1::)4$Z9ME\OZ U=1A%$3M=Z#3#=^SH M!(YC#HW$G 8;@2-XNS33<>HI*XPBFZ+-":7QEVHF&QU=&@,I^UR&-\P?",@*Q%V2443B=:!DI@I36VU ,F"A]*(J4LPEY0YHE%&*YA>A7 MNX.B=G6S#?5&];>A"U*!^8!_DYENJ]]=Y.:2754,'/,._*'?WQ\](GMA!><3 M&5_]KGVB\_00ZH/''%4O2[9O1YY%1;0/1Z*37+I$^66ZW0C;9I+;Y'"W#TR2 M'(XIN))$')E6:QY]@:J%L!EQOAE>+I\?7;=F=!%KLAEA3$FZ&6% R9O),@:' MPKR$*:UB0K M-NDX]H>F&Q]1&+L$J7 0I*2N,':8&@O%+20AS8]]7=^#)R%=R1]]":%XPO$F M'"W:P\-QG2E$>NG0I*X1IG=U1[G4LY&+@\4=L-EN$_^A&7X8P:KNFJ1Q!QBW MJQLAN5E]@F"62J=W/#=;[BE>+KQ$,;N=U/N"Q-\VJ47C C_3SGN_LGY,#"/E MC"%W68']Y'5?Y#9ZK5Y_8RY(/9;Y35GD[+$5G"[UV[#]-@:3>>?&O#NOKA+; M.)9[3XEQNG,YH>U@AR*Z+A5!^[VUTY^.;ML)53U=*5L_:BT<)3.-[MC!GBS! MMF.3VU/O*J//S#?-+]/;JD\]V0%Q(XZ- -_(T0*X&9_1JC_?*RR0A MN !L(56?B9R5&IYF3ZCU\J4YH;>DHUWE[$\/ M+3B?5"QD5Q&?OSSAK*K3]T2K:,GQ;"MLZ2VI<^\C-=IY5]@UP/TO^&G4Q.P# M'8,%P@7+.MZS?5"TY-@^"%LZV@>'(S5:^R#LFL@@P%]AFIA!\+8_)PWE..[0 M!;5#!XTI"=\8 /?HC%^4"B=2I;L[5:VJ6*Z*7HV!M!WG*X=6.T=3X&R41FL( M!!T3&8)?W_R)W6\(+U?4RYD]HRQ:HNVFRVV&8\3&9C'4V;LA(_UY%&!&0K4S MPYS9VXU72.?YX!Z$<$E@7);#K[GP:R/"-0Q#J/GPQF9PEP4H$@]6ZRU&).1& MY[9]&"WW')@:+I<<'(V7YU$?IP%S*8ZWY&_IY+85C5<+9L6$:R-FR,31COD? M^VF:,D.)A)#&6G+%W,G9/)I;F"9?S3>OOP_:_!LW1Y['.RA#-+PLG-S6GHA# M)8@7\.%26;+AVJDR9N.-V[% QC\H>^9/)MW"?,9EUZ:P,3]$0-#1?(6S->\A ML&ALF_/'4"06H^'!9!FVWE_8TM%@#6"P[$9[DN8*+(J> J8&SR=S2CM-$CQG MP=R;K./W*X0*GTEBMEE_;A:[3$"W),>B^)W6#4MXU=:=2DA5?Q-*_1J@IO_B M0EQ/^4+^K:C)J!%@;V7F"=!6TZ#P;3B)(0CE9O-IE*]FZ9S][_S?)7Z.$K80 MG16G49:Q5\K8(P4R%\.H+H= 8%WOP)0 C'23@@29AXTU,0AL9 _-C^.'YI:!-3@7Q90U1@!^. ]-H:_1]BFPEXZ-L;9[UISV3X(M41'96_-5D1%@1]$G M8ZP+U-HK1Z"OG?)7YBNWIRQQI2I>4XJ:J, &\&?;9PHU2T15C[ZSBQ=DFEDBXQ M5:M:&+1_YR]Q4K(3JL^$S+_C1/:8CTG5UB(/4G4$&+20@<6B$-*&:-;]-%;' M3(,\#;I&A2!7*%$CX?UHM\IOJ!VF4DB75RC*T1T[M;Y9?,UK79 M]2!U^%6? MNLX(D&32:_.UH)HX8'_A_6@WT1OK8*WSKRPKWV@8F:L/Z667[0:Q8]\P9\9; MY*%@27@:H$45L!;D6&9D2#/KN9O#F29YB&$;Z7V:[9.DEVE,UN@A>MFYEQ(4 MZBMP %15& 'VP/TUAIV*,@1Q(]VKKWNIW&A5[K". C7"?ECNJ3:'_\_[X3?> M< ]C-_4*1X\XJ7;N9NF\2OB_(@GM4LZV5XI73?B?:74.0O#JWD%F&S)H*2%' MP83PUB?U@,K6A;B-7IG_ NN$1>6^&]\8>_X-,:9P*%32D""2&B[(@^/;V]2 M\82G)*TZ_ALN5J=E7E"G(ML*ZU6-2).J?* KJ.JHT6HA'8?8A;4.<1A'ZB^R MEXXIQWO1::VKNGS;P,K*CQJU4#FX-;.R)D66=K3[-X?[H$ ;"ZNDW)">F%TU MDHA#F.K:=?JZ4%"V%&Q$P=9S4K6:UQ4*>38)7&2,IN/TE@.+4"-UCZFHL:HH0>7A=-=2T6CHM!I MXS#5,*R<\0&F\9%ET(>477#9]6C2!I:P \D/'4)FPX#E[9;GJL.J)">*DNU+ MMNV2WA%HACE];Z7GX!!X",_TRG69L(QLU:X3RV27H15*<_R,ZJ71%D,896N 8RUQ$>$4. MRI"*(T.OL2PZ 1;2F@BCHTW(TA8+>-D"7JZ,#G/:OG;"F(BZ"%,C/?33KUP;MX/F!&UOQ]_$*S(Q@_".Z3. MPRI)KB[)*GFW+9 Q%=QE @E!8DP438HN-\F:YW-FH[!*G0N;Y503?/-RJ,"([&_;=&(*2E M$-Z][0N!S/W9_+9)LGI')9D]5XNE*L(G2O+V;0@H7CN2UZ';FOP4=,&-;-UK MCC5?$[J>8">4WR+V]E'QNOWD5,MDQ)WH6)OXF]$PC5P]Z5>;JPDER6Z)Y# ! M"51MQ+5T^L#7F@+0E9)PCV"^.2?/208*3=ALF"3D.WO.[8)D9Z1\+!9ELKWI M[];5 C3DQNE2-C0%G7$M;U^.F)+#$&Z9@#33*N-RKES8I0.=*[)8K-+RJEZM&XSPK: 9),#Y..I%DWJ?Q#QK 19(T0.B% #H,_ M"=RF$!7587)LL; &?7:/.FDL MZUA?'6CTL'FS!7QG0%%)#CQA)>\0M+\SH!>"LSL#PJ9"2&JM/U9KL.[DXH U M/GK;*F!(=#QGP<@X+A,T.L:]"*@[0@;4U&.X77,: M:-5(I ]@2C(:8 3'1'D M>Y&CM3:XXF::EQT:HI#E;S'2$AT1D%;(B4Q&"X!RZ@GU\M:G>=6@T?6OZ1Q3 M,>''LD#SS3G[-A>,$=(AA$!H5Q.:#.(-Y-43ZM4<3/,: *_TYL; -XN-C*.1 M71PU\H;!' 1MYK'L_G-/740XJ]*[?D$1VQ:O$J:+?R39ERC[A@KV@.D]BLML MFYQKZZR\Q*LH7;(;*2Q,=/MLI/]45;ON['?_=21#G.']B8ZT3EBKY,KMWI>[=R(%B1_F4K M,8LJ]II&T2%;HISW(XU-W3U/?IE2D97,:,Y>L&S:UI3FE4!6.AQ(.X,H,162 M#LU=.3N OHPCP,K(&->);T@_9%&:4X:K%)PH>\8Q%MTWXUSB-4I!!A"M3.C%S315RR]0D]>[K_4-6&:A7*J//Y!EE M*>OT%[1^E&Z2@>IPFJ&IXQWJO>"7V,E, GB7+#:U1,-:P*$9IR1[(EE4H#/T M6!PL%$]15N %IJ28',[0$\FQ&-3="34#-RP)31;^SJ0[D$YTX7>O*._''DY2 M^;$G4?P-S??]5\X)@!K\8S2J&I-5"'-Y#3P;*!F;4.Q'G=L?B&YU80[8LL*3 MQS1(2@/#6<:3R%B/-+YCM_MP\KK[YS\PRB@P5J]7Z!DEJLTAH\JR#5--9>_( M[W?KR$:$@^XD 1F:_T:0 U9& 6U0@'ND8 %"%8*Q =7B$<"&$K:GGB M(/U@#-(/QB#],&V0B@4R!$@_J$ Z=M>AT<^/QB#]: S2C],&J5@@0X#TXP1W M+URL$ZYPBBX+M-8N#5VVT4/(3:.-<%2GUX5F#P/B93WJIA\34FMVURXO#JW= M/D)*HJ>P2JT'+]65)J%);; 32['UJ!X[)ILJHF-NC_F/HU\4U#&]IU0D*(U? M=\&\6TF^PC6A"RE^8K(B-7VM<2#BH77)CF71.^7&*QI1QN'! ^]%L?3[UY]% M7[W'T0O#_]5Q]) JG(ZKJ_BSB/O!^4R7-RPMZ4W:F!!4(?(F53EIP*IZMW"@ M<2:=)"(Q4*J6F_8&UN(Q''WDX>A&P'(5:0YIU&$0^3$>_!@/?HP'/\:#'^/! MC_'@(9U''N/!1PK_8SSX*#W\8SSX,1[\& ]^C <_QH./ ,G[_0 F&<5.C+R@ M]+!P7] [>FWW7[2]=K3U(FH'L&1\'PYT3JE;LZ0,UGFZE0817E$)+7%%[U!3 M0$8*+( ,I$\(\*W)825N)?3-O?L5R8H'E*T;^J.$E[X"?YBAJ! 8G)1 (18R M ,%*U.K!(8:BM3XVOD)YF[7*/GE%TJ4)/&&5.(CJ*HT4ID:R< )578NP27>< M<-4X)9=IG)1SZCE+\NDUBOX#)?-9P7*\UTDO[^FH5'&W=^B)F@(TGZU)2:8)'PV',[)A[$,:\J[:M[QR"\/KPU4/HUX3V4F;/$4Z8E"Y(=A\= M"*M^^(<]'BU]L]RP-K^-"*T=NA(.J4RDJ_3M]'" +AYL94*[YB:Z-H@$SXH^ MQW&Y+A/V,&;U6N+7-$/UBR]LK$[0@F0L\[6YDIK1A:LOE.Y1L4T5VVK$QJ[R MT$Y/Z1C/0AIL!/LP!D*Z#HP!1_=H#)P9 ]6(3=88<)T6>09P)SVPYZCE\C#6 M_7W*%GE);H#L5DF6)&M-I?\'A]9L/1!87[ M]K;3;[A8G99Y0<+9<9L\)TL&X6&Y:K47N@XW]" M&_\F$8Y17?Y)'%A=[X;1% "DFW@DA@S(Q<$3.K#6^SB_"L/!%PIJ\_KV[KHC M".<=*'&HMZ(T9AWH+CIW&F'%2Q\'9OT$?.^=G8TO0B?A),ISO,!HSN1T@I8X M90];;@71N%/\0""&O_=VFN'B_;0S1F4:2NS=5:U'3MV= @WN%,M>5F8+DM/J M\;82,K6&F1!6(6X6:'ZCA):(4KG1?2"\@Q52_2"8+;.4-?Q?H==T/EK M5-PL'J(7C0-N4+,UUP)J>@ZN$?#(96BH8G\IJ\Q I?/JKZ0V5_-_E?7B=+]?:XC7#<+ MM _NFIV:2>AI0/JU NZ8!BC^2"^ZFLMN($4?2+&/BFPE<%^*ZT!1_SPU[QYB MYMS[\XY;=3A#OTF?O9_A\#\_N_++?YF67WX04NE.J4W) K463G9J:FDIT'[U M#LX40+%^G9YBJ:7RWD*G@!0-U$E+<8J:9";&_I5(RP] ?_YBZ8X^!*]&[GU. M0ZH&ZO0F?48[5CB>L62SUU'&RC\C[V$[]VBYO^/ GAE1Q^KHBO/9)Z3%O08-[\?K M#N??5 ],J NW0W^%A;T;(^VH$<,>RR[C2-KA0G2%]*>13[S5NY-7359"0 T= MS)HUO&--@Q\5TJ0]E\YCHJ:48&LV,:%0H;8D:)/*UR -;36K5$C/-@)P*2T M^6KAX5&&,B4RE=* NXP' M+:LQRK9 +LG@(&4^/X!Q#;1,$?^X3O1CWRKD&CD&X5&-O*R[G4:^0;1 ML#( [1BDI0!:+R@F'/UFL;&-O[2+W1#0).O)<=!@X(*4F1X"[5(B!#1+C0P MT@YV&O\FU:"NC8'\QMN,S,NXN,GJMR1%\0>Z8@UO45QL)&L-0!^M5AMBNGW< M/G0=U&*"H/U[I"B7KCRT9=M8$I7U:G>4,"%F_108'A%Y#DDBLGTDM[&'DV0^ M^I+E)U'.WDM.R&AD/"X]L2W25:WQ__1XG$8]&6;4PUBK(C\5V@ MO;5R8!3$85>S!T9)'5O<9%;JD&C+-E$B+^O5PNC'GIAU5F!DI&WL,"*G'?JC MR]+W7&B:(4C+=1E+U0# MJFCCX)I51H9"@_YW0J&Z'2=G"4&CT 1^)KB;!N!Z1YKCE'R!/(A*AJ5Y%@PK=;T(D'5_*G[9C=[]P07>Q4(I\LJX;,B^P*T M&F<$]-6\V0/C,2;6TN ,!+3EIIG0MQC"$JW#IO(=>YE)'>SXI#"V(<]>E$/N^C[P<6; MEU$,NZ(;P&$_I!#NS2N7_FAK80;W2=MK.K!?>A70 9*)0]%!*AW\#;-6)X3; MR_29BHQDK[_1#J$S\EUV?U]>D,.DJ&#("%3NFVA[;8XYX?:)J)T WR&4[$R< MH35)\\T6T:XK7W.T*),KO. 7XT9UFGL2^CJC YJ-+#IB#MBDZ*)K('>69G%< MKLOJ*>/9FB6&_..@&[AU:FY8JXDY2*UQHLY8'BYP!VDTK,M133;/7YY0FJ.[ M^AGM!R+4(AG\.M Y *05G9%"M+O,G(#6BHV@+GD9.X9GB'(=XZI;$I=05(1S M!@^+C Z$@)XZ<@ /6^CIG,P'CBYP2CW:*_R,YI=43.D2TR77+,]1D0O4ZAJ] M% _?4?*,OE"!K61+9C=$.:QV)3I:=#N5IB-]Z,J3FV>@1JA!_XTBEFS B>)P MM#KIRX[6&U$3L>R\:,>.%3=/.(U5*5C^!7=JT:3673%J:F])-03R\Z<<-3/= M7F@:N7JP]!3.M*-)K+-RU,3>D&X(I.=--6I>W#RP-%;-H&7=:4:#6'?-J(B] M)\?S]I]N(5EOC.)R'Z,Y?BBRBDL5IE+W.TOG7M,S+ M**E&1_,HG4E5SHK#JGI,C1ZOT+Q,T,WB?+% <9'?I!=E46;H/,I2"F*6'^0T MRE<7"?F>WZ&\3!BT+ZB^G;_@XC:)4E5\M6/J?/IU5]2]6RPC@)&^Y2LQ8K3F$8(_<]<;09LX_JB*Z8MF@Q0_BEL;_;>]JFQNWD?0ONKM,DLU=OER5;(^SOCB6S_;,U-Z7 M+8X(RJK8V,Z-&O_'!6P/H=B9SZ__PK]GS M82>K=9]4Q--UZFBK'Q>G=>([(YDZB18J/GHC0R?.T*E'4^:AFHXCFZ+^I0V6 MS=!.+Y9SG-$&4/TPZ(J^?DS*$M^]N1FWOM@;I-W M/"N]PZRW$?R*!?UZ*&O8NV E'=[F]LGF&!Y6+/RXW<7\R-CI&%&=39;4II7W M4=G&AZZ@A"[OYI[N6(>TJ>>65&KAX!L^2XA>2NV7Z>ET4]AW%:S^$?.-$M*T M1@U,ZQK-"=1&#AH.U3HUAJB@.OD8W77FN]>\[[?&U])VY-ZAS .[DDPM[N_ M,:EH/D35*$?FG1V3]TN2S7FJQ:8:C*XYN[3I)N\5]J#+Z0ZQO!^XAV[9 3HX MN$+"\B]*;4X3X=_8_H5?L2>VXILD^H.%BW.->RC2:=:REH61V')>D.WNM"%! M;*25O80)HU_H6_SXW8=?A6ORU(XW;"U\$,H;CFGT]2!%2,=DD]_NN^9;.804 M&$_")[:/TB+U9)2M8IZ)SZRYY->!0RLSN@&'*9]R@]]0=8^/TJ3UU%O59/(! MJLO7YIT<@N91)BM0?QBN$NQ#\M18^7,WQY:D"5U*?HY>),K M,JG!,\M#3G(5@E\>,&M975)36SJ($.2:02=?D.'2N() %>;,E11@R 1M4!26 M[A]F8!KM:EB$X_=5PX=1VX@\@M9&DV^I"U+RO#;@&SFK8 C!5D&W03 M@CNAZC)]U#3I-K!Z+O08).#U"X]#EGP.XI@=\9@63E4-6T%4SJ-3"2A.M;\C MYB#AEZ 5)-1A)%W%G&_%M+/G"0XDE*B*(X!H'C#263\$B@"9[E8D^C-/BL55 MI[4D*/H5I4)4";;OO03;GWE-G,IKXL($"&8SR?:[M("3_%.9QT3^[>^_/33A M4O_7,S#._^I^^A+8 -/<)1[B/,N <&FCKR!2IQ\][@"7IW7KGUC"WH-8.D&!6D(K ++*5I[BE>X)*V!5BALB]94UQM_$OVY$9Y-1J^K*]P,IDD-GHXSM4-AXB-R>ONH-:G/YA''6 MTWJ82E_(N]0R6OLD0Q,L73'T"GY7-B;P!]G,#?YZ7PT+?U ^ ?Z>UKNL^^(Q M.,IS"UJTODFLA'))[#U@$;LMP[*40@"?IR4E[Q+9O:(W]L*+E3Z".Y2N 3F MSD.TZ:SM#31 %CCA1G%,JGTL"[I&[PN:9@Q+);GC[),7VY_I2=2E%"L:-^ MG*K1I:Z$Q;] 7!&;?CD@90 8FUFP=F MDF9T':'(8+T(B^6>,NVXBK0!1)AT\F&P&Z"XD0N0$=)(=!6:L,@9(;!TQ/,^ M2,(@#;-/NS#8L^^_^_#3=S\K(6G4MCE8TMI.#EHEYG@_7R!@A436ADN:J#F! MM-9]KU^#9"-V'=4^'"6K:!>K\C1VXJ&TZQ;O';FD4RS[@BI: EEM6]>V^6DR.<#E ^B!NQS,TZM2Z1@M[JN/7^^S(I MM6*I8%2I'7&%(DOW#KQPT4SR-+-HTSC*R^%KJZ<#XV CUM(WT5L4LB3,GMB* M16_RF?JI)I2 K_@?BS;),S^(!BU*64GAPWMKGFZXVGN M/KA<^&1:U,I*3Z"%(_T"/T&9_-,H^U[[N&4*?=T:RC\EZ:5,B7#1%4O8.MIG MUX$_TQ :!RV]1$FT/6XGN-'N-=F4'NDL MM*,]Y]*W((0-)J0*R@&$.(_CH1UK"/T!U'%KO73JS'GEJ#C:1DE0;!+86\0/ M67R4%:*$PF*F*53-O50<]!^%J9^2,,J*_+8L/->F@CK,D')JV9H&D>-\MQG! MO88]9QB-)GK[A'2>HC:;6%Y=_"#OK$K+Q!8[+M)AG71?).%E,%BN@:$#OMP\ MM)AJUQE$C/,]9WCG&G:<013R^R46L@"]..B1)4$L+YX)A]PE0F>6[1>K57HH M[W@U@NT6.#;"\+TXNMQ+[+N,WB&LR)[12S'$#Z*;1SP\7\R\8<5_S:"OYD$# M.\;#8WB3W&(-T)@T",*>OO;JTI75;V\M<+0PED__CG?@L9STO'>@L5SYZG?L M=U_(9N"!Y='4ST%\*+YV'//W(%D5YV;+Y*]B/\/3XW)]763-%2N\>YZUJ\#; M859=V/=@YC*8K3K*<)'>0RR4@G;LUV/=][,R[5*QOZ@3?1$FL1O^GBS7E1T] M_O1G8%&&^]INHISO'.,XV?[^MIM2;KV20Z:Y![:_CH,LB]:1?&)U.D.Y1+X, M3K.(G BG7%I.S@/=BHOLG(II95I\!S?%^KT]Y36[XN4FD:I@8E9KPB"^BFR 01[FD*20,'G,[$^@.\P:@[OB^,9@9OV$&#HOLB$@2WIV>= ME503CT$4BNT$ EZ<$,OA4"'T 7Q: \W!!;$$P>/I^>"I1YSORSRQ7;!/(UFA M#0&1OD$#3*H&/H"*;+ YN%2LP:>-8Y_@(9$J7.]BLU?>V9(=IXFD/BRJL2EC M%BZCS8)3#*-1QL) 1'J:0A&X0QBQK':%L.$?_8+0D!&^("0S8E\ &>,@VJ*#JX#V0()=[Q&@.-IP(!E+IW(G&/EVS-$-0+M66CYRO^5;> M-RFNVGY;L2PK#WB4IQI#B6G,+O;%N-S31G*N^2 ?\V>6&0K+XHAO MEX$J"?_W$,31^B@F;VOI-$GUE#^#.IQ2(&1(-DWSAI5*R]2&(]>5OGP5M7[E M=WP1(+@2:OP#<(X%;M7:U'VX35K4UA DW+;W&B,:7:5+Y>L^J@R4B&STL2L? MP<5^^B#61X&\P3?=(N:?!^%/38Y?F*BY@&@0V=O;-+R%#1,DVNH. Z>=//4/ MXG%N9B62P*?._++*QYG.I=M='3*QYLJR&Y:MTFAW&GN>Q38_6D>K(-E74AKQ M.%I%+)L\(_1\WJ]UVN;Z-$;,VB('Z6-7>+'*3J?FV5 M=[-0B!W>%E^EFW]\-'-X7UZUU^6=>4T^2MG%#[?K7*PB@0V=RQ?IG76%KNR[ M<7V3M+J_EE:Q5&!D?WP(ME"Z5!U993T.DTT;0.@-0TYV 10FZ"K^O,Z&Q;J; MR9>$NG)ULMBD+.^333MON"QT!T#1N&T%GP9M)]T=*K'&^_D!V/E!XL[X,Q#C M BB11<.O[/B2\B1:53(@X%E,]=35B5]%/2F*S!'"31T @(DL]3+YJJ2Y@"E+ M.X G%LLS]T?IA9$<0HL&4)4MW 4H@#3> MQ0VFP"SE5H&IE#GQ-4^6X#.:QO_58] 2U_\W\MH#)VB+/XBBSH MVH<;607H\$%#H\"O30A-/D;!WY[K#( .+,]<:I]Y)N/$J4@-^JG!WRL?N_'[ M])^[73%39P;VR^_5OCYOQBQ[53;"Q@+^D&]8^QL.$CON ZRU[^R.+R47CN_/X*@ MKR6NU9_&B;T#;1MKW- EEE!Y'S7?IBL4*&'WP;4PP4L:A.R![]FIF*KL;.?" M!/+!;W[E/"PK T)H[,JC"E)S'C/";D\'#@9I<[W<6G% ^LOD07F5]Z(<#17/ M2#,=A%O-9HY:M9M&!6I+E9G>>?B4L?4AOH_66 DA@Y;4.P_5EO- ='=G#0%J M(VW*U<6/OI_$/1SD+E:F[-GQ5'KG4]+._D0C;D 9(YX7>DDN&1*PF +0QLN- M:+,Q1G_A/'R/XOANNPNB5'9&F;L7P:B:N(%1C'A>&"6Y9$B,8@H0\A,Y$BLX MQ?S.!16_O$:KU_-NLUP 73&9N.GF .[9.K*HKG>-6%0Z,"1$I/U:>2(1VN5 MA/@*X#C#B"S%%2/-^Q?AX(4$-RZB='@ _L:2@UC,\&WE<6G4JG)-IF\]!T?I MYX%24\<,.1XJ= Q.X.D!97%R>,YXV?#_F:1WKYL: D\%&SF!OQ>;ARV/YBJ M1@B8^5IGLATT(0WXU&;-E:^VV;QZ@:&;!ET5:U6AH-S"<=OH.6B7^U>6ME-+ MW@3[(+]RUR75++*65XA"$L.:-JNN\TG-IAM:RKSCYT<]QU,=]=SM6%+IKLT; M0PV]^;1#CLFWY[V] XTP! VJ PE=LKLW\RTFXM"@F-Z0G(;#<^0:>\0"9BDR M77A08'WD5;S)-!R$C3FAX[$!)R\!WM]G5D=I R5FE#E)8?5B*V_L_'$JX90' MB$E]P09+>A($ DLO>X=%+UKH)OVT@?J+IQ<2R_%";!33@]"]K-)I.%-0&: 3 MA)Z!E\CO["&KTX%>]HRN,.9>>N#)JMB@F&+:M'FS( NYN9=X[N@="VBF2W;A M;J/U$;IQ 'DV_V@X3INQ04=K*ALO,=[36U9';JH&$.;'OO=HN23\Z0CSZKB0 MMF\*AVFK6/;D@A2#)W/Q$O#]?&4![\8*0'"W<.]R]&.*LC06"\OZ5\OU\UZ8 M*3-T"A6+.H+3E<:[Z 6II2E]9]2V.=O0VDXX.9\5A K8J8DP4UTI.6?VW3C1 M7"2''$E8;7IL"'&WR%MW3!76R\KC/)%C@B))+:D-ACBXC3L 1#/,FEBM UXK M6:R&^8P US!0F01620O6*6[1N@,L)6RXF=$Z?$&RJG!#9,SH+%78MN5)/KPK M,\*C= UX 7230TN-%$XW$H$3R+\*(X#OC""T6*T.VT-^?2G?7DA'I.R5)5GT MQNX2^>I/"2WC]NU[;-3V_D"QJU.Z0M1 WHS.YI]D>?.$A1^#-(F2C;HHAIJX M=>48)O8'@21SN\(-8SZC0^_+(N,>22>I)\3V!A7"R?%DL"' [.N^"ZAPG-&H M)(;;5%:"N6'%?^^2]O;[BP]= M^C86.:,U(A WQ09#C+ U&+8))\=>5U1Q P<@V#,471].VR*A-[K&V-OEKS%% MKTCWTR/P57R]["[+#@P;,2&2)NIJ)+/ &V[T $BK"2LQ]E/W*=L*QI 7)+E= MA;8WAU0^ZLF%?0[B \M_6^8/=+*/WUBZBC(6+I+P,\OD\Q^9C"S;I]%*;*CR M;&0/3(;1<_L_?EN]RE.T<)$]%LDB&X"<1GCU-T.OIW4S$Y/<5]X M8.R__A2C@WE*$MEF3Y1Y#OF,!Z";9XUM)]]^;I?<^S[%;+_:F_ M=A/=\N[4,5ZU]A2TYMW#E#.]D] YS[RK='3QJ!V&KJ/G%\I5JV_0>%4 K1,C M*,!FR,CG#F/-@0,%Z Q5@@)XGEX\5R]1+70."B=:[U!SFG'W,'#A:/U#K1/4 M03Q-$;P(?S]D^WP*?>&+,(R*M$&/013>)=?!+MH'<>Z&KTTW/#'AURS:LV>6 MOD4K5CCNB:WX)LFYY&,,=G%G)+&MC*U#BYU#/QWYX]COU,,; (4C/,V+K%HA M?-SN8GYD11#WG%A/+IT[K""UO P6D0I><^B -MPX[E)2H1745<9.V3S&:A)U M 7YYJQ7:KT@CJ-KTFHL4O!LM1 'O7'RT^8-(62-FB; MS@'\'9QD'^DT)>:4IUI859J(X!>D:1;ZJ]/, 9$JL^U#KR&MQ-A?NF1U_KG M6,(;CWS_\O[_[V'+!=+CR(K@V;,1^/IG2_GG:?#A& M7X-KS8,RW5!$R)[99NWX.\5?#1^]P\@*@/[(J3! MV[G'9F8#R.-YQK@)]JJ1!*0#AI0&G7_0H1AL:Y!IR'#NQ:L9E&ZC;!7$A4VW MXM^:FV@2+0 I@-9?6.D,MP4M0(YS69&[P.MO+$AIX&I1HM"J4/H.+,QHN["J M2'$N*3$-5(7!3VP323N3_4.[Q+>.K (GF,P_+!',[0LD6(1SZ8!-4'0M3$^# M^$[LD;_]RIHQ/2U="TXD,42-4:H!I4_D%);ZR=P:DA 0+0 MI)?,: "Z6ZW3Q2&,!*_%?L^RPBM(:$E/7(&3BM@_5)%-[PLNE2!"L="?1UX> ME1D/BR./Y6$O5$["*($ 1&_47C@I&_D'*&-76%I2*06"\4X/8N(GVXK9_8GM M9!&I9"/3-(&Q! IY&X (N;?0HYAO"72(*/=N&)G [?'P-8Y6MS$/FB>12IH6 ML&HTOJ()-]0.A&K\W:L%;X*;+RR.?TWX>_+,@HPG+,RO"32SD9+I6WA"Z7W% M%LT!=G"&RAJJ,OLXF/O,XX/P35KL6O Y$:%K8:Q%YRNVU ;;P51+!H@E;P+K MS]L@CJ\.692PUEU:#54+1PTJ7U&D,M8.AAH2"#O!#W\9%Q8?MRS=B,7=+RE_ MW[_*V^5!@@>CE-0MF"#4OL*%8KP=V""2*/#Y:>11Y57,O#K40$3M,:5&Y"M& M%*9:&E%J BB(^,_QH]H/!R!1OXH$C&>?27S% FJFO4CVF3T%!_\U+@[D>Y%T MQ]/<@CSU]C47ZZGT>,U#_%R?U*J%%DTK7P%DX@P[F-)(I,!LY%#V2_#M+A0V M1NMHE6NM&7LT]"UHH?2^@HKF #MP0F41@/3]=^,":1&&PN;L])][L6+_@()( M0=L"$$CK*WCTAML!#BB' IJ6;T_-I!T$2@PP54K/X8(:;14L M52D4J'P_"53R2769/J;\+4I6^$)(38Z!ID7N.7+4YEN%3TL4!4,_3(*A1Y[M M@_C_HIUR*:TBQO#3(/8<7DN&8.\RU.1 0-!GGH^@TPOP*\55-1^]0\(N'&],^-4.5,^]V@1 MS9-FMU&ZO6MFO4-_;W_R\^_>?G300$N?_=).A$ZD0_NF;%.V/ M7U)X^_D1(RT!H.1.@< E/HEG)SS](O]/%G;X[W\!4$L#!!0 ( &M<:U1" M 0:ASP, #0R * 97@R,5\Q+FAT;>U;ZV[:,!3^OZ>PJ-:N4KF$KG0% MBK1VG=9=NJJT#^#$AEAU[,AQ"^SI9^<""86*2R@I,C^(8L?'WSG?=XY-$MJN M]&BG;7,TZK01>0Z_0"!'%)^7>IS)<@]ZA(Z:X$ 2#P> X0$0W(/LX B$+2T0 M7A:0?[@)K)HO6Z7.A[05AU,NFF"O%G[BR\=6[T.K-\KJ76@U,:?'-@'CPH,T M;GN&@D!UI*0/Y9/ P9Q^!_K370-,^JZ<-%(L)1;EP(<.8?U).Q>^"YD:76\! MB8>R3!C"3 VL^<.X10IU04]=KT"&&'"R@)9TDT"".2:.O3_7&(Q_V4,%QV8Y^MLTI= M&_4A0@I"V>92WZZ]WU57=C II4 M,Z.HO!75F*4GZWB.?*96DV0E^R,E5$Y16D,Y+Q4B\YC+L+S<,KSDIY2H5/P MQ#2VLP0X2GJ>L9#$@30)7!32ECH*I$0UCK _! &G!$UR(4:B9)%R]_.9\G9Z MMA0#:8YT-#)NGD;Y_2*O,]N#M=+_!GKX9=K'YU'V5R5:*$ SW:]OP/L%W-IG M=N"W5G1D-YG^^21(@(BC2PK@/?!=)[(^68C^JA2=]?(G&[/WI@F#?E/HYREK MLJ:LZ-[8P*+^)5FVBH.7(QN+O[Z"%X#?$E5R)6II3XJELSE!%3U QZ4]1R*VJ?N@H, M]+G A^!6XHHN;J:V;8F8,1=KEK7Y*03F>/]^"2I&87C?Z'>PK%VZA,%#<,DK M1V:_MDU6;C'W*=[?^U*W3EL!N,/^DTV)HV^[A1P5_$9(P9@S\'>QW*4J5P3[ M'I(!9.!"0.:XVZU9MMARU8EBL41]F/5 ;1569SV76_L^WBOA7'+V'+=RQ0(U M-U1S66^LF[>-U?,6_($4C@("01>Q"KAP]5XCEWQ9%E3N";MB5)* S"!/'_1C M<7T>=YK7*M[G:Q63>=)R6'&QCD2;6:IS4L1QY5A]QJ]4%$46<('Y_YR9X_ M^8[^(%(-_RWR'U!+ P04 " !K7&M4#@ZFH+4# "+%P "P &5X,C,Q M7S(N:'1M[5AM;],P$/[.KS@5B8'4M'G1!FM+I/$R"<%@VD!\=A*G,4OMR';I MRJ_G[*8O2=\R-F"@35JKWIW/Y^<>WUTRR/0H#P>12*;A(&'?[0_#8 MM7^E^<+K9^OU(WJ]L%[G[LS:'G A1R0O9=^)9 2_BRIVJ*/25%732@; M9GHIS*G65#JJ(#'CPZ5X+B5:HD&*]F85IWV8 M9$Q3ZVHEX E+Q&3F9R)DLMS).L)XHBN&OHQ#I:6XH@ZNT-GJ1@F-A22:"3Y' M@W&FF?%>UY<0+_0YX]3)RC-[QQU_X90@>+P'TJBJF?-MY@8F&CX,!T9U,QZT MPK?7&8N8!C_H>(.N614.NG.'7<.N.R#&DF9+3U+(BD@\)_#T) M;): 1X-B#OJ(R"%#CKV45'T2FV,P67S@MX>LIR M"A]%!X(@49(>%)3N$'@N<],3=YR M[8Q*C"4>!24:$@PY@3,BXPP\KPV^Z_MM5.;$UNL2"(,+(P7"!,Q M/_"N#;&_HW-2%)3($AF+'E,6'DR6\[[SU]J '<(JFU:'!^MF>SG:0[KZN(:[ M;RHWNV>^[O,)OER>M.'#A_/-*/ZA ZTC^2\TLQLW\68E^=Y,,^O6 M-T7@CLIU4T[;16&U(FT9&5>P?GB.^D<>A N2)!B $PFM!<9>$6I1E))-S\N_ MQ"9;E4JB_.<<*>'"KBS7!N7_C39>@-)[QXF@@T.8B>R!&+^#&-5W9L7*R&%% M\\_9>_>N?0G_$U!+ P04 " !K7&M4YF<_AN92HJ&X$]R MJ6"+#/K@[*7LHD48+WHKGY5H9V1W78^[]<-0G MHP47 BYT$QN"A?>]D^6[P1;-K6B=8Y;-.7-DHUD3]0^7-L2E-5A:%Y>VP^(=-/YX-5:)"NRT=]2[.*96PXOCQN Q!=!7#X^@ MRMN3(NQ92-4SZP-WX05%V7

7"_3B?QT@;&O^ST+A(W'!S]?$9>*+E=FN;J_ZH='_CQ-XV,1OQ5\]Z[^3DU8#E MW(V4Z6J9D0]'/9HW($'KFJ7?'9Q4UW6G\3I:>'= %@Z&7V%F'$V/:.:F[N#- MJSG75ZYB;H^#V%;UA^]>+4J/*W.K-B<$SI3K)F"Q>:#%"C W(V!S[,W>4X_W M_E'2.UJ+D?61/8[#]Z4W-N83R9R<*#F5 I2F/'MO3,DU^R0+ZP*SAOV,&$,W MW5^9S=B'62+='P5\]NP#HK0.I^W#C$M$OP@2=+W7"/G2U+.Q:+!YDC3 E*'*R*T$9LL(RGN.68S:$]@ZWJ;50P,I7>C*CF_ ME.AWR:;'/0%GT*6FH5,?5"%5+BUS5#-H#D^$=+0SIV/F2_I8M)]*)VLC-(!< M>2TY+2N0$\88H"]D&ATDNP5F F>'Q^Z!@<)188[5*/4J !6L(!N[,Y'?U+NQRS3 $1#&4Z.E"?0!,;I M9N4WO.PL(=\WSFQXVX+_"<%_BUB.:A]UA+.ZPFKA;"H%9?WL$- 4$EBO\/?Q*@421I*]QQ;]J=2HT3OEW=[9H:R\ MZ)V)ZJJZ1%_2F8HCR#ZC?7R).BHHDR\[=Y2M=)2A(QKG.J&@!J4=ZV6]+!P/8IB?*Q\T?M:2)=NC84%&Z MSB8WZ4 @XB.A"/+T;2(.W1H!B4R(*XBZJ4)E0T HY3 M!=1,2R0MD3R82-*])I*/$Z[+N'L3RF26R32H"?#AMQP!S-.<'=1(=;G]5"#R M!AI"2?CJ["&Q9;C>@UWT$I_7EG2PDMU^,,F2YL@F4J&L9@+^#,AX"_VG@_[+ M [W8:]#_5.%I$Y?T@*).Z6/)5O#?03-0AF'3M'2$OB4YO\5J;GW _92.-#/X M!T-_E\@&8/KPFB89: 2[^5KMVO$4X([/5NBQ2WR.6?GUNO)JS/T\]R$=$&E' MBBB0XGS4XF7&M+J4NG[0LE:_\^ I:JEFK\Y(G]]#D;.7>4H:WT80#4UU%ELU M*8=EJECLV@3V.R1"&T<;<^]X*52PSL]SCW@#)O-< 5;R!EV46&0W5"X4_(M& M#D$HD"&>9 Y^$[(:%I1_EPKN1\8K31H?P[QN#T-;X?%BCT'?:R3LZ%8![O0$ M@)XEI$H"G'7&,#^.G$I^22E E<#')" >/<1W(YJ'EG>"?'UR6#U_V;*[_<0=MT>MU6/^DWY\'3QM#SSR&UK;.S;1]RW!7K#0#VQ9U=U1U&T&08(:P M0!B%QFKB=O/7ZKJ0LT\GO,[.;E)>;\[N\[V-Q;="^IMKLCG4I8EZ>W\QT\C# M.\NM9EWFM%-_P[;]0+H!2[+?S+I?\%D).)VJK_T M5/_.#,Q,E\T+FAT;>U<77/;MA)][Z_ N-/6F9%LR:G;Q'(\XZ;I M3'OG-G=R,WT'R:6%,0BP "A9_?4]"Y+Z=BS;22.GS(,L$L!BL=ASL+NDG8GOWJN"O/B= MIN*=+:3YKFF/8\^$L:Z0NKDWD4Y)_-7J2H;*D;^E/97E>M.4U-4X+&YJ"H%< MWY9J<=^Z'FBC%+K9%#6M-901@7%TM?; M&Q//V[4RU!\W:QZ^/#IAH:7,,JC03VP(%MH/!\MW@RW;6U&ZA)7-F7 LH]T3 M]1>4&)Z4871P<V5)EQN34ED&K6Y%8G4'.FYNQ2E00SX=')^?'W./B M_)A=Z*O'^U ]]6 ^];XX56-;'Z0+7Y"?_0"1]W:,0?2F7WOB-\IS1S-Q>21^ M(A=(>S(]D>*KRFI@4%\WD\;K*.'5 4LXN/@* MEG%LGJRU33/!]]^P-8]#MJWQY0]+K<>U@%4I$X9C*G7KHC@U,&(%BIM[OKG: M]M!I5OAPOQ@>K7G%^LH^CL(/934QEA,2CB:*II2!Q)07E\944HMW5%H7A#7B M%W@51O3_(VPN7L\28. ME'QK$E^./HR5E3Y/ C$G>XV8GZ0'3@"*8B:NC9UJRJZH5P/'U8C)+#S8V"!2 MC);*"&EFHC+!5>SS,E !-V4H2? H7!N^(7*9XI83MD"D&6S=;Z.#H92\EV[& M70IY39AW2:;'O0S*8$K-2^X1*$ MY)NUWM"RMX1YWRJSH6T'^P[VCX3]]WL-^_9\JFV'BE]C"2< MU35F2V=3RCC3%X> :$; ?(W#-SP/3P^IUF)XFM57 M]27F(F=JKF#Y@D_R)0JI(O$@AZ<>*S72SJR^#1D\6(' MLCCYC&3Q_!&%ET/Y;)_IXF?RF!2HB:'VW9#N<1:0RLKO/H3#\80 SV:F.L"W ME8, '-<3Y6,0@%YDHAPN52["A^40Q)&6$>]-A+_ ;*\)3[A1(92 +MYJE@ZCPD!D6&)56>WHPRRG-*@YH 'WY+*6">YNP0C=27VZL#D36_B DM^=VE2)&WI)E(AU9: /B,6WD%_OZ#_M$"?[37H M?Z[QM(E+?D31I/2Q92OX[Q$S<(9AT[1RC+ZE<'Z+U,+Z@/LIES9SZ =!?U;( M!B#Z\)8A.6@$I_E:[T;Q%.".3U?XP4M\DEGK]:S6:BS]//?A."#2#F4Q0(KV M:(*7F=#JFG3SJ&6M?^_1)NJH9@]KI4^I2GKZ959)X_L(64M3O<51S9'#,E4L M3FT&^ST2H8W2QEP[664J6.?GN4>\ 9%%H0 K^D!*>@7A1R"4!"& M> YS\)>1U;(@_5DIJ!\9KS)I?!SSK"N&[EG@\11SCOTNAEYJI.V85@'T_!R MGRBDB@#1)F^8%R6G)*\Y$:C3^)@*Q )$?$>B?81Y+^ W]F]O8MPB\: MY/M=H;Q$*I$[')T]0([B@0_0QM>)&G3WZDA[UXF+W0O>_YH7NEAA6G*/;_Z>W_SO_K.BA-16P MVIF(0R_^*QUBC.&P)TX&)XM?"W4^],1]:.WPW$SBMRQW14J[L&U>=\_H;L,) M$E@(&X15:.PF;K??5O>%E?WG K ?3U_6D+HE^CH=G"ZW[QQYM1:$;VSNR^9R MEXSUX@$AS8O;CX)=8JYV:^;,4]Z(^-;$ O(/7LYC0K1C?[SUUVRWAT)?WM9\ M%L/_'R(C'W>6_L26_ET6N.B<_#.8_KT*.&YKI9<__U IB?\A%E%\2O;$ZU_> MQCK)Z[=O[Y.#=6'4$PZC/LYO:]O/^K]S.([_M\/?4$L#!!0 ( &M<:U3T M\7F/+P4 (TL * 97@S,E\U+FAT;>U:6W/B-A1^WU]Q)IG-)C-<;,BF M22#,L 1:NEO(!-)I'X4MQYH(R2O+ ?KK>^0+][0-I9ML:B8#L2Y'Y_*=[\BR MZ[X>\T9])-U9H^ZRQ_@+0CWC].K D5RJ2SBTXD\-/"ETT2-CQF>7\&'(QC2$ M'IW K1P3\2'MC^=>@I!J3'C:]D@4(_C+V3W1D:+A$_T."=:[)I3=^WK1R*G6 M5!7#@#A,W"_:I0I\(G!VI0::3G61"9<*G&@%T[1%*QS@X7@S2] :3'RF:2QJ M2>$)<^4DD3.1REVL% M"?48/#&49@:%6\H$6<8;VEQ=RJ2,5T4R*S!M,,,V, M]/7^U,7S?LX$+?JIS?9%J6*$!L1U487B2&HM47O;6F[5,LB:8ND$O2PN01D9 M64S8'ZB$70ET[:!1-TU9B%="RH1/%=LR:344(\E=E-.>^FS$-%0K];+I;]3+ M!D#O<@2]/@0M \-!HZCZ+Y'1:M\.NYUNJSGL]GMP;".H-^!X8_M6'0O/W4[+4'Q?YO7]J_0[,U-#T5R]K[AB71S9KK]EK0E'H_ MU$3I-P2PL^=LBI\-,2O&95> (X6@CM$'K=<^:)]"4XB(<+BE@50:I >MV8BJ M?J"9$T(+ Y!: ,=F]-'A>:5BU5IR'! QBZ_LV@E@=P?=BDL5/^/2*I8\HT0! MQ>BX$"O]K,";JGHDBIY[1H62;G$&G]S,-^D"9^\QDX[$* QJ];)VMPVY.-T84TZ$K4I\-"AP",\X#1,4;LA8CPE*2_B?(9D-@ZX(8@Y:2CZ M-6**CA%[H0%_EB5V]9B<&+*P/QZ[)_.$65#,G%[2K+$OJJ4+E";4-LI57GU!,& @E]1TW!YK@:BZVQ@F291MA"M,MP V>2:R"Z2:< M(R@0NZ;684> F18FI=6;UT 4Z+)8M*F;."KB25[*@"8P#-?JXW9_/9UO^1[W M.]OCKH%[-=46:ZZ8NR(E,VS;KOB9Y+L!@A%Z" .$5G",)C9G_ZW&Q2C[#?G1 M,N3W%#6>+O?^8U+,O(>XV(S)IJE+CCK?@6Z2.1E]/YL/L[#,[XJ"*822,W>1 M[CN;\V_HLQR6U^\5%_%Y[N]OZ^\;+'C,4'%_XL*Z[9#M_Q2:%W%\[O07\58.'W9[ZRQ]T+L3Q+:_9=:[-D]M.]TOW=Z/ M^7/;[QY6NY+/2*VSS)ZB7RU5\;,X*0 M_P102P$"% ,4 " !K7&M4I7]-N'*0 @!?)B $0 @ $ M 8WEB92TR,#(Q,3(S,2YH=&U02P$"% ,4 " !K7&M4%7='.RH< " M/ $ $0 @ &AD ( 8WEB92TR,#(Q,3(S,2YX&UL4$L! A0#% @ :UQK5")E"T@&50 %IP% !4 M ( !*=4" &-Y8F4M,C R,3$R,S%?9&5F+GAM;%!+ 0(4 Q0 M ( &M<:U1[M>KX)U4! *YM% 5 " 6(J P!C>6)E+3(P M,C$Q,C,Q7VQA8BYX;6Q02P$"% ,4 " !K7&M4TR112-B5 !CF0H %0 M @ &\?P0 8WEB92TR,#(Q,3(S,5]P&UL4$L! A0#% M @ :UQK5$(!!J'/ P -#( H ( !QQ4% &5X,C%?,2YH M=&U02P$"% ,4 " !K7&M4#@ZFH+4# "+%P "P @ &^ M&04 97@R,S%?,BYH=&U02P$"% ,4 " !K7&M4YF